首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

busybox制作文件系统 no init found panic解决办法

2012-06-07 
busybox制作文件系统 no init found panic使用busybox制作文件系统。首先使用脚本建立rootfs根文件系统如下

busybox制作文件系统 no init found panic
使用busybox制作文件系统。
首先使用脚本建立rootfs根文件系统如下

JScript code
echo "making dir:bin dev etc lib proc sbin sys usr gui flash"mkdir bin dev etc lib proc sbin sys usr gui flash mnt varmkdir usr/bin usr/lib usr/sbin lib/modulesmknod -m 600 dev/console c 5 1mknod -m 666 dev/null c 1 3echo "making dir:mnt tmp var"mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/tempmkdir var/lib var/lock var/log var/run var/tmpchmod 1777 var/tmpecho "making dir:home root boot"mkdir home root bootecho "done"

然后在init.d/rcS中编译:
#!/bin/sh

# Start all init scripts in /etc/init.d
# executing them in numerical order.
mount -t proc proc /proc
mount -a
echo hello

使用mkfs.jffs2制作jffs2文件系统:
cd rootfs
chmod +x etc/init.d/rcS
cd ../
mkfs.jffs2 -e 0x10000 --pad=0x200000 -l -d rootfs -o jffs2.bin

file mkfs.jffs2显示:
mkfs.jffs2: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped

将jffs2.bin使用jtag烧写到nor flash后,通过uboot引导启动,但是显示pannic
Uncompressing Linux.................................................................................done, booting the kernel.
﨤inux version 2.6.27.8 (root@forsafeRD) (gcc version 4.3.2 (crosstool-NG-1.3.1) ) #221 PREEMPT Thu May 31 18:07:10 CST 2012
CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177
Machine: SmartARM3250 board with the LPC3250 Microcontroller
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT write-back cache
CPU0: I cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
CPU0: D cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
Kernel command line: init=/linuxrc rootfstype=jffs2 root=/dev/mtdblock2 rw console=ttyS0,115200 mem=32M
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 76K
NO.= 8, x=0x3b2 ,y=0x3eb
NO.= 9, x=0x3b2 ,y=0x3eb
NO.= 10, x=0x3b2 ,y=0x3eb
NO.= 11, x=0x3b1 ,y=0x3eb
NO.= 12, x=0x3ae ,y=0x3e8
NO.= 13, x=0x3ac ,y=0x3eb
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel. 

然后一直打印以下内容:
NO.= 14, x=0x3b1 ,y=0x3eb
NO.= 15, x=0x3b3 ,y=0x3eb
NO.= 16, x=0x3b3 ,y=0x3eb
NO.= 17, x=0x3b2 ,y=0x3eb
NO.= 18, x=0x3b3 ,y=0x3eb
NO.= 19, x=0x3b3 ,y=0x3eb
NO.= 20, x=0x3b3 ,y=0x3eb
NO.= 21, x=0x3b2 ,y=0x3eb
NO.= 22, x=0x3b3 ,y=0x3eb
NO.= 23, x=0x3b2 ,y=0x3eb
NO.= 24, x=0x3b2 ,y=0x3eb
NO.= 25, x=0x3b2 ,y=0x3eb
NO.= 26, x=0x3b2 ,y=0x3eb
NO.= 27, x=0x3b2 ,y=0x3eb
NO.= 28, x=0x3b2 ,y=0x3eb
NO.= 29, x=0x3b2 ,y=0x3eb
NO.= 30, x=0x3b2 ,y=0x3eb
NO.= 31, x=0x3b2 ,y=0x3eb
NO.= 32, x=0x3b2 ,y=0x3eb
NO.= 33, x=0x3b2 ,y=0x3eb
这是哪里有问题,

[解决办法]
Kernel command line: init=/linuxrc rootfstype=jffs2 root=/dev/mtdblock2 rw console=ttyS0,115200 mem=32M
Kernel panic - not syncing: No init found. Try passing init= option to kernel. 

你bootargs中指定的 init=/linuxrc 系统没找到, 你在rootfs文件夹下看生成linuxrc了没。
有些是不用linuxrc的,换成其他的.

另,很多步骤可能出错的. 不如你jffs2的大小,系统的大小端等等.
http://z8z88.blog.163.com/blog/static/11268008820094219176703/
LZ看看一个个排除下吧。

最后,那个生成的jffs2是Intel 80386的????? 
我file了我生成的jffs2,提示说是 data (我的jffs2不做根文件系统).
没file过jffs2 不知道你这个80386的bin对不对.... 
还有那个busybox,我咋没见到它的身影捏...

热点排行