[ZLG-ARM] 从无到有用busybox做最小文件系统

[复制链接]
2150|2
 楼主| lpczcy 发表于 2009-6-4 13:41 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;这里以ixp435平台为例子。&nbsp;<br />Get&nbsp;source&nbsp;code:&nbsp;busybox-1.7.2-1&nbsp;(当然其他的版本的都可以)<br />Tool&nbsp;chain:armv5-linux-*&nbsp;(和编linux&nbsp;kernel的相同)<br />make&nbsp;menuconfig&nbsp;,配置功能,可以从其他地方拿一个过来改改。注意打开'Busybox&nbsp;Settings'-&gt'Installation&nbsp;Options'-&gt'&nbsp;Don't&nbsp;use&nbsp;/usr'&nbsp;这样在安装的时候会安装到自己指定的目录(default&nbsp;./_install),或者可以在make时加参数CONFIG_PREFIX=目录<br />make&nbsp;ARCH=arm&nbsp;CROSS_COMPILE=armv5b-linux-&nbsp;install<br />复制必要的库文件:&nbsp;如果没有,会出现这样的错误<br />Failed&nbsp;to&nbsp;execute&nbsp;/sbin/init.&nbsp;&nbsp;Attempting&nbsp;defaults...<br />Kernel&nbsp;panic&nbsp;-&nbsp;not&nbsp;syncing:&nbsp;No&nbsp;init&nbsp;found.&nbsp;&nbsp;Try&nbsp;passing&nbsp;init=&nbsp;option&nbsp;to&nbsp;kernel.<br />库文件要到这里使用的编译器相对应的目录中找。这里一般需要两类库文件:一类是busybox编译完后提示出来的lib:比如Trying&nbsp;libraries:&nbsp;crypt&nbsp;m<br />Library&nbsp;crypt&nbsp;is&nbsp;needed<br />Library&nbsp;m&nbsp;is&nbsp;needed<br />Final&nbsp;link&nbsp;with:&nbsp;crypt&nbsp;m<br />这里意思是需要libcrypt和libm的库。还有一类是最基本的libc库和ld库。<br />做ramdisk,可以参考我前面的**。<br />到这里,一个最简单的fs已经工作了,已经可以看到这样一个东西了<br />RAMDISK:&nbsp;Compressed&nbsp;image&nbsp;found&nbsp;at&nbsp;block&nbsp;0<br />Time:&nbsp;OSTS&nbsp;clocksource&nbsp;has&nbsp;been&nbsp;installed.<br />VFS:&nbsp;Mounted&nbsp;root&nbsp;(ext2&nbsp;filesystem).<br />Freeing&nbsp;init&nbsp;memory:&nbsp;140K<br />init&nbsp;started:&nbsp;BusyBox&nbsp;v1.7.2&nbsp;(2008-01-30&nbsp;14:38:42&nbsp;CST)<br />starting&nbsp;pid&nbsp;18,&nbsp;tty&nbsp;'':&nbsp;'/etc/init.d/rcS'<br />Cannot&nbsp;run&nbsp;'/etc/init.d/rcS':&nbsp;No&nbsp;such&nbsp;file&nbsp;or&nbsp;directory<br /><br />Please&nbsp;press&nbsp;Enter&nbsp;to&nbsp;activate&nbsp;this&nbsp;console.&nbsp;<br />starting&nbsp;pid&nbsp;19,&nbsp;tty&nbsp;'':&nbsp;'/bin/sh'<br /><br /><br />BusyBox&nbsp;v1.7.2&nbsp;(2008-01-30&nbsp;14:38:42&nbsp;CST)&nbsp;built-in&nbsp;shell&nbsp;(ash)<br />Enter&nbsp;'help'&nbsp;for&nbsp;a&nbsp;list&nbsp;of&nbsp;built-in&nbsp;commands.<br /><br />#&nbsp;ls<br />bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linuxrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lost+found&nbsp;&nbsp;sbin<br /><br />复制/etc/文件,直接使用busybox&nbsp;source中带的sample,&nbsp;<br />cp&nbsp;examples/bootfloppy/etc/*&nbsp;_install/&nbsp;-ar<br />再创建一个/proc目录,&nbsp;现在是这个样子&nbsp;<br />Freeing&nbsp;init&nbsp;memory:&nbsp;140K<br />init&nbsp;started:&nbsp;BusyBox&nbsp;v1.7.2&nbsp;(2008-01-30&nbsp;14:38:42&nbsp;CST)<br />starting&nbsp;pid&nbsp;18,&nbsp;tty&nbsp;'':&nbsp;'/etc/init.d/rcS'<br />starting&nbsp;pid&nbsp;20,&nbsp;tty&nbsp;'':&nbsp;'/bin/sh'<br /><br /><br />BusyBox&nbsp;v1.7.2&nbsp;(2008-01-30&nbsp;14:38:42&nbsp;CST)&nbsp;built-in&nbsp;shell&nbsp;(ash)<br />Enter&nbsp;'help'&nbsp;for&nbsp;a&nbsp;list&nbsp;of&nbsp;built-in&nbsp;commands.<br /><br /><br />Processing&nbsp;/etc/profile...&nbsp;Done<br /><br />#&nbsp;ls<br />bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;etc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linuxrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proc<br />dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lost+found&nbsp;&nbsp;sbin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;到这里为止,一个基本的文件系统就可以了。接下来就是往里加入自己需要的东西就可以了。<br /><br />
miclinux 发表于 2009-6-4 14:05 | 显示全部楼层

  
billen 发表于 2009-6-4 15:52 | 显示全部楼层

会 了就好了

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

77

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部