制作根文件系统的过程,实际上就是构造一些目录及系统启动所必需文件的过程
1、首先,我们要从网上下载所有常用命令的源码
采用交叉编译器,重新编译好命令下载到开发板/bin /sbin等目录下。
下载构建目录的工具 busybox 网址:http://www.busybox.net
下载好工具后拿到ubuntu中解压,得到源码
2、进行目录构建
第一步:创建目录结构
创建根文件系统目录,主要包括以下目录
执行:mkdir $HOME/rootfs
cd $HOME/rootfs
mkdir dev etc lib usr var proc tmp home root mnt bin sbin opt sys media
第二步:使用busybox构建/bin /sbin linuxrc:
1、解压busybox
2、进入busybox目录。
3、执行 make defconfig
4、执行make menuconfig,执行此命令前注意将虚拟机窗口最大化,以免不显示或显示不完全,接下里就是进入到图形配置界面。
选中Busybox Setting回车
再选中Build Options 回车
选中Bulid Busybox as static binary (no shared libs)按空格
,使其前面有个星号(此步是将Busybox进行静态编译,炸药那个编译出来的busybox可以不依赖动态库)
选中Cross Compiler prefix 回车
指定交叉编译工具(否则默认为x86架构):输入arm-none-linux-gunebai-
选中ok回车
结果如下:
选中Exit回车
进行如下操作:将以下三个选项选中
结果如下:
第三步:创建lib目录(此步中拷贝的库文件为交叉编译工具目录下的库,具体的目录路径以自己的为准)
为找到库的情况下,或者文件目录过多不易查找,可以使用查找命令:find -name “xxx.so”(以xxx.so为例)
进入交叉编译工具目录下 找到动态库 然后拷贝到rootfs/lib目录下
第四步:构建etc目录
sudo vi init.d/rcS
上图代码如下:
#/etc/init.d/rcS
#! /bin/sh
/bin/mount -a
/bin/mkdir -P /dev/pts
/bin/mkdir -P /dev/shm
/bin/mount -t devpts devpts /dev/pts
/bin/mount -t tmpfs tmpfs /dev/shm
/bin/mkdir /var/tmp
/bin/mkdir /var/modules
/bin/mkdir /var/run
/bin/mkdir /var/log
if ! [ -d /lib/modules ] ; then
mkdir /lib/modules
fi
if ! [ -d /lib/modules/`uname -r` ] ; then
mkdir /lib/modules/`uname -r`
fi
/sbin/mdev -s
保存退出
结果如下:
上图代码如下:
#/etc/fstab
proc /proc proc defaults 0 0
ramfs /var ramfs defaults 0 0
ramfs /tmp ramfs defaults 0 0
none /sys sysfs defaults 0 0
none /dev ramfs defaults 0 0
上图代码如下:
#/etc/profile
# /etc/profile: system-wide .profile file for the Bourne shells
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib
/bin/hostname QF_EDU
USER="`id -un`"
LOGNAME=$USER
HOSTNAME='/lib/hostname'
PS1='[\u@\h\w]#'
以上三个文件操作如下:
#/etc/passwd 用户信息配置文件
#/etc/group 组信息配置文件
#/etc/shadow 用户密码配置文件
#以上三个配置文件直接从ubuntu操作系统的/etc下拷贝过来,然后只留下root用户,root组
#相关信息
#/etc/passwd
root:x:0:0:root:/root:/bin/sh
#/etc/group
root:x:0:
#/etc/shadow
root:$1$IVocMXlM$0qoJ3cXCzT8bi2n3guylX0:18093:0:99999:7:::
#密码是1 , 1加密后的密文:$1$IVocMXlM$0qoJ3cXCzT8bi2n3guylX0
修改挂载目录
sudo vi /etc/exports
将最后一行中挂载目录修改为自己的rootfs所在目录
使用nfs挂载,虚重启
sudo /etc/init.d/nfs-kernel-server restart
第五步:其他目录
以上是制作根文件系统,接下来将根文件系统挂载到开发板上:
https://blog.csdn.net/lornman_q/article/details/104955081