Re: [Balloon] Problem loading fs tarball into balloon

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Wookey
Date:  
To: Charles Manning
CC: balloon
Subject: Re: [Balloon] Problem loading fs tarball into balloon
+++ Charles Manning [2010-04-07 10:07 +1200]:
> On Wednesday 07 April 2010 01:04:14 Wookey wrote:
> > +++ Charles Manning [2010-04-06 16:23 +1200]:
> > > On Tuesday 06 April 2010 12:23:16 Wookey wrote:
> > > > +++ Charles Manning [2010-04-06 09:33 +1200]:
> > > > > Ballooners..
> > > > >
> > > > > I have successfully used bbl to load a new bootloader, fpga binary
> > > > > and kernel, but things came unstuck when I tried to load the tarball
> > > > > off the usb flash due to missing kernel modules.
> > >
> > > On further looking...
> > > Looks like the problem is in the module definitions meaning modprobe
> > > looks in the wrong places. modprobe fails but manual insmod works.
> >
> > That suggests that the modules.dep file generation has gone wrong.


> # pwd
> /lib/modules/2.6.29.1-pxa270
> # cat modules.dep
> kernel/drivers/usb/gadget/g_ether.ko: kernel/drivers/usb/gadget/pxa27x_udc.ko
> kernel/drivers/usb/gadget/g_serial.ko: kernel/drivers/usb/gadget/pxa27x_udc.ko
> kernel/drivers/usb/gadget/pxa27x_udc.ko:
> kernel/drivers/usb/core/usbcore.ko:


OK. I've reproduced this and made some progress on what's going wrong.

Currently we do this to generate the depmod file 'offline' with
/sbin/depmod -ae -b $(TARGETSKEL) -F $(BUILDDIR)/kernel/linux-$(KERNVER)/System.map $(KERNVER)-pxa270

which says 'run it in $TARGETSKEL but then strip that path from the
entries that actually go in the modules.dep file, do it for kernel
$(KERNVER)-pxa270 and check the symbols against
$(BUILDDIR)/kernel/linux-$(KERNVER)/System.map'

In a real run this expands to:
/sbin/depmod -aev -b ../../build/initrd/buildroot/target/generic/target_skeleton_balloon3_installer
-F ../../build/kernel/linux-2.6.29.1/System.map 2.6.29.1-pxa270

which works just fine on Lenny with modules-init-tools 3.4-1, producing
a file like:
/lib/modules/2.6.29.1-pxa270/kernel/drivers/usb/gadget/g_ether.ko: /lib/modules/2.6.29.1-pxa270/kernel/drivers/usb/gadget/pxa27x_udc.ko                              
/lib/modules/2.6.29.1-pxa270/kernel/drivers/usb/gadget/g_serial.ko: /lib/modules/2.6.29.1-pxa270/kernel /drivers/usb/gadget/pxa27x_udc.ko


but on squeeze with modules-init-tools 3.11-1 (or the current
3.12~pre2-3), it fails, missing off the /lib/modules/2.6.29.1-pxa270/
from the front of each modules.dep entry. As modprobe strips
everything before the first / it starts looking for (for example)
drivers/usb/gadget/g_ether.ko, which fails.

Using realpath to get absolute instead of relative paths doesn't make any difference.

Downgrading to 3.4-1 makes it work again, which I suggest is the best
plan for the time being. I've reported this to Debian and will try and
work up a patch when I get a mo, but I need to make Pootle work this
afternoon.

Wookey
--
Principal hats: iEndian - Balloonboard - Toby Churchill - Emdebian
http://wookware.org/