//zz//####################################################################################
zz移植最新busybox-1.22说明140314
@2014-3-14 9:09:25
@2014-12-16 23:24:33
@
REF:
mini2440
用busybox制作文件系统 - 深蓝工作室 - 博客园.mht
//zz//####################################################################################
1.
busybox 配置及编译
# make menuconfig
1)
Busybox Settings
//zz// 此处不选 static , 交叉编译器选 arm-linux-
Build Options
[ ] Build BusyBox as a static binary (no shared libs) | |
[ ] Build BusyBox as a position independent executable | |
[ ] Force NOMMU build | |
[ ] Build shared libbusybox | |
[*] Build with Large File Support (for accessing files > 2 GB) | |
(arm-linux-) Cross Compiler prefix
//zz// 修改安装路径(rootfs的路径),另两项是缺省选中的(这里确认一下)
Installation Options
(/home/rootfs-b1.22-zz140313) BusyBox installation prefix
Busybox Library Tuning
[*] Fancy shell prompts
[*] vi-style line editing commands
//zz// 确认选中
Linux System Utilities
[*] mdev
[*] mount
[*] umount
2)
root账户登录,无需密码验证
搜索一下
/ 然后 shadow 定位是在如下位置
//zz// 确认选中
Login/Password Management Utilities
[*] Support for shadow passwords | |
[*] Use internal password and group functions rather than system functions | |
[*] Use internal shadow password function
//zz//####################################################################################
2.
rootfs 文件系统框架设计
1)
# cd /home/rootfs-b1.22-zz140313
# mkdir bin sbin usr etc dev lib
# mkdir proc sys mnt tmp var
# mkdir opt home root
# cd usr
# mkdir bin sbin lib local
# cd ../dev
# mknod console c 5 1
# mknod null c 1 3
#####################
2)
非静态static编译 / shared build busybox 需要的库文件...
# cd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
# cp -d *.so* /home/rootfs-b1.22-zz140313/lib
或者
# cp -a *.so* /home/rootfs-b1.22-zz140313/lib
###########
以下 usr/lib 可以不copy到 rootfs 的 usr/lib下的,文件系统也能运行
# cd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib
# cp -d *.so* /home/rootfs-b1.22-zz140313/usr/lib/
#####################
3)
非必须的
rootfs下面的内核编译时的模块,make module_install 加进来的
/lib 目录下会放内核编译时候的 install 的东西
//zz//####################################################################################
3.
etc 目录下的配置文件
1)
/etc/fstab
# wds # 主要就是这两个
# device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
# zz #
# proc /proc proc defaults 0 0
# tmpfs /tmp tmpfs defaults 0 0
# sysfs /sys sysfs defaults 0 0
# tmpfs /dev tmpfs defaults 0 0
# var /dev tmpfs defaults 0 0
2)
/etc/inittab
::sysinit:/etc/init.d/rcS
## wds-modify ## ttySAC0::askfirst:-/bin/sh
console::askfirst:-/bin/sh
## wds-red ## ::once:/usr/sbin/telnetd -l /bin/login
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
3)
/etc/profile 暂时没什么写的,可以添加/配置环境变量 PATH
echo "Hello zz profile Done"
4)
/etc/init.d/rcS
#!/bin/sh
ifconfig eth0 192.168.1.9
#zz# mount all fs defined in /etc/fstab
mount -a
## zz ## 设备自动加载, mdev -s 出错
## 因为没有 /lib 下放入内核的modules??
## 还是因为 sys 文件没有挂载??
# PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local
#echo /sbin/mdev > /proc/sys/kernel/hotplug
#mdev -s
//zz//####################################################################################
4.
内核模块编译安装(非必须)
# make modules
# make modules_install INSTALL_MOD_PATH=/home/rootfs-b1.22-zz140313
其实就是拷贝到 rootfs~/lib/modules/2.6.32.2/