[00:29] armin76: is v8 being built for arm or in that error message? [00:29] s/arm or/arm or thumb/ === bjf is now known as bjf-afk [03:51] Hello people of #ubuntu-arm! [03:51] Hey zooko` [03:52] Suppose I know that on a certain ARM CPU algorithm X takes 60,000 cycles per use and algorithm Y takes 15,000 cycles. [03:52] Now, I want to know if the difference between these algorithms would be significant in terms of battery life. [03:52] Depends on what you're doing in general. [03:53] Supposing your ARM CPU is battery powered, and you execute one or the other of these algorithms a few thousand times. [03:53] If most of the processor time of the system is spent in the algorithm, you'll likely do better with the one that takes less cycles. [03:53] If most of the processor time is spent rendering html, then it doesn't matter as much :) [03:54] So, we should be able to estimate whether 45,000 cycles times let's say 1000 executions of the algorithm adds up to a significant or insignificant fraction of your battery, maybe? [03:54] I'm not sure there's a direct relation. [03:55] Generally, the more you spin the processor, the more power it uses. [03:55] Isn't it linear? [03:55] But, depending on the processor, some operations may take more power than others. [03:55] Hm, because of RAM access? [03:55] No, because of processor design. [03:55] The algorithm that takes more CPU cycles also uses tables in RAM a lot. [03:55] Where the other one just does a whole bunch of arithmetic. [03:56] Let's say I have two processors that support vector operations. One does this with a parallel matrix, and the other spins really, really fast over the operations. [03:56] These are going to have different power characteristics for the same instruction sequence. [03:57] Right. [03:57] So this page here says http://www.arm.com/products/CPUs/ARM_Cortex-A8.html [03:57] 0.59 mW/MHz. [03:57] I think that means that 45,000 cycles times 1000 executions is [03:57] 26 W [03:57] I may be mistaken, but I believe that is for the reference implementation, which may or may not be the implementation on any actual processor in the wild. [03:58] Yes there is a big disclaimer right below that. [03:58] Do you know how to get a number drawn from a real implementation? [03:58] Say, one running Ubuntu that you happen to have at hand? :-) [03:58] Note that it also says "power with cache". If the algorithm that uses lots of RAM happens to exceed the cache, you may end up with unexpected latency of operation when polling RAM. [03:59] I wouldn't be able to measure that: there's something wonky with the battery meter in my device. [04:00] Anyway, is 26 W a significant amount [04:00] Depends on the battery. [04:00] huh-oh it is time for me to stop using electric lights and computer screens. [04:00] If you're talking about a watch, yes. If you're talking about a workstation, not really. [04:00] How big is the battery in your favorite smartphone [04:01] Plus, 26W doesn't really mean anything without the context of runtime. [04:01] Yes it does -- I want to know 26W per battery recharge. [04:01] Is that going to mean I have to recharge more often, or is it negligible. [04:01] I don't believe in smartphones :) But let's say something like 3Wh [04:02] So 26W would drain the battery in something like 20 minutes. [04:02] This here nexus one thingie http://www.google.com/phone/static/en_US-nexusone_tech_specs.html says 1400 mAH [04:02] At what voltage? [04:03] I'd guess it's probably about 1.8V, so somewhere like 2.5Wh [04:03] Hrm, doesn't say. [04:03] Ok. [04:03] Okay so this tells me that this quick kludgey approximation shows that this difference is significant. [04:04] Which means I have to approximate more carefully if I want to know if it is *really* significant. :-) [04:04] Well, if you need to run the operation constantly. [04:04] The estimate I was just doing was "if you want to do this thing 1000 times in a row" [04:04] and the thing costs either 15,000 CPU cycles or 60,000 CPU cycles each time. [04:04] Right, but you measured it in watts, which is energy/time [04:05] So without knowing how long it takes to do it 1000 times in a row, it's meaningless. [04:05] Wait if it has 2.5 Wh and you draw (let's say) 25 W doesn't that mean you drain it in one hour? [04:05] No. [04:05] That's 6 minutes. [04:05] Oh, I'm really confusde. [04:05] OK. [04:05] 2.5 Wh is ability to provide 2.5 W for 1 h. [04:05] ? [04:05] So, energy is voltage times amperage [04:05] And power is energy divided by time [04:06] So 2.5Wh is a measure of energy (power * time) [04:06] It's 2.5W for an hour, or 25W for 6 minutes. [04:06] Ok. [04:06] Or 1W for 2.5 hours. Doesn't matter. [04:06] Okay that makes sense. [04:08] Now, if there is a rough guide that x operations / second = x joules / second (1 watt = 1 joule / second), we can estimate the number of joules required for an operation. [04:08] Waitasec, why are batteries measured in power * time. Instead of just in power. [04:08] Err. [04:08] And if there is *no* latency, we can then estimate the number of operations available for a given energy budget. [04:08] Hm. [04:08] Because batteries contain an amount of energy, rather than an amount of power. [04:08] I see. [04:09] Batteries usually have upper and lower limits of power draw, but they can only present power to the total amount of stored energy. [04:09] That makes sense. [04:09] So, the average 3Wh battery you buy on the street probably can't be configured to give 3MW even for 3.6 milliseconds. [04:10] And it probably can't handle a draw of 1 nanowatt for centuries. [04:10] :-) [04:10] But for sane values, it's usually safe to assume that one is operating within the battery contraints, and just treat it as an energy storage device. [04:11] Right. [04:13] So, as long as we're doing wild speculation on potentially invalid specs, we can roughly say that <0.59mW/MHz is <0.59mJ/MOps [04:13] Running 45,000 operations 1,000 times is about 45MOps [04:13] So that's something like 26.5 mJ [04:13] Right. [04:14] No I think 26.5 J [04:14] Note that not every processor operates at one operation per clock cycle, so we're already in largely invalid calculations. [04:14] * zooko` nods [04:15] 0.59 * 45 = 26.5 [04:15] So the unit doesn't change. [04:15] I'll run real benchmarks for time, but I'm not sure how to benchmark energy usage. [04:15] It's usually done with power meters on development boards. [04:16] Yes, but you left out the 1000 time. [04:16] More usefully, it's probably going to be less power to run the algorithm that requires fewer operations, especially if it also requires fewer calls to RAM. [04:16] a thing which takes 45,000 operations is about 26.5 mJ, so 1000 of those is 26.5 J, right? [04:16] No, 45,000 operations * 1,000 times is 45,000,000 operations, or 45Mops. [04:16] Oh. [04:17] So it takes only 0.59 mJ to do that thing 1000 times. [04:17] Right, which isn't that much. [04:18] Why did this come out looking small when the other calculation came out looking large. [04:18] But because it calls to RAM, and because we made all sorts of assumptions to get that value, it's likely to be more than that in real-world usage. [04:19] Where did I get that 26 W number earlier... [04:20] Dunno, but 26W would be running the operations all in parallel for soemthing like 10 days. [04:20] (at least if all the operations consume 26mJ) [04:21] Heh. [04:21] Off by a million error. [04:22] Minor mistake :) [04:22] Okay so if our *new* estimate is reasonable then the difference between these two algorithms is insignificant. :-) [04:23] Well, depends on usage. [04:23] If it's the primary application of the processor, a factor of more than 3 can make a difference. [04:23] If it just happens once in a while, it doesn't matter. [04:50] What do you mean a factor of more than 3. [04:51] You said 45,000 vs. 15,000 and that the 45,000 one needed more RAM. [04:51] So I read that as a factor of more than 3: 3 times the operations + potentially additional effort to pull from RAM. [04:59] thinks get even more interesting when the processor does voltage and frequency scaling, because then 1 operation at 1GHz != 1 op at 500MHz [04:59] *things [04:59] I see. [06:19] shenki: for arm, i'm not using the thumb option, although i believe -march=armv5te includes thumb? [06:21] armin76: try forcing it with a -marm [06:21] armin76: are you building locally? [06:22] s/locally/natively/ [06:24] * persia thinks -marm vs. -mthumb are different [06:25] i would agree :) one will force your compiler to emit 32-bit arm code, the other will force 16-bit thumb code [06:26] well, the 16bit ness fo thumb is a bit blurry if you're building for thumb2 [06:31] Well, yeah, but -march doesn't necessarily imply either, as far as I understand. [06:32] (although this depends on toolchain config, and armin76 has a special toolchain) [06:33] yeah [06:33] i think we're on the same page, i was just suggesting he try -marm to make sure that isn't the issue [06:34] * shenki is the author of the v8 build file [07:07] shenki: persia: will try, but its weird since on armv7 works fine [07:07] both toolchains are different, thoguh, armv5te is softfloat while armv7 is not [07:07] though* [07:08] so what i think is that maybe the assembler is using armv7-only code [07:08] but i'm no expert [07:08] and chromium builds fine without v8 [07:11] what does -marm do? [07:11] -marm and -mthumb specify which instruction set to target for the given -march [07:11] (mind you, there are defaults hidden in the toolchain config, but this lets one be explicit) [07:12] kHH [07:12] nsh [07:12] err [07:12] i don't use -mthumb either :P [07:12] But do you know which is implied by your toolchain config? [07:12] The suggestion was to override, in case this was the problem [07:13] http://dpaste.com/141952/ [07:13] sure, i'll try [11:04] hi [11:04] armin76: you say with armv7=1 it bult? [11:05] or just on armv7 without that flag [11:05] ogra: ;) [11:05] asac: without the flag [11:06] asac, yo [11:07] asac, well, i built mkimage from the tree now on x86, but still no go :( [11:07] ogra: try the command i gave you ;) [11:07] or was that identitical? [11:07] it was [11:08] mkimage -A arm -O linux -T kernel -C none -a 0x90800000 -e 0x90800000 -n LinuxRocks -d boot/vmlinuz-2.6.31-601-imx51 uImageN [11:08] mkimage -A arm -O linux -T kernel -C none -a 0x90800000 -e 0x90800000 -n "Linux" -d ./boot/vmlinuz-2.6.31-601-imx51 ./uimage [11:08] the name is important ;) [11:08] haha [11:08] i swear [11:08] *g* [11:08] it must be != Linux ;) [11:08] shall i upload that uImageN somewhere? [11:09] no [11:09] i have your old one [11:09] ok [11:09] right [11:09] i used mkimage from karmic x86 [11:09] if you use that it has to work for you too ;) [11:09] ogra@osiris:~/Desktop/tmp$ mkimage -l ./uimage|grep ^Data [11:09] Data Size: 3062156 Bytes = 2990.39 kB = 2.92 MB [11:09] ogra@osiris:~/Desktop/tmp$ mkimage -l ./uImage.asac.908000000|grep ^Data [11:09] Data Size: 3063148 Bytes = 2991.36 kB = 2.92 MB [11:09] the size differs [11:09] * ogra wonders why [11:09] the new size is different yes [11:10] let me check what the new one has [11:10] i thin kit was a different kernel [11:10] Data Size: 3062156 Bytes = 2990.39 kB = 2.92 MB [11:10] thats the new [11:10] that boots [11:10] same as mine [11:10] md5sum? [11:10] and you used mkimage from the archive this time ? [11:10] 8c1cf14ad6e4ef9c1479678c8e606872 uImageN [11:11] ogra: yes. i used x86 karmic mkimage [11:11] ogra@osiris:~/Desktop/tmp$ md5sum ./uimage [11:11] 6134a0836cb224e3135acbd8c862ed00 ./uimage [11:11] * ogra doesnt get it [11:11] right. you have a different name [11:11] ;) [11:11] really ... [11:11] * ogra now tries with a different name juts for giggles [11:11] haha [11:12] i tell you it will work. also no ./ [11:12] ;) [11:13] * ogra wishes he had a clue whats wrong [11:15] mkimage -A arm -O linux -T kernel -C none -a 0x90800000 -e 0x90800000 -n Lalala -d boot/vmlinuz-2.6.31-601-imx51 uimage [11:15] no change [11:15] afte3r loading ... http://paste.ubuntu.com/352834/ [11:15] does that work for you? [11:15] iminfo? [11:15] i cant load [11:15] :P [11:15] else i'd try [11:16] please run the same command so we can compare md5sums [11:17] ogra@osiris:~/Desktop/tmp$ mkimage -A arm -O linux -T kernel -C none -a 0x90800000 -e 0x90800000 -n LinuxRocks -d boot/vmlinuz-2.6.31-601-imx51 uImageN [11:17] ... [11:17] ogra@osiris:~/Desktop/tmp$ md5sum uImageN [11:17] 807feee5a32a1805eccf4509574211e3 uImageN [11:17] 8c1cf14ad6e4ef9c1479678c8e606872 uImageN [11:17] odd [11:18] ii uboot-mkimage 0.4 [11:18] same [11:18] wait [11:18] i use a -pae kernel [11:18] 9184c83fbca680969199928bfcb8748d boot/vmlinuz-2.6.31-601-imx51 [11:18] i wonder if that could make any difference [11:18] 791f2ca366f78922a9a981bd173ba3b9 /usr/bin/mkimage [11:18] ogra@osiris:~/Desktop/tmp$ md5sum boot/vmlinuz-2.6.31-601-imx51 [11:18] 9184c83fbca680969199928bfcb8748d boot/vmlinuz-2.6.31-601-imx51 [11:19] aha ! [11:19] thats the same [11:19] oh, i looked at mkimage :P [11:19] 791f2ca366f78922a9a981bd173ba3b9 /usr/bin/mkimage [11:19] yeah [11:19] so its obviously your computer ;) [11:19] you are on i386 ? [11:20] uname -a [11:20] Linux tinya 2.6.32-02063202-generic #02063202 SMP Sat Dec 19 11:00:49 UTC 2009 i686 GNU/Linux [11:20] hmm. i am on a .32 kernel [11:20] would be odd if thats causing it [11:20] ogra@osiris:~/Desktop/tmp$ uname -a [11:20] Linux osiris 2.6.31-14-generic-pae #48+ureadahead2-Ubuntu SMP Wed Oct 28 16:24:28 UTC 2009 i686 GNU/Linux [11:20] yeah that would be extremely odd ;) [11:20] still using keybuks toy kernel [11:21] shall i reboot into the karmic kernel? [11:21] letr me try on a different machine first [11:22] i would suggest that you use a vanilla kernel too rather: http://kernel.ubuntu.com/~kernel-ppa/mainline/ [11:22] i have v2.6.32.2/ afair [11:22] what does pae do? memory shuffeling? [11:23] using above 3G [11:23] so yes [11:23] above 3g? [11:24] http://en.wikipedia.org/wiki/Physical_Address_Extension [11:24] ogra@heizung:~/tmp$ mkimage -A arm -O linux -T kernel -C none -a 0x90800000 -e 0x90800000 -n LinuxRocks -d boot/vmlinuz-2.6.31-601-imx51 uImageN [11:24] you have more than 4g? [11:24] ogra@heizung:~/tmp$ md5sum uImageN [11:24] 1ad5cba13bce2849dd49bf70ad221bef uImageN [11:24] no, i have 4G [11:24] the std generic kernel can only address 3 [11:25] the machine i tried now is on lucid though [11:25] yeah. thats a different mkimage version? [11:25] nope [11:25] wow [11:25] mkimage wasnt updated ever [11:25] so how can it be so different? [11:25] can you try to boot the kernel i have? [11:26] linux-image-2.6.32-02063202-generic 2.6.32-02063202 Linux kernel image for version 2.6.32 on x86/x86_64 [11:26] though i am quite sure i used the .31 kernel from plain karmic as well [11:26] http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.2/linux-headers-2.6.32-02063202-generic_2.6.32-02063202_i386.deb [11:27] http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.2/linux-headers-2.6.32-02063202_2.6.32-02063202_all.deb [11:27] well, the lucid try makes no difference [11:27] http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.2/linux-image-2.6.32-02063202-generic_2.6.32-02063202_i386.deb [11:27] yeah. but the checksum is different too. really odd that its different in first place [11:27] err [11:27] ogra@heizung:~/tmp$ uname -a [11:27] Linux heizung 2.6.27-7-generic #1 SMP Fri Oct 24 06:42:44 UTC 2008 i686 GNU/Linux [11:27] hmm, why didnt that get upgraded [11:27] let me see if the same run yields the same checksum [11:28] so [11:28] seems they add a timestamp or something [11:28] so the checksum is useless [11:28] indeed [11:28] * ogra slaps forehead [11:28] Created: Thu Jan 7 12:23:59 2010 [11:28] sigh [11:28] yeah [11:28] seeing it now too ;) [11:29] maybe binary diff ;) [11:29] still doesnt explain why it doesnt work [11:29] it has to work with hardy btw [11:29] thats what the builder runs [11:30] give me your x86 created uImage [11:30] http://people.canonical.com/~asac/tmp/uImageN.1 [11:30] thats the one [11:31] be back in 5 [11:32] hmm, hangs too here [11:33] well. it hanged for me for the first try too [11:34] you used my script to create the card ? [11:34] after reset it worked [11:34] i.e. same filesystem [11:34] i did it manually at some point [11:34] one sec [11:34] hmm [11:34] FAT32 here [11:35] http://paste.ubuntu.com/352846/ [11:36] so ... try it a few times [11:36] maybe the uboot build you did is less reliable wrt to SD [11:36] than mine [11:37] do you have the script somewhere? [11:37] what script ? [11:37] e.g. something i can use to create it like you do? [11:37] ah [11:37] its on the spec [11:37] at best a script called: mkbootfloppy [11:37] yes. i used that manually [11:37] http://paste.ubuntu.com/352850/ [11:38] the uboot binary is still stuck in NEW [11:38] yes. our archive admin is lagging ;) [11:38] hehe [11:39] why is it in new? [11:39] shouldnt we reuse package names? [11:39] the binary has a hardcoded version thanks to NC [11:39] anyway. the other image still loads for you? [11:39] e.g. the .asac uImage [11:39] ? [11:39] * ogra tries that again [11:39] ogra: did you fix that this time? [11:39] e.g. without version? [11:39] nope [11:40] i updated it ... [11:40] so next time it would be thanks to you ;) [11:40] indeed :) [11:41] BBG U-Boot > fatload mmc 0:2 0x90800000 /uimage [11:41] reading /uimage [11:41] 3063212 bytes read [11:41] no prob with your old one [11:42] try the new one right after that [11:43] version [11:43] U-Boot 2009.08 (Dec 07 2009 - 07:37:24) [11:44] U-Boot 2009.08 (Jan 06 2010 - 09:44:19) [11:44] same thing [11:44] built on the babbge from the updated source package [11:46] did you build it with -marm ? [11:47] ogra: i just build it with the _bbg rule ... no tweaks added [11:47] on lucid ? [11:47] you need tewaks [11:47] *tweaks [11:48] well. i tweaked some config [11:48] there are some inline finctions gcc will choke on [11:48] *func [11:48] hmm [11:48] anyway. let me fix your script to do all oob and then try [11:49] grab the sourcepackage for uboot-imx [11:49] 1000_fix_gcc_4.4_compatibility.patch is needed [11:49] i dont get how you got it building without that [11:49] at least on lucid [11:50] ogra: put your uboot.bin somewhere ;) [11:50] hmm [11:50] ok [11:51] i dont have a lucid install atm. only chroot. but i can try that i guess [11:51] have .dsc link? [11:51] ogra: ? [11:51] http://people.canonical.com/~ogra/uboot-imx51_to3.bin [11:52] apt-get source uboot-imx51 [11:52] why is that to3? [11:52] thx [11:52] let me try the bin first [11:52] because FSL updated it to the tape out 3 release [11:53] for the .bin the -to3 name is right ... for the binary package name not so much [11:54] but its unlikely that we'll see something >to3 before lucid i guess [11:56] so the get_part_data is busted somewhat [11:57] is it ? [11:57] its empty [11:57] e.g last dd is: [11:57] should make the first part end at the end of uboot [11:57] dd conv=notrunc bs= if=./boot.img of=out.bin seek=1 [11:58] "`(set -- $(get_part_data 1); echo "$2")`" [11:58] UBOOT_SIZE is correct ? [11:58] what is $2? [11:58] well. i reused $2 now for KERNEL ;) [11:58] so thats the prob i guess [11:58] but what is that ment to be? [11:59] good question, i have to check the redboot-install script [11:59] thats where it inherits from [11:59] PART1_END_B="`(set -- $(get_part_data 1); echo "$2")`" [11:59] i dont know what that means [11:59] what does the set -- do? [12:00] hmm. this doesnt create the .bin ;) [12:00] echo $2 should realte to the return of get_part_data [12:01] how to best create the .bin? [12:01] no, its the proof of concept script [12:01] just dd 4G? [12:01] well i am fixing that now [12:01] ;) [12:01] it expects that you either write to mmc directly or have a .img already [12:01] 4G ? [12:01] no, it should determine the size of the squashfs and roll the image based on that [12:01] dd if=/dev/null of=$IMAGE bs=1 count=$IMAGE_SIZE [12:01] like that? [12:02] thats all stuff i have to do when i sanitize it for debian-cd [12:02] sure [12:02] but is that ok? [12:02] bs=1 ? [12:02] thats 1 byte :) [12:02] use 1M [12:03] right [12:03] using IMAGE_SIZE and count=1 [12:03] i use the script directly on my mmc [12:03] so i dont care for images atm [12:04] and it cant be the scripts fault ... [12:04] given that your kernel works [12:04] well. so just dd doesnt work [12:04] file created is 0 bytes [12:04] dd if=/dev/null of=out.bin bs=1M count=1 [12:05] * asac feels dumb [12:05] if=/dev/null ? [12:05] better try zero [12:05] great [12:05] sorry, didnt spot that above [12:05] now things happen [12:06] note that BOOT_SIZE is set to 17M atm [12:06] so the image you write to should be 18M at least [12:07] http://paste.ubuntu.com/352869/ [12:07] so that feels better [12:07] looks ok [12:08] you added a mkimage -l :) [12:08] * asac pumps it to the sd [12:08] oh right [12:08] good idea [12:08] or just a mkimage ? [12:09] ogra: it already dumped that there [12:09] mkimage itself does that at the end [12:09] ;) [12:10] right, so you added the mkimage call :) [12:10] ok ... dd'ing [12:10] yes [12:10] everything oob [12:10] apart from the proper defaults in uboot :) [12:10] cat mkubootimg.sh | pastebinit [12:10] http://pastebin.com/f3e4d51a7 [12:11] great [12:11] hmm didnt work that great [12:11] 1 512B 137kB 136kB primary [12:11] 2 137kB 16.8MB 16.6MB primary lba [12:11] fat32 is missing [12:12] whats that ? fdisk -l ? [12:12] udo parted /dev/mmcblk0 print [12:12] s [12:12] sudo parted /dev/mmcblk0 print [12:12] after dding [12:13] same for the .bin directly [12:13] weird [12:13] line 52 in your script should have created it [12:13] err [12:13] * asac adds a set -e [12:13] and line 56 indeed [12:14] seems to not error at least [12:14] parted -s out.bin mkpart primary fat32 136704B 16777216B [12:14] thats what it runs [12:14] looks ok [12:15] part data: 512B 136703B 136192B [12:17] why is boot size 16M? [12:17] hmm [12:17] just because :) [12:17] thats what is printed [12:17] you can pick any value you like [12:17] just not fat32 [12:17] 16M seems to well fit a kernel and initrd ... was enough for my testing [12:18] boot size should in the end actually be the image size [12:18] we only need one vfat partition for squashfs, kernel and initrd [12:18] i just picked a value that leaves enough space [12:19] mkdosfs ./boot.img [12:19] guess the dd where the boot.img gest dded wipes the part table bits [12:19] has nothing to do with parted [12:19] shouldnt [12:20] oh [12:20] ;) [12:20] now it probably works ;) [12:20] what was missing ? [12:20] well. i had an echo before the final dd ;) [12:20] 2 137kB 16.8MB 16.6MB primary fat16 lba [12:20] odd that its fat16 now [12:20] yeah [12:20] is that normal? [12:20] nope [12:21] oh, wait, it is [12:21] 2 137kB 16,8MB 16,6MB primary fat16 lba [12:21] thats my sd [12:21] ok let me use -F 32 [12:21] cfdisk will report fat32 though [12:21] or fdisk [12:21] WARNING: Not enough clusters for a 32 bit FAT! [12:22] but it worked [12:22] 2 137kB 16.8MB 16.6MB primary fat32 lba [12:23] i guess we need to properly work with cylinder sizes [12:23] i.e. the first partition needs to become big enough to end at a cylinder [12:24] ok [12:24] so your 16m was just too small [12:24] boots ? [12:24] 60 is better [12:24] not there yet ;) [12:25] to small ? [12:25] for a 2.5M kernel binary ? [12:25] for fat32 [12:25] oh [12:25] seems it needs a minimums size > 16m [12:25] i used 60 and the warning is gone [12:25] ah [12:25] now dding [12:25] cool [12:25] lets hope [12:26] good [12:26] it automounts here [12:26] good... uboot prompt ;) [12:27] http://paste.ubuntu.com/352878/ [12:27] hmm [12:27] invalid FAT entry [12:27] but it read it [12:27] Bad CRC [12:27] darn ;) [12:28] now i am not sure if its the SD card [12:28] it never liked me much [12:28] http://paste.ubuntu.com/352881/ [12:28] wondering if i should just wipe the windows CE sandisk [12:29] will i need that at some point? [12:29] have no place to dd it to [12:29] you have a winCE sandisk ? [12:29] the b2.5 shipped with an ubuntu one [12:29] http://pastebin.com/f63ce246d [12:29] thats the last version [12:29] yes [12:29] i have two: windows CE + ubuntu [12:30] well, someone on the team will still have one i guess [12:30] good point [12:30] JamieBennett, did you keep your WinCE babbage SD ? [12:30] JamieBennett: can you keep your winCE SD? [12:30] hehe [12:30] heh [12:31] let me go through the script again [12:31] maybe we truncate something [12:31] let me try without F32 [12:32] i just tried with a manually created fat32 part (60M) [12:32] no change here for my uimage [12:32] so fdisk really says 32 [12:32] Verifying Checksum ... Bad Data CRC [12:32] ERROR: can't get kernel image! [12:32] thats what i get after a reset [12:33] * ogra needs a break and fresh pain killers [12:34] back soon [12:35] kk [12:51] ogra, asac: no, ran out of SD's and presumed it wasn't needed [12:51] I think you can download it can't you? [12:51] no clue [12:51] its licensed i guess [12:53] asac: http://www.microsoft.com/windowsembedded/en-us/products/windowsce/getting-started.mspx [12:53] need to register though :( [12:56] who knows if that is really the same anyway [12:56] could be a custom build [12:57] asac: indeed [12:58] http://pastebin.com/f3bc21930 [12:58] please run that like [12:58] sh mkubootimg.sh out.bin data/vmlinuz-2.6.31-601-imx51 data/uboot-imx51_to3.bin 110M [12:58] since you probably have a SD for experimenting ;) [12:58] ls data/ [12:58] uboot-imx51_to3.bin vmlinuz-2.6.31-601-imx51 [12:59] ls data/ [12:59] uboot-imx51_to3.bin vmlinuz-2.6.31-601-imx51 [12:59] http://people.canonical.com/~ogra/uboot-imx51_to3.bin [12:59] vm linuz just from the .deb [13:00] * asac dds wince somewhere === mcasadevall is now known as NCommander [13:05] asac: Just checked, wince is on a disk in the bsp [13:06] disk as in dvd (or cdrom, not sure) [13:11] re [13:11] asac, does it boot ? [13:13] bad fatfs still [13:13] but thats probably my SD card [13:14] will now wipe the sandisk [13:14] btw, saturn has two 4g sandisk for 12 EUR atm [13:14] ;) [13:14] yesterday TV advertisement [13:14] heh [13:15] echo $((100000 * 512)) 1200000 [13:15] 1200000 [13:15] why is that? [13:15] err [13:15] that was two lines [13:15] echo $((100000 * 512)) [13:15] 1200000 [13:15] hmm [13:15] use bc insteadc ? [13:15] *instead [13:15] bc? [13:16] we use that syntax everywhere in the script [13:16] ogra@osiris:~/Desktop/tmp$ echo 1+1 |bc [13:16] 2 [13:16] yes. but we use that everwhere [13:16] right [13:16] wanted to ensure that its properly cylinder aligned [13:16] no idea why it prints 120000 [13:16] but that / 512 * 512 doesnt work [13:16] our arithmetics are unreliable [13:16] i get 5120000 here [13:17] as it should be [13:17] ogra: as do I [13:17] i am in bash [13:17] you are in posh? [13:17] ;) [13:17] asac, is using an upstream kernel ... missing the ubuntu-count patches :P [13:17] haha [13:17] and the uImage fixup mem patch [13:18] i'm in bash indeed [13:18] thats the trade [13:18] ;) [13:18] heh [13:18] no calc, but good images [13:18] so your system cant count but produce proper images [13:19] ogra@osiris:~/Desktop/tmp$ sh -c "echo $((100000 * 512))" [13:19] 51200000 [13:19] dash is fine too [13:19] ok trying [13:20] so ... sandisk doesnt have probs like that ... but i hang on loading ;) [13:21] so bash is broken for me ;) [13:21] works in sh [13:21] intresting [13:21] lucid ? [13:21] or karmic [13:23] eek ! [13:24] i totally forgot we need a MIR for uboot ... its not in main yet [13:24] karmic [13:25] asac, do you happen to have a buildlog from your uboot build ? [13:25] i noticed that gcc seems to forcefully be set to -march=armv5 in mine [13:28] no ... all that was wiped [13:29] have to reboot ... kernel doesnt release the SD anymore [13:30] * ogra drops the thumb disabling patch and checks if it FTBFS [13:33] so how to best figure cylinder boundaries? [13:35] fdisk probably [13:35] * ogra sighs, where does the -marm come from [13:35] anyone played with changing the initramfs on lucid? When I call sudo update-initramfs.distrib -u I get 5 "Can't open /scripts/casper-functions" error messages [13:35] not yet, no [13:36] :( [13:36] 32768 [13:36] Units = cylinders of 64 * 512 = 32768 bytes [13:36] let me try to align that [13:38] hmm -marm seems to be set upstream [13:56] ogra: odd is that mkpart interprets last argument as size [13:56] _while_ man says its "end" [14:05] ogra: so have the same prob as you if i use that it seems [14:05] the difference is that the SD that works really has a good partition table [14:06] Device Boot Start End Blocks Id System [14:06] /dev/mmcblk0p1 1 256 16383+ da Non-FS data [14:06] /dev/mmcblk0p2 257 10587 661184 c W95 FAT32 (LBA) [14:13] ok [14:14] so its not uboot's fault, thats good to know [14:15] darn. i killed my good SD by accident :( [14:15] ogra: uboots fault? [14:15] its our script that creates bad partitions [14:15] i dont think its uboot... so far at least ;) [14:15] i was worried its the uboot in the package vs your home rolled one [14:15] ogra: well. the image i gave you worked with your uboot :) [14:15] let me roll an SD manually [14:16] darn i hate me for killing my uboot SD [14:16] :( [14:19] so my original uimage doesnt load either [14:19] i think its your uboot bin [14:19] or really the partition table. because mine is now busted too :( [14:28] HOORAYYY [14:28] http://paste.ubuntu.com/352937/ [14:29] wiping the table and just creating a vfat partition with gparted with enough offset and my images work too [14:29] so its definately the poartitioning [14:31] asac, well, for the live image we could just leave the first partition and only make sure the second one has enough offset [14:32] i.e. use a fixed value of say 500k [14:32] that should be enough to fit uboot in [14:33] or even 200k [14:33] no reason uboot should ever grow beyond that [14:35] * ogra takes asacs script and just sets UBOOT_SIZE to a fixed value ... lets see [14:46] i did all that already ... didnt help [14:46] darn [14:46] so i didnt wipe my uboot image (still have that [14:46] but my boot floppy for my production system :( [14:47] aww [14:48] ogra: so now i double checked [14:48] the uboot thing that works really has good partition bounds [14:48] right [14:49] http://paste.ubuntu.com/352945/ [14:49] no complain [14:49] yep, same here [14:49] same here? [14:49] thought yours doesnt work ;) [14:49] read above [14:49] how did you produce your partition table? [14:49] gparted [14:49] manually [14:50] ok so how can we find good cylinder bounds? [14:50] i dd'ed uboot to the initialized SD [14:50] seems that cylinder size is target media specific [14:50] thern created a partition with offset in gparted [14:50] copied uimage in there and it works with every uimage i have [14:51] so ... why do we create this first partition with the odd fs id again? [14:51] * ogra checks if there is a chance we can use ext2 for /boot [14:51] asac, to protect the space where the bootloader lives [14:51] we need to enable ext2 in uboot for that [14:51] right [14:51] not sure how well it works [14:51] protect in what way? [14:51] if we just create one vfat partition with enough offset [14:51] from partitioning apps [14:51] how is that not enough ? [14:52] ok [14:52] if we re-use the SD later as bootfloppy that space should be protected [14:52] if we dont, we dont really need to care imho [14:52] so ... how can we do that properly? seems that cylinder size is depending on the SD card [14:52] i had one with 32K [14:52] this one is 64K [14:52] it doesnt depend on the card ... [14:52] if you get it right in the image file [14:52] really... then why do i have two different values? [14:53] hmm [14:53] because you look at the partition table [14:53] the one thats initialized on the card [14:53] yes [14:53] so parted can set that? [14:53] if that lives in the image it shouldnt matter [14:53] persia: shenki: fails exactly the same way with -marm [14:53] let me look into some docs [14:53] ogra: does bbg just run the bootloader from 1024 ... or from first partition? [14:54] probably doesnt matter ... fdisk -l on the .bin says cylinder size that is full [14:54] babbage doesnt care about partitions [14:55] it just tries to find the bootloader directly after the MBR [14:55] well, actually at the start of the SD but skips the MBR [14:56] ogra: may i ask whats the point on supporting the babbage if real users are going to have it? will all the devices based on imx51 work like the babbage? [14:57] similar at least [14:57] s/users are go/users aren't go/ [14:57] its a developer platform [14:58] you guys have any plan on qualcomm stuff? [15:03] nope [15:04] asac, i think we need to shuffle around with the cylinders and heads a bit with fdisk [15:06] with fdisk? [15:06] parted is too dumb? [15:10] $imagesize_in_bytes / 255 / 63 / 512 = $number_of_cylinders [15:10] we somehow need to let the partition table know about that number of cylinders [15:12] hmm [15:12] ok [15:13] checking how parted can do that [15:13] ogra: i am not sure that its really in the partition table [15:13] if i check on the .bin [15:14] its a different number than after dding it to SD [15:14] use fdisk -C [15:14] i see that number with fdisk -l too [15:15] i dont get why it works with the reboot images [15:15] Device Boot Start End Blocks Id System [15:15] lucid-desktop-armel+imx51.img1 1 512 32767+ da Non-FS data [15:15] lucid-desktop-armel+imx51.img2 513 10591 645056 c W95 FAT32 (LBA) [15:16] how are the bounds with B ? [15:16] most likely they are just right? [15:16] the script is the same [15:16] the one we use to create the image [15:17] and we dont shuffle the partitions or the table in it [15:17] damn. need to reboot again. this mmc driver stuff is really immature [15:18] thats actually why i am running .32 kernel as its better there [15:18] on your laptop ? [15:18] yes [15:18] never had instabilities [15:18] if i dont unmount and unplug it sometimes hangs badly [15:18] oh, i always unmount [15:18] i'm lazy, using nautilus :) [15:19] nautilus "eject" never worked for me [15:19] unmount worked [15:19] ok reboot [15:25] most annoying after every reboot: [15:25] screen /dev/ttyUSB0 115200 [15:25] Cannot make directory '/var/run/screen': Permission denied [15:26] ls -l /var/run/screen [15:26] ls: cannot access /var/run/screen: No such file or directory [15:26] asac: btw, i found out that chromium needs to have write access to /dev/shm [15:26] sudo mkdir /var/run/screen [15:26] yes [15:26] thats why its not working in a bindmounted chroot [15:26] because bindmount somewhat fails to keep permissions for /dev [15:27] use minicom not screen :) [15:27] well. screen always worked ... just started to fall apart 2 month ago :( [15:27] i blame upstart ;) [15:27] asac: guess you need to bindmount /dev/shm as well, like you have to do with /dev/pts [15:28] yeah, always a good candidate [15:29] armin76: that alone doesnt help [15:29] i tried that ;) [15:29] ogra: so loading uramdisk hangs [15:29] ogra: sure gzip is enabled? [15:29] you said you werent sure [15:29] asac: wfm [15:29] asac: blame upstart as well :D [15:30] just tried it [15:31] you are right [15:31] have that mounted in lucid chroot [15:31] asac fails [15:31] i win [15:32] you are late. thats all ;) [15:32] armin76_the_lagger [15:32] i don't have so many boards as you do, slacker [15:33] ogra: try this: mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n LinuxRocks -d boot/initrd.img-2.6.31-105-imx51 uRamdisk [15:33] it doesnt load [15:33] let me unpack that and use none [15:34] thats what debian on the sheevaplug uses: mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d initrd.img-2.6.29-2-kirkwood uInitrd [15:35] pretty much the same [15:35] yes. i surely got it loading [15:35] maybe i unpacked it [15:36] why would you ? [15:36] because maybe uboot doesnt like gzip ;) [15:36] yep [15:36] taht worked [15:36] gunzip the initrd [15:36] put it in as none [15:36] then it loads [15:36] well, i'm still chewing on the partitioning [15:36] yeah [15:37] so you get to busybox ? [15:37] i somehow need to get a boot floppy ;) [15:37] as i wiped it and cannot even boot in my great prod environment anymore [15:37] no [15:37] i am now trying ;) [15:37] * asac sets root=UUID=6483f06d-1216-43df-931f-faddc9c1db27 [15:40] ogra: it doesnt like that root :( http://paste.ubuntu.com/352971/ [15:40] so /dev/ram? [15:41] it doesnt find the initramfs [15:41] hmm. thought i loaded it [15:41] but doesnt use it [15:41] http://paste.ubuntu.com/352973/ [15:41] thats what i did [15:43] * asac slaps himself [15:44] plugging the usb disk to the board might help ;) [15:44] does that [15:44] not really [15:44] your initramfs doesnt get executed [15:44] by the kernel [15:46] so what is wrong ;)? [15:46] the address maybe? [15:47] initrd=... wrong? [15:47] the latter i suspect [15:49] wait, try loading uinitrd first [15:49] flip the adresses in bootm [15:49] sigh, i really dont get that partition thing [15:50] why does it work with the redboot images [15:51] uninitrd first? [15:53] flip the adresses [15:54] bootm [addr [arg ...]] [15:54] - boot application image stored in memory [15:54] passing arguments 'arg ...'; when booting a Linux kernel, [15:54] 'arg' can be the address of an initrd image [15:55] did you try it ? [15:55] bootm 0x90B00000 0x90008000 [15:56] i read the doc and it says that initrd is second ;) [15:56] now trying [15:57] Wrong Image Type for bootm command [15:57] ERROR: can't get kernel image! [15:57] so expdected [15:57] now trying to not load ramdisk, but rather loading it from vfat [15:57] ok, was worth a try [16:01] great [16:01] end of work [16:01] board doesnt show any sign of live anymore :( [16:01] asac: wait, I'm not the only one to have kill a board now ;) [16:02] did you trash your SD ? [16:02] what do you mean? [16:02] note that it wont stay on if it doesnt find the bootrecord [16:02] i dont see any lamp if i push on the button :( [16:02] oh [16:02] yes [16:02] but no lamp goes on [16:02] how did you manage that ? [16:03] i dont know [16:03] i put in the sd [16:03] * JamieBennett notes he killed his with the wrong power lead not in software [16:03] * ogra hasnt seen anyone fry a board apart from using over-power [16:03] :) [16:03] lol [16:03] overpower? [16:03] flowerpower! [16:04] asac: in my case it was a mis-labelled (or rather not labelled) power lead running 12v so nothing for you to worry about [16:04] asac: remove the sd :D [16:05] it wont power on without SD [16:06] ogra: but it does light up for a second [16:06] oh [16:06] if you hold the power button [16:06] right, but if it doesnt do that anyway, the Sd shouldnt matter [16:06] ogra: right [16:07] sigh [16:07] nothing [16:07] ogra: we did have someone make a board produce "magic white smoke" though :) [16:07] plars, well, but he's known for his magic skills anyway :) [16:10] * ogra enables ext2 in uboot [16:13] JamieBennett: you have a bbg2? [16:13] does that work with same power adapter? [16:13] asac: I have a 2.0 and 2.5 [16:14] 2.5 has same adapter [16:14] 2.0 is 12v [16:14] ah ok [16:14] so i need to get the 12v from my other place [16:14] beforei can continue on bbg2 [16:14] measure [16:15] pick a voltmeter and check if you have no voltage before playing with power adapters [16:15] the 2.5 should have a 5V adapter btw [16:16] not 12 [16:16] thats 2.0 [16:16] ogra: yes as I pointed out above. 2.5 and 3.0 have 12v, 2.0 has 12v [16:16] 5v that should of been [16:16] :) [16:17] i just wanted to prevent asac from plugging in 12V [16:17] I'm in pain, took the kids in the snow for 30 mins sledging and now my backside hurts from a rather fast decent without the sledge :) [16:17] ouch [16:18] ogra: yep, can't be too careful with them power adapters ;) [16:18] * ogra only leaves the house if absolutely necessary [16:18] way to cold outside [16:19] i definitly didnt replug any power adapter or so [16:21] i have a warrenty thing for this board [16:22] though i have no place of purchase [16:22] BBG U-Boot > ext2ls mmc 0:2 [16:22] 1024 . [16:22] 1024 .. [16:22] 12288 lost+found [16:22] 64 uimage [16:23] cool [16:23] BBG U-Boot > ext2load mmc 0:2 0x90008000 /uimage [16:23] Loading file "/uimage" from mmc device 0:2 (xxa2) [16:23] 64 bytes read [16:23] but that doesnt matter for our problems ;) [16:23] thats wrong [16:23] 64 bytes read [16:23] no, the file is broken [16:23] oh why it so small? [16:23] see the ls [16:23] hehe [16:23] yeah [16:28] well, has the same issues [16:30] hum... can any one here help me? getting a kernel panic when trying to start ubuntu arm in qemu. The error is "Attempted to kill init" [17:02] fta: do you know where we can tweak the default profile for chromium? [17:02] e.g. different homepage etc.? [17:16] fta: seems todays chromium dailies failed [17:17] probably needs some GL depends? [17:31] fta: build-tree/src/third_party/gles_book_examples/ is in our orig too [17:31] please strip that [17:57] fta: http://pastebin.com/f5f971220 ... somehow the ForwardingHeaders matches are now working [17:57] asac, i have a problem with the gl thing: for webgl, they have a patched glu because of http://crbug.com/16800 (nvidia has its own broken libgl), but for gpu (new), they want the system gl/glu headers [17:58] the rest works well [17:58] http://paste.ubuntu.com/353039/ [17:59] so in the current state, i can't provide both gpu & webgl without breaking javascript (like the gmail timezone bug) [17:59] ah ok. so thats not the reason for the build failure? [17:59] why do we need both? [17:59] what is webgl? [18:00] oh thats chromium stuff [18:00] how does that work for them then? [18:00] seems we are not doing anything special ... e.g. use their webgl and system gl/glu headers for gpu [18:01] the build failure could easily be solved with build-deps += mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev but that means breaking js (http://crbug.com/16800) [18:02] ok found the prob with the licensecheck i think [18:02] webgl: http://arstechnica.com/open-source/news/2009/08/webgl-standard-to-bring-3d-web-without-browser-plugins.ars [18:02] http://arstechnica.com/open-source/news/2009/12/webgl-draft-published-khronos-seeks-community-involvement.ars [18:03] breaking js like their time thing? [18:04] why does it work for them? [18:04] because it only breaks if you're using the nvidia driver [18:04] like i do [18:05] ok. so they are happy with that? [18:05] no [18:05] otherwise i would suggest to file a bug and wait till they figure it out [18:05] and for that time accept that nvidia is broken. feels like they will work on that with high prio [18:05] they fixed it for webgl by patching glu to not load libGl.so.1 directly [18:05] but it's back with the new gpu feature [18:05] right [18:06] so they will have to do something about gpu too [18:06] i already reported that to the gpu guy [18:06] right. thats why i think we should just do what they do and accept bugs they have for the time being [18:06] (he's in california) [18:11] the bot kicks off at 4am so i still still have time to discuss with upstream, maybe there's a better fix, if there's nothing, i'll add the build-deps [18:12] yeah [18:12] i would assume that if they build with both enabled they have the same time regression [18:12] so we would just replicate their behaviour [18:14] asac, http://groups.google.com/group/chromium-dev/browse_thread/thread/a7d337e88e63af6d# [18:17] shenki: around? [18:17] asac: did you try armv7=1? [18:19] armin76: no, because we have no NEON in kernel and buld system doesnt allow to disable that [18:19] is on my list to fix in build systme [18:21] ah, right [18:21] sorry i forgot *g* === mcasadevall is now known as NCommander === asac_ is now known as asac === bjf-afk is now known as bjf === cwillu_at_work is now known as IcantBelieveItsN === IcantBelieveItsN is now known as cwillu_at_work [21:46] asac: the firefox in that ppa seems to work for me on babbage [21:46] plars: cool thanks. alrady set it to DONE :) [21:46] (the item) [22:06] lool, that was you I was talking to about pixman et al, right? [22:15] cwillu_at_work: from ubuntu yes, the other guy was ssvb [22:19] cwillu_at_work: Yes [22:19] As armin76 said [22:25] was just re-reading http://lists.cairographics.org/archives/cairo/2009-October/018421.html, looking for confirmation that an neon'ified pixman does what I think it does; I now think I misread it when I poked you just now :p [23:21] * cwillu_at_work raids cgit.freedesktop.org for unreleased neon pixman patches === bjf is now known as bjf-afk