mini file system

.
├── 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>\n");
    printk(KERN_WARNING "<%s>\n", 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\n",
                ramdisk_execute_command);
    }
#endif

 

2

/* the #if...#endif just for test */
#if 0
    printk(KERN_WARNING "/sbin/init \n");
    run_init_process("/sbin/init");

    printk(KERN_WARNING "/etc/init \n"); /* cannot find  /etc/init.d/rcS*/
    run_init_process("/etc/init"); /* 这里报错 */

    printk(KERN_WARNING "/bin/init \n");
    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
/ #

 

 

posted on 2013-08-06 22:40  kwingmei  阅读(310)  评论(0编辑  收藏  举报

导航