您当前的位置: 首页 > 

MangataTS

暂无认证

  • 3浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

busybox制作根文件系统

MangataTS 发布时间:2022-04-09 23:00:58 ,浏览量:3

一、分配空间
  • 制作64M的镜像文件,命名为myrootfs.ext3
sudo dd if=/dev/zero of=myrootfs.ext3 bs=1M count=64

在这里插入图片描述

  • 用ext3格式化上一步的镜像文件
sudo mkfs.ext3 myrootfs.ext3

在这里插入图片描述

二、填充空间 2.1 挂载镜像文件到一个目录

建议放在同级目录下,假设目录名为my_mnt

sudo mount -t ext3 -o loop myrootfs.ext3 my_mnt/

在这里插入图片描述

2.2 根据FHS标准,建立根文件系统目录
mkdir bin dev etc home lib proc sbin sys tmp usr var root mnt
mkdir usr/bin usr/lib usr/sbin

在这里插入图片描述

2.3 填充内容之可执行文件和动态库

①激活编译脚本: source /home/mangata/gcc-arm-11/start.sh

在这里插入图片描述make defconfig : 在这里插入图片描述make -j4:

在这里插入图片描述make install:

在这里插入图片描述 ⑥拷贝内容到根文件系统里:

cp -a _install/* ../my_mnt/

⑦拷贝动态库到根文件系统里: 这里需要找到自己的交叉编译器的位置,我这里的位置是/home/mangata/gcc-arm-11/arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/lib

cp -a * /home/mangata/lib/lib3/my_mnt/lib/
2.4填充内容之配置文件

①编写inittab文件 vim etc/inittab 然后在inittab文件中写入

::sysinit:/etc/rc.d/rcS
::askfirst:-/bin/sh

②编写 etc/rc.d/rcS

#!/bin/sh
/bin/mount -a
# echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /lib/modules/`uname -r`

③编写etc/fstab文件,为上一步的mount -a提供脚本支持

proc    /proc   proc    defaults        0       0
tmpfs   /tmp    tmpfs   defaults        0       0
sysfs   /sys    sysfs   defaults        0       0
tmpfs   /dev    tmpfs   defaults        0       0
三、卸载空间

返回上级目录,运行sudo umount命令

四、脚本验证
sudo qemu-system-arm -nographic -M vexpress-a9 -m 512M -kernel build/zImage -dtb build/vexpress-v2p-ca9.dtb -append "root=/dev/mmcblk0 rw console=ttyAMA0" -sd myrootfs.ext3

在这里插入图片描述

关注
打赏
1665836431
查看更多评论
立即登录/注册

微信扫码登录

0.0368s