Busybox是一个UNIX系统工具集,它将很多普通的UNIX工具集成到一个很小的可执行文件中,为普通用户提供大多数常用的命令;
BusyBox常用于制作linux命令 主要指令包括
cat, chmod, chown, cp, chroot, copi, date, dd, df, dmesg, dos2unix, du, echo, env, expr, find, grep, gunzip, gzip, halt, id, ifconfig, init, insmod, etc
到 https://busybox.net/ 下载最新稳定版本的BusyBox
解压文件
tar -vxf busybox-1.31.1.tar.bz2
make -j6 menuconfig
make -j6
make install -j6 //在install之前,如果/_install目录下有rootfs目录,先删除。
安装成功后,生成以下目录。
linux@ubuntu:~/Level10/day8/busybox-1.31.1/_install$ ls
bin linuxrc sbin usr
linux@ubuntu:~/Level10/day8/busybox-1.31.1/_install$ sudo cp -a /home/linux/gcc-4.6.4/arm-arm1176jzfssf-linux-gnueabi/lib/ . linux@ubuntu:~/Level10/day8/busybox-1.31.1/_install$ du -h lib 284K lib/ldscripts 15M lib linux@ubuntu:~/Level10/day8/busybox-1.31.1/_install$ sudo rm lib/*.a #删除静态文件库,缩减体积 linux@ubuntu:~/Level10/day8/busybox-1.31.1/_install$ du -h lib 284K lib/ldscripts 7.0M lib arm-none-linux-gnueabi-strip lib/*.so # 如有必要还可以用此命令 裁剪共享库文件,减小体积
linux@ubuntu:~/Level10/day8/busybox-1.31.1/_install$ mkdir dev etc home mnt proc root sys tmp var linux@ubuntu:~/Level10/day8/busybox-1.31.1/_install$ mkdir etc/init.d
::sysinit:/etc/init.d/rcS #指定系统开始运行后,最开始运行的脚本,可修改但不建议
::askfirst:-/bin/login
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
ps:
/etc 目录下都是配置文件。这里配置的inittab 是linuxrc执行后最先执行的配置脚本文件之一
#!/bin/sh mount -a #挂载一切可以挂载的根文件系统 mkdir /dev/pts #挂载pts文件,可以让开发板启动后可以看到提示符[root@fs4412 ]# mount -t devpts devpts /dev/pts echo /sbin/mdev > /proc/sys/kernel/hotplug #支持热插拔 mdev -s #此处可添加一些个性化的内容 如insmod led.ko ./a.out 驱动的加载命令或程序的执行命令等等 hostname -F /etc/hostname
接下来添加该文件的可执行权限。
$ chmod +x etc/init.d/rcS
proc /proc proc defaults 0 0 none /tmp tmpfs defaults 0 0 none /dev tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0
root:x:0:root
root:x:0:0:root:/root:/bin/sh
root:BcPgSBqZz80dw:0:0:99999:7:::
fs4412
LD_LIBRARY_PATH=/lib:/usr/lib export LD_LIBRARY_PAHT PATH=/bin:/sbin:/usr/bin:/usr:/sbin # 配置环境变量 export PATH export PS1=\\e[32m[\\u@\\h \\W\\a]\\$\\e[00;37m # PS1后面的是终端显示的内容 如[root@fs4412 ] 可修改
linux@ubuntu:~/Level10/day8/busybox-1.31.1/_install$ sudo mknod dev/console c 5 1 // 必须要有 console设备节点
chmod 777 /挂载的文件地址/rootfs