.
├── bin
│ ├── busybox
│ └── sh -> busybox
├── dev
│ └── console
└── lib
├── ld-2.11.so
├── ld-linux.so.3 -> ld-2.11.so
├── libc-2.11.so
├── libcrypt-2.11.so
├── libcrypt.so.1 -> libcrypt-2.11.so
├── libc.so.6 -> libc-2.11.so
├── libm-2.11.so
└── libm.so.6 -> libm-2.11.so
busybox 是交叉编译的一个file文件
sh 连接到busybox
console 是 mknod -m 644 c 5 1
lib 下是4个busybox依赖的库文件及其4个软连接文件
其中在内核启动代码中修改了2处: .../init/main.c 中
1
printk(KERN_WARNING "<1>
");
printk(KERN_WARNING "<%s>
", ramdisk_execute_command ); /* /init */
/* the #if...#endif just for test */
#if 0
if (ramdisk_execute_command) { /* cannot not find /sbin/init */
/* 这里的 ramdisk_execute_command 不为null, 执行到这里的时候报错 */
run_init_process(ramdisk_execute_command);
printk(KERN_WARNING "Failed to execute %s
",
ramdisk_execute_command);
}
#endif
2
/* the #if...#endif just for test */
#if 0
printk(KERN_WARNING "/sbin/init
");
run_init_process("/sbin/init");
printk(KERN_WARNING "/etc/init
"); /* cannot find /etc/init.d/rcS*/
run_init_process("/etc/init"); /* 这里报错 */
printk(KERN_WARNING "/bin/init
");
run_init_process("/bin/init");
#endif
最简单的方法就是注释
我想应该有内核参数可以在u-boot 中配置, 我出入嵌入式编程, 望大神指教
运行结果:
IP-Config: Complete:
device=eth0, addr=192.168.2.230, mask=255.255.255.0, gw=192.168.2.1,
host=linux, domain=, nis-domain=arm9.net,
bootserver=192.168.2.1, rootserver=192.168.2.1, rootpath=
Freeing init memory: 1408K
one_wire_status: 5
/bin/sh: can't access tty; job control turned off
/ #