制作rootfs的几种常见方式
使用busybox制作出来的不是一个完整的rootfs,缺少了一些系统正常运行的组件;比如启动脚本,需要的库文件.它只是包含了一些常用的命令工具,当然如果你的动手能力比较强的话,可以手动添加.需要添加的文件并不是很多.
buildroot制作的rootfs比较完整,但是buildroot所能做的事情远不止制作一个rootfs.它可以构建一个完整的系统发行版,从bootloader到kernel到rootfs到常用的工具软件.
yocto的功能更强大,但是学习起来比较难以入门.可以看做是buildroot的进阶版.
debootstrap是debian释放出来的一个工具,基于Debian的风格生成rootfs.类似于上一篇文章中使用的rootfs.使用它制作的rootfs的优点在于,你可以使用apt-get的方式来安装需要的工具,不需要再去从源码生成.
制作基于beaglebonebalck的rootfs
ubuntu18.04(LTS)
buildroot源码,地址:https://buildroot.org/download.html
生成初步的配置文件
切换到root账户,切换到buildroot目录下面
cp configs/beaglebone_defconfig .config
进一步配置buildroot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
进入到配置界面,
Target options保持默认
Build options保持默认
Toolchain配置如下图示
System configuration配置如下图
Kernel
去掉这个选项,应为我们已经编译过内核了,不需要在编译生成了
Target packages保持默认
Filesystem images配置如下图
Bootloaders去掉u-boot选项
Host utilities和Legacy config options保持默认即可
最后保存配置并退出配置界面
编译生成rootfs
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
生成的rootfs在output/images目录下
把这个rootfs拷贝到sd卡上启动即可,效果如下(这个系统默认以root用户登陆,密码是在system configuration里面设置的)
|