【个人笔记记录】qemu模拟器实现内核移植---第三步根文件系统移植

1、下载busybox

构建根文件系统可以选择busybox,buildroot,yocto等

这里采用busybox

https://www.busybox.net/

BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。

2、修改makefile文件,指定芯片与交叉编译器

3、修改busybox对中文字符的支持(可选项,不提供相关修改方法)

可以参考视频 https://www.bilibili.com/video/BV12E411h71h?p=44

4、使用默认配置

make defconfig 生成.config文件

5、打开图形化配置界面

make menuconfig

->settings->build static binary

静态编译:不使用其他库,编译后文件很大,有可能出现dns错误(未尝试过)

动态编译:要求根文件系统中有库,编译后文件较小

此处不使用动态编译

->settings->vi-style line editing commands选中

->linux module utilities->simplified modutils 取消勾选

->linux system utilities ->mdev 确保下面的全部选中

->settings->support unicode

->settings->support unicode->check $LC_ALL,…_

选中,使编码支持中文

6、编译busybox

make

编译完成后会会生成_install文件夹

7、创建rootfs文件夹,将_install文件夹中的所有文件拷贝到rootfs文件夹中

8、在rootfs文件夹中,新建lib文件,将工具链中的库拷贝到lib文件夹中

cp -par /usr/arm-linux-gnueabi/lib/* ./lib

具体路径,自己修改

9、创建设备文件,创建四个串口设备和控制台

/dev/rootfs$ mkdir dev /dev/rootfs$ sudo mknod dev/tty1 c 4 1 /dev/rootfs$ sudo mknod dev/tty2 c 4 2 /dev/rootfs$ sudo mknod dev/tty3 c 4 3 /dev/rootfs$ sudo mknod dev/tty4 c 4 4 /dev/rootfs$ sudo mknod -m 666 console c 5 1

10、若在qemu中模拟开发板需要制作sd根文件系统镜像

/dev$ dd if=/dev/zero of=rootfs.ext3 bs=1M count=32 /dev$ mkfs.ext3 rootfs.ext3

挂载rootfs.ext3,将rootfs的所有文件拷贝进去

/dev$ sudo mkdir tmpfs /dev$ sudo mount -t ext3 rootfs.ext3 tmpfs/ -o loop /dev$ sudo cp -r rootfs/* tmpfs/ /dev$ sudo umount tmpfs

11、启动内核

qemu-system-arm -M vexpress-a9 -m 512m -kernel /dev/linux-5.4.91/arch/arm/boot/zImage -dtb /dev/linux-5.4.91/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "console=ttyAMA0 root=/dev/mmcblk0" -sd /dev/rootfs.ext3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值