Pánico del kernel: no se sincroniza: no se ha encontrado el init. Al arrancar desde U-Boot

Kernel montó el sistema de files raíz, pero no puede encontrar ninguna secuencia de commands de inicio. ¡Estoy seguro de que existe una secuencia de commands en mi ramdisk.img!

También revisé esto y la Guía del usuario del software GE863-PRO3 U-BOOT 1VV0300777 Rev. 6 – 2010-01-25.

¿Alguna idea o documentation alternativa?

Mi entorno: versión GE863-PRO3 128/64

U-Boot 1.2.0 (Aug 18 2010 - 12:16:10)- 221 Telit DRAM: 64 MB Bank #1 Flash:NAND Numonyx NAND01G-B2B 128MB 1.8V 8-bit Hardware ECC (ECC data size = 512 bytes) Nb min erasable unit: 1024 min erasable Size: 131072 Size=134217728 bytes Logical address: 0x40000000 No bad block detected Area 0: 40000000 to 403BFFFF (RO) Primary Bootstrap Area 1: 403C0000 to 4043FFFF (RO) U-Boot code Area 2: 40440000 to 404BFFFF (RO) U-Boot Environment Area 3: 404C0000 to 407BFFFF User Area 1 Area 4: 407C0000 to 47FFFFFF User Area 2 

Comandos U-BOOT:

 setenv bootargs console=ttyS0,115200 mem=64M ver=4384k icofat=257k rootfstype=jffs2 root=/dev/mtdblock1 rw mtdparts=at91_nand:7936k(ARMboot)ro,-@7936k(root) init=/bin/busybox ethinit 192.168.122.3 erase 404C0000 47FFFFFF tftp 20200000 ramdisk.img cp.b 20200000 0x407c0000 14cd78 tftp 20200000 uImage bootm 

salida de arranque:

 VFS: Mounted root (jffs2 filesystem). Freeing init memory: 96K Setting DMA Console Failed to execute /bin/busybox. Attempting defaults... Kernel panic - not syncing: No init found. Try passing init= option to kernel. Function entenetworking at [<c01de28c>] from [<c01de304>] Function entenetworking at [<c01de2a0>] from [<c0020398>] r3:c3c1ac40 r2:c3c1ac40 r1:c3c1deb0 r0:c01c3cab Function entenetworking at [<c00202dc>] from [<c00085e0>] r4:c020d2c0 Function entenetworking at [<c00083b8>] from [<c003a454>] 

Tu problema está aquí:

 setenv bootargs console=ttyS0,115200 mem=64M ver=4384k icofat=257k rootfstype=jffs2 root=/dev/mtdblock1 rw mtdparts=at91_nand:7936k(ARMboot)ro,-@7936k(root) init=/bin/busybox 

Busyboxy es como un camaleón. Cambia su comportamiento dependiendo de cómo lo llame. Para hacer que actúe como init debes llamarlo init . Cámbielo a init=/sbin/init .

También debe asegurarse de que /sbin/init sea ​​un enlace simbólico o un enlace fijo a /bin/busybox dentro de ramdisk.img.

No estoy interesado en hacer initrd, ¿pero es posible establecer los permissions dentro del initrd? Tal vez /bin/busybox/ no tiene permiso ejecutable.

¿Faltan /dev/null o /dev/console ? Tuve un problema similar cuando esos dos files faltaban.