busybox制作根文件系统配置记录及注意点

很不爽的busybox折腾。因为自己偷懒所以付出了更多的时间来处理这种问题。
首先说下我遇到什么问题,才想到来处理这个小错误的。
我要做一个微型系统用于特殊的维护操作。要求是板子串口能够接受输入输出,VGA屏幕和USB鼠标也能作为一个组合输入输出。
即必须保证串口(serial port)有shell, VGA端有shell.

busybox 配置、编译、安装三部曲不说 网上有很多的例子,根据自己的实际情况去增减配置选项。
主要说说得到的结果以及结果的相应搭配。
_install下面有2个文件夹以及一个linuxrc软连接(实际内容暂时不可知,猜测是去调用了/sbin/init,具体看代码与文档).
但是如果这个时候去网上东找个脚本西找个脚本,结果是运行正常,添加一些较少应用到的功能时,你会发现怎么配置都配不上去。
我就在这里卡了N久,泪奔啊!
第一点血泪教训,能用官方的偷懒,就别用别人的脚本装高手。
偷懒方式:busybox/example/etc/
$cp -a ../example/etc/ ./

这样/etc的基本骨架就有了,就算要自己添加什么东西也很方便,特别是inittab rcS这些重要文件的默认位置不会出错,我就是在看别人
的教程的时候前者的位置错了,这个也不能说谁的问题,可能那个作者本身也没用到太多的功能,就算这个问题存在也没影响他的使用。
这个/etc/虽然骨架对了,但是其执行命令过于简单。我们可以手动添加自己想要的东西进去。比如我就添加了 exec /etc/rc.local到rcS。
建立passwd group等其他必要的东西,别人高手已经写好了,我就不罗嗦了。
链接地址: http://www.360doc.com/content/10/0428/11/496343_25245348.shtml
以上方法,本人在制作的过程中记录,保证可行,若有错误请指教,谢谢!

补充:

1.串口的shell有可能会出现要求登录的情况,而且奇怪的是passwd与group中的x都已经取消掉了,系统仍然会要求输入密码。

这里需要处理的就是在make menuconfig中取消掉对login mangement的选项。

2.串口输入的命令经常sh只得到一部分。比如输入ls回车。提示-/bin/sh: l command not found. why?

1).因为这里出现了多个shell监听同一个输入的情况。这时需要修改inittab

::respawn:-/bin/sh

改为  console::askfirst:-/bin/sh

2).getty的格式也需要做相应的修改。

tty0::askfirst:/sbin/getty tty0 115200 vt100

分辨率和tty的位子不要错开了


你可能感兴趣的:(c,misc,transplant)