阅读:5104回复:7
kernel panic:No init found. Try passing init= option to kernel为什么?
现在我在做一基于linux的板子,基本配置是 ppc860, 2M flash,32M sdram,
内核是linux2.4.4,引导程序使用的是ppcboot2.0.0,交叉编译环境使用的是eldk 由于flash比较小,所以考虑使用ramdisk在内存中虚拟一块8M的FLASH,ramdisk是基于 EXT2文件系统,编译内核时在加入了对Ram disk support ,Initial Ram disk support Second extend fs support的支持, 上电后,引导程序能引导操作系统内核,但是加载ramdisk文件系统时出了问题 打印错误为kernel panic:No init found. Try passing init= option to kernel 不知道这是为什么, 具体打印如下(内核和文件系统都是通过tftp方式分别下到内存地址的100000和300000) (请注意最后几行的打印) 打印如下, =>bootm 100000 300000 ## Booting image at 00100000 ... Image Name: Linux-2.4.4 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 467906 Bytes = 456.9 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Loading RAMDisk Image at 00300000 ... Image Name: RAMDISK860 Image Type: PowerPC Linux RAMDisk Image (gzip compressed) Data Size: 3215768 Bytes = 3.1 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Loading Ramdisk to 01c4a000, end 01f5b198 ... OK Linux version 2.4.4 (root@linux) (gcc version 2.95.4 20010319 (prerelease/franzo /20011204)) #8 Fri Apr 2 15:00:10 CST 2004 On node 0 totalpages: 8192 zone(0): 8192 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/ram rw Decrementer Frequency: 3125000 Warning: real time clock seems stuck! Calibrating delay loop... 49.86 BogoMIPS Memory: 27640k available (908k kernel code, 428k data, 48k init, 0k highmem) Dentry-cache hash table entries: 4096 (order: 3, 32768 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 2048 (order: 2, 16384 bytes) POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Starting kswapd v1.8 CPM UART driver version 0.03 ttyS0 on SMC1 at 0x0280, BRG1 ttyS1 on SMC2 at 0x0380, BRG2 pty: 256 Unix98 ptys configured block: queued sectors max/low 18288kB/6096kB, 64 slots per queue RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize eth0: CPM ENET Version 0.2 on SCC1, 44:00:00:00:00:00 RAMDISK: Compressed image found at block 0 Freeing initrd memory: 3140k freed NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 2048 bind 2048) Sending BOOTP requests.... OK IP-Config: Got BOOTP answer from 172.18.19.250, my address is 172.18.19.251 NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended VFS: Mounted root (ext2 filesystem). Freeing unused kernel memory: 48k init Kernel panic: No init found. Try passing init= option to kernel. Rebooting in 180 seconds.. 请问我是在哪里出了问题,谢谢 |
|
沙发#
发布于:2004-04-08 15:31
估计你的rootfs出现问题了,找不到/dev下的设备文件是不是齐全不?
|
|
板凳#
发布于:2004-04-11 10:10
对于制作ramdisk,/dev下至少需要哪几个设备?谢谢
|
|
地板#
发布于:2004-04-11 12:10
你有没有将/bin/init放到你的ramdisk里去?如果放了,那就是你的lib有问题。你的问题我碰到过,经过N次排错,最后采用了“修剪法”,也就是拿一个现成的能用的ramdisk一个文件一个文件的删,删到最小且能用为止。呵呵,我的水平也不是很高,对于boot的过程并不是很了解。
|
|
地下室#
发布于:2004-11-29 21:13
很显然是你的init不对,现在你的文件系统是被挂载上去了,因为z在kernel的source 里面的init/main.c 里面的init函数调用了/sbin/init 或者是/etc/init ,详细你可以看一下init/main.c ,另外你要挂载ramdisk ,/dev/下只需要ram ,ram0什么的就可以了。
|
|
5楼#
发布于:2005-07-05 19:31
好像也不一定是这个错误,前一段时间我也出现这样的error了,我也遵循这种方法去修改了,但是好像不行。我后来重新编译了一个kernel,选择的配置选项比较少。可能是在选择配置选项的时候有些问题。
|
|
6楼#
发布于:2005-07-06 14:58
你的ROOTFILESYSTEM不全,没有INIT程序.
|
|
|
7楼#
发布于:2005-07-06 15:08
是你的rootfilesystem不全着成的.
|
|
|