[OLPC-devel] buildrom issues

Ronald G Minnich rminnich at lanl.gov
Wed Jun 28 10:57:56 EDT 2006


First, latest one no longer builds for me:

minnich at q buildrom]$ make
Building the minimal kernel...
Building uclibc...
Building busybox...
Building wireless-tools...
make[1]: Entering directory 
`/home/rminnich/src/amd/GX2/OLPC_BOOT/buildrom/work/wireless-tools/wireless_tools.28'
gcc -shared -o libiw.so.28 -Wl,-soname,libiw.so.28  -lm -lc iwlib.so
/usr/bin/ld: errno@@GLIBC_PRIVATE: TLS definition in /lib/libc.so.6 
section .tbss mismatches non-TLS reference in iwlib.so
iwlib.so: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [libiw.so.28] Error 1
make[1]: Leaving directory 
`/home/rminnich/src/amd/GX2/OLPC_BOOT/buildrom/work/wireless-tools/wireless_tools.28'
make: *** 
[/home/rminnich/src/amd/GX2/OLPC_BOOT/buildrom/initrd-rootfs/sbin/iwconfig] 
Error 2
[rminnich at q buildrom]$

Curse you, TLS! Curse you forever! :-)

second, I had VERBOSE set there; not very verbose. In general, I don't 
like systems that hide all the build steps. It took me a while to 
realize, for example, that even though the top-level makefile said it 
was making some things, it was not; and since the cycle is a ROM BIOS 
reflash per iteration, this gets tiresome. We've found that for the case 
that you are reflashing a BIOS, the more build spew you get, the better. 
I.e., let's yank some of the @ from the makefiles :-)

third, I guess I need to fix up some dependencies. the only way to 
reliably assure that I get my mods in is to
make clean && make

fourth, /proc was not there at first, and I would in general recommend this:
         makedevs("/device.txt");
         mount_proc();

i.e. there might be a /proc in device.txt, so mount proc after the 
devices are made.

Fifth, here is the device.txt that gets me mostly there:
[rminnich at q buildrom]$ more ../buildrom-old/skeleton/device.txt
/dev            d       755     0       0
/proc           d       555     0       0
/mntpoint       d       777     0       0
/dev/null       c       640     0       0       1       3
/dev/zero       c       640     0       0       1       5
/dev/tty        c       640     0       0       5       0
/dev/tty0       c       640     0       0       4       0
/dev/console    c       640     0       0       5       1
/dev/sda1       b       640     0       0       8       1
/dev/sda2       b       640     0       0       8       2
/dev/sda3       b       640     0       0       8       3
/dev/sda4       b       640     0       0       8       4

Am I doing something wrong here?

Sixth, (wow this got long!), it still won't work; the mount on /mntpoint 
failed.

Finally ... although I really love the klb, we've done a lot of work 
with similar systems here, and ... when things go south, it's really 
nice to have a shell prompt. Right now, I get an error from klb, and the 
  diagnostic is rebuild things and reflash. This is really tiring. If I 
had a shell prompt, there is some poking around I could do.

We're converting 7500 machines over from our own version of klb to a 
shell-script-plus-ash approach. I am going to try ash tonight -- if I 
can get this thing to build that is -- or a simpler shell I used to use 
called KISS (let's face it -- ash has readline, which is real overkill 
when you are tight on space!).

ron



More information about the Devel mailing list