[yocto] BBB doesn't boot

Denys Dmytriyenko denis at denix.org
Tue Apr 15 18:20:43 PDT 2014


On Tue, Apr 15, 2014 at 09:12:30PM -0400, Denys Dmytriyenko wrote:
> On Wed, Apr 16, 2014 at 12:36:58AM +0100, Richard Purdie wrote:
> > On Tue, 2014-04-15 at 15:43 -0400, Denys Dmytriyenko wrote:
> > > I don't yet know what is going on, but building in the same directory with 
> > > sources (B = S) makes it work regarless of the path length:
> > > 
> > > /OE/RAM/poky-111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111/22222222222222222222222222222222222222222222222222222222222222222222/3333333333333333333333333333333333333333333333333333/tmp/work/beaglebone-poky-linux-gnueabi/linux-yocto/3.14+gitAUTOINC+928d7b2dda_0143c6ebb4-r0/linux
> > > 
> > > So, I just commented out setting kernel-specific B in linux-yocto.inc and any 
> > > kernel now boots with long path:
> > > 
> > > #B = "${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build"
> > > 
> > > I'm copying Richard and Bruce directly to see if they may have a quick insight 
> > > and/or accept it as a workaround for the release. I'll keep digging further, 
> > > but if anyone cares to verify the above workaround works for them, I would 
> > > appreciate. Thanks!
> > 
> > I'm travelling and don't have hardware so I'm limited in what I can look
> > at right now. I suspect this workaround "works" because it makes the
> > "beaglebone-standard-build" extra characters on the path. I have a
> > feeling your -1111111 test above may have reused sstate or something
> > like that and given misleading results. I'd be interested in the vmlinux
> > file from the build above to see if the poky-111111 pathnames are in
> > there (they get stripped out when you create the zImage).
> 
> Nope, I was fooled by sstate once, so this time I tested with cleansstate and 
> compared timestamps of the kernel when it boots - it is definitely the new 
> one. And to make sure 'beaglebone-standard-build' extra suffix doesn't affect 
> it, I increased the path length even further - that extra level with 333 is 
> there to over-compensate, as it was failing before even with just 111 and 222 
> levels only... Looks like Gary was also able to verify it.
> 
> But, you are right about vmlinux - it doesn't have those paths in there any 
> more! I've seen them there when building with B != S, but they are gone when 
> building with B = S. Wondering why. You can check it for yourself:
> 
> http://arago-project.org/files/short-term/misc/vmlinux-3.14.0-yocto-standard

And, as a follow up, all those long paths in vmlinux when built with B != S 
point to sources. Here are few examples:

B != S strings:

/OE/RAM/poky/tmp/work/beaglebone-poky-linux-gnueabi/linux-yocto/3.14+gitAUTOINC+928d7b2dda_0143c6ebb4-r0/linux/init/main.c
earlycon
4Malformed early option '%s'
3Starting init: %s exists but couldn't execute it (error %d)
...
6Trying to unpack rootfs image as initramfs...
/OE/RAM/poky/tmp/work/beaglebone-poky-linux-gnueabi/linux-yocto/3.14+gitAUTOINC+928d7b2dda_0143c6ebb4-r0/linux/init/initramfs.c
6rootfs image is not initramfs (%s); looks like an initrd
TRAILER!!!
...
%lu.%02lu BogoMIPS (lpj=%lu)
/OE/RAM/poky/tmp/work/beaglebone-poky-linux-gnueabi/linux-yocto/3.14+gitAUTOINC+928d7b2dda_0143c6ebb4-r0/linux/arch/arm/vfp/vfpmodule.c
6VFP support v0.3: 


B = S same strings:

init/main.c
earlycon
4Malformed early option '%s'
3Starting init: %s exists but couldn't execute it (error %d)
...
6Trying to unpack rootfs image as initramfs...
init/initramfs.c
6rootfs image is not initramfs (%s); looks like an initrd
TRAILER!!!
...
%lu.%02lu BogoMIPS (lpj=%lu)
arch/arm/vfp/vfpmodule.c
6VFP support v0.3: 


So, that explains why B = S works regardless of the location, as it doesn't 
embed full path to source files...

-- 
Denys



More information about the yocto mailing list