busybox版本:1.20
大家发现什么问题一定要告诉我,大家一起学习
########### 制作根文件系统 #############
1.busybox目录一个工具集 ---编译生成--->busybox文件(ls、chmod、...)注:busybox包括的都是外部命令,没有内部命令(cd、...)
2.找到busybox的压缩包
tar -xvf busybox-1.20.1.tar.bz2 //我用的版本1.20
cd busybox-1.20.1
vim Makefile
<-> 164 CROSS_COMPILE ?= arm-linux-
//修改成相应平台的编译器
make defconfig
//先使用默认配置编译一下
make menuconfig
//进入配置页面
Linux Module Utilities --->
[*] modinfo //查看模块信息
[ ] Simplified modutils//这个默认是选上的,去掉会出来下面的选项;模块相关的
[*] insmod //插入模块
[*] rmmod //删除模块
[*] lsmod //查看存在的模块
[ ] Pretty output (NEW)
[*] modprobe //插入模块
[ ] Blacklist support (NEW)
[*] depmod
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
//选上后,busybox的库是静态链接的,以后使用不会依赖于其它的库
===========================================================================
= modinfo:查看模块信息
= insmod:插入模块时,若模块有依赖模块,需先插入被依赖的库,再插入所需的模块
= rmmod:删除模块时,若模块有依赖模块,被依赖模块必须保证是先删除的
= lsmod:查看模块
= modprobe:优点:会自动解决依赖关系;缺点:必须事先 make install,才能自动解决依赖
= modprobe xxx.ko <插入模块> | modprobe -r xxx.ko <删除模块>
===========================================================================
make -j4 //4代表是CPU是几线程
make install //装载到默认目录下
cd _install //默认的生成目录
mv /nfsroot /nfsroot_bac //将以前的文件系统备份一下
mkdir /nfsroot //创建新的根
chmod 777 /nfsroot //修改根的权限
cp * /nfsroot -rf //将busybox 生成的都拷贝到根下
cd /nfsroot
mkdir proc root mnt var opt dev tmp sys //创建文件系统所需的全部目录
cp <path>/busybox-1.20.1/examples/bootfloppy/etc/ . -rf //拷贝etc 目录
cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/ . -rf //拷贝交叉编译器的lib 目录
cd dev
mknod console c 5 1 //创建设备接点,console:设备名,c:字符设备,5:主设备号,1:次设备号
cd ..
cd etc
vim fstab //挂在各种文件系统
//proc:文件系统类型;/proc:挂载到哪个目录;0 0:默认配置,属性按默认
//ps命令就是从proc 目录中读信息,很多命令都依赖于proc
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
==上面三句等价于下面三句=====================
= mount -t proc none /proc
= mount -t sysfs none /sys
= mount -t tmpfs none /tmp
=========================================
vim profile
#my profile
echo "Rootfs by Musesea"
date //显示日期
PS1="[musesea@MS \W]# " //命令提示符
HOME=/root //家目录
mdev -s & //自动检测,创建全部的设备接点;&:后台执行
cd ..