[yocto] BBB doesn't boot

Stanacar, StefanX stefanx.stanacar at intel.com
Wed Apr 16 03:20:36 PDT 2014




On Tue, 2014-04-15 at 21:20 -0400, Denys Dmytriyenko wrote:
> 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...
> 


But qemux86-64 or genericx86-64 or qemuarm kernel has the same strings,
and it boots just fine:

$ strings
yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/work/qemux86_64-poky-linux/linux-yocto/3.14+gitAUTOINC+fc8c30398d_0143c6ebb4-r0/linux-qemux86_64-standard-build/vmlinux | grep -A 2 -B 2 -E "init/main.c"
4Malformed early option '%s'
3Starting init: %s exists but couldn't execute it (error %d)
/home/stefans/yocto-autobuilder/yocto-slave/nightly-x86-64/build/build/tmp/work/qemux86_64-poky-linux/linux-yocto/3.14+gitAUTOINC+fc8c30398d_0143c6ebb4-r0/linux/init/main.c
4Parameter %s is obsolete, ignored
Interrupts were enabled *very* early, fixing it

qemuarm:
$ strings
yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work/qemuarm-poky-linux-gnueabi/linux-yocto/3.14+gitAUTOINC+928d7b2dda_c966987f88-r0/linux-qemuarm-standard-build/vmlinux | grep -A 2 -B 2 -E "init/main.c"
tab_
__ks
/home/stefans/yocto-autobuilder/yocto-slave/nightly-arm/build/build/tmp/work/qemuarm-poky-linux-gnueabi/linux-yocto/3.14+gitAUTOINC+928d7b2dda_c966987f88-r0/linux/init/main.c
earlycon
4Malformed early option '%s'


Cheers,
Stefan


> -- 
> Denys



More information about the yocto mailing list