[meta-freescale] imx7, runaway loop modprobe binfmt-464c

Otavio Salvador otavio.salvador at ossystems.com.br
Wed Sep 27 05:44:48 PDT 2017


Hello Carlos,

On Tue, Sep 26, 2017 at 10:27 PM, Bejar-Colonia, Carlos
<carlos.bejar-colonia at philips.com> wrote:
> I am trying to bring up a Yocto build on a custom i.MX7 board that uses NAND
> flash. I am using yocto from fsl-community-bsp (Morty), MACHINE=imx7dsabresd
> (modified).
>
> Here is part of the machine config I use:
>
> IMAGE_FSTYPES := "ubifs cpio.gz"
>
> MKUBIFS_ARGS = "--squash-uids --min-io-size 2048 --leb-size 126976
> --max-leb-cnt 940"
>
>
>
> KERNEL_CLASSES ?= " kernel-fitimage "
>
> KERNEL_IMAGETYPE := "fitImage"
>
>
>
> # imx7koji-initramfs is defined as a recipe in recipe-core/image/
>
> INITRAMFS_IMAGE = "imx7koji-initramfs"
>
>
>
> I created append recipes to customize u-boot (u-boot-imx_2016.03.bbappend);
> to add a new device tree and change kernel config
> (linux-imx_4.1.15.bbappend).
>
> Yocto builds fine, however when tried to boot the board, the kernel is not
> able to run "/init":
>
>
>
> ...
>
> Freeing unused kernel memory: 188K (804f7000 - 80526000)
>
> request_module: runaway loop modprobe binfmt-464c
>
> request_module: runaway loop modprobe binfmt-464c
>
> Failed to execute /init (error -8)
>
> request_module: runaway loop modprobe binfmt-464c
>
> Starting init: /sbin/init exists but couldn't execute it (error -8)
>
> request_module: runaway loop modprobe binfmt-464c
>
> Starting init: /bin/sh exists but couldn't execute it (error -8)
>
> Kernel panic - not syncing: No working init found. Try passing init= option
> to kernel. See Linux Documentation/init.txt for guidance.
>
> Rebooting in 5 seconds..
>
>
>
> I made sure the initramfs contains “/init” (it is a soft link to /sbin/init
> which is a soft link to /sbin/init.sysvinit). I also checked the
> architecture of the kernel and the user space init are the same (32bits),
> but still the board resets.
>
>
>
> $ file ./linux-imx/4.1.15-r0/build/vmlinux
>
> ./linux-imx/4.1.15-r0/build/vmlinux: ELF 32-bit LSB executable, ARM, EABI5
> version 1 (SYSV), statically linked,
> BuildID[sha1]=9d64e3cab02bd4ab3c548b18c1dc5228116cf913, not stripped
>
>
>
> $ file sbin/init.sysvinit
>
> deploy/images/imx7koji/mp/sbin/init.sysvinit: ELF 32-bit LSB executable,
> ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for
> GNU/Linux 3.2.0, BuildID[sha1]=610388df391c1223d7522530fde8097537356288,
> stripped
>
>
>
> Also enabled the kernel to support ELF. Still the board reset with the same
> error.
>
>
>
> CONFIG_BINFMT_ELF=y
>
> CONFIG_BINFMT_SCRIPT=y
>
>
>
> Any ideas on the root cause of this issue, did I miss something in the
> config?

First, I'd like to suggest you to use Pyro. It does include a number
of improvements on top of morty and as it seems you are starting a new
product development it makes sense to start fresh ;-)

For initrd, it is good to validate if it is indeed behaving as expect.
Try booting with rdinit=/bin/sh and see if it succeeds.

I suggest you to look at the initramfs-framework which we, at O.S.
Systems, contributed to OpenEmbedded-Core. Besides allowing a modular
development of initramfs modules, it provides a nice set of debug
hooks[1].

1. http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-core/initrdscripts/initramfs-framework/debug

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


More information about the meta-freescale mailing list