[Clfs-support] CLFS support

Andrew Bradford andrew at bradfordembedded.com
Thu Feb 6 09:59:47 PST 2014


On 02/06/2014 11:04 AM, Kevyn-Alexandre Paré wrote:
> Trying to boot my board with the CLFS procedure and I'm stuck at
> init/main.c : Kernel panic - not syncing: No init found.
> 
> Here my kernel parameters:
> 
> [    0.000000] Kernel command line: console=ttyO2,115200n8
> init=/sbin/init debug mpurate=500 vram=12M
> omapfb.mode=lcd43:480x272MR-24 at 60 omapdss.def_disp=lcd43
> root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
> 
> 
> Here we see the problem is that kernel_execve return code: -2 ?
> 
> [    4.784484] EXT3-fs (mmcblk0p2): using internal journal
> [    4.790039] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
> [    4.798065] VFS: Mounted root (ext3 filesystem) on device 179:2.
> [    4.810119] devtmpfs: mounted
> [    4.814239] Freeing init memory: 232K
> [    4.818115] [KA]: args_init[0]: (null)
> [    4.835113] usb 1-2.2: skipped 1 descriptor after interface
> [    4.841217] usb 1-2.2: skipped 1 descriptor after interface
> [    4.851226] usb 1-2.2: default language 0x0409
> [    4.856445] [KA]: kernel_execve return code: -2
> [    4.861602] Failed to execute /sbin/init.  Attempting defaults...
> [    4.878021] usb 1-2.2: udev 3, busnum 1, minor = 2
> [    4.883087] usb 1-2.2: New USB device found, idVendor=05ac, idProduct=0220
> [    4.891632] [KA]: kernel_execve return code: -2
> [    4.905212] usb 1-2.2: New USB device strings: Mfr=1, Product=2,
> SerialNumber=0
> [    4.913513] usb 1-2.2: Product: Apple Keyboard
> [    4.918945] usb 1-2.2: Manufacturer: Apple, Inc
> [    4.924072] [KA]: kernel_execve return code: -2
> [    4.939453] usb 1-2.2: usb_probe_device
> [    4.943511] usb 1-2.2: configuration #1 chosen from 1 choice
> [    4.949768] [KA]: kernel_execve return code: -2
> [    4.963806] usb 1-2.2: adding 1-2.2:1.0 (config #1, interface 0)
> [    4.971282] usbtest 1-2.2:1.0: usb_probe_interface
> [    4.977386] [KA]: kernel_execve return code: -2
> [    4.982421] usbtest 1-2.2:1.0: usb_probe_interface - got id
> [    4.988708] Kernel panic - not syncing: No init found.  Try passing
> init= option to kernel. See Linux Documentation/init.txt for guidance.
> 
> I see that /sbin/init exist have right permissions:
> knight at knight:/media/sdc/rootfs$ ls -al sbin/init
> lrwxrwxrwx 1 root root 14 Feb  4 14:50 sbin/init -> ../bin/busybox
> knight at knight:/media/sdc/rootfs$ ls -al bin/busybox
> -rwxr-xr-x 1 root root 879500 Feb  4 14:50 bin/busybox
> file bin/busybox
> bin/busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV),
> dynamically linked (uses shared libs), stripped
> file ./lib/libc.so
> ./lib/libc.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV),
> dynamically linked, not stripped
> 
> 
> Any recommendation ?

You should also have a /lib/ld-musl-armhf.so.1 as a symlink to
/lib/libc.so since the compiler is building assuming that the
linker/loader is named ld-musl-armhf.so.1.  Does that symlink exist for you?

If so, try building a static hello world app and set that to be init.
If that works, that's a good indication that the toolchain is working.
Then try building a dynamically linked hello world, likely if that fails
it'll tell you why (usually related to ld).

If you can run static and dynamic hello world apps as init but busybox
can't, there's something wrong with your busybox build.

Thanks,
Andrew



More information about the Clfs-support mailing list