Linux之搭建arm的qemu模拟器(六)

Linux之搭建arm的qemu模拟器 

OS:kali
1.安装交叉编译工具、GDB 和 QEMU
# sudo apt-get install qemu debootstrap qemu-user-static
# sudo apt-get install qemu-system-arm
# sudo apt-get install gdb-multiarch //支持多架构cpu的gdb
# sudo apt-get install gcc-arm-linux-gnueabi //安装arm-linux-gcc交叉编译器
# sudo apt-get install g++-arm-linux-gnueabi //安装arm-linux-g++交叉编译器

2.下载、解压linux5.0内核
<0>.下载:https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.7.tar.xz
# xz -d linux5.0.tar.xz
# tar -xvf linux5.0.tar

<1>.编译
最顶层的Makefile文件里面,做如下修改:
# emacs Makefile
ARCH		?= arm
CROSS_COMPILE   ?= arm-linux-gnueabi-
Or
# make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig
# make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm

<2>.arch/arm/configs目录里的各个厂商的内核配置文件,这个文件非常重要,并做如下操作
# sudo apt-get install bison libncurses5-dev u-boot-tools bc
# make vexpress_defconfig

<3>.配置kernel内核
# make menuconfig

<4>.编译kernel
# make LOADADDR=0X60003000 uImage -j4
or
# make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig
# make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm

3.下载busybox制作根文件系统
<1>.下载编译busybox
# wget https://busybox.net/downloads/busybox-1.30.1.tar.bz2 --no-check-certificate
# tar -jxvf busybox-1.30.1.tar.bz2
# emacs Makefile
# make defconfig
# make CROSS_COMPILE=arm-linux-gnueabi-
# make CROSS_COMPILE=arm-linux-gnueabi- install

4.开始制作根文件系统
1.创建必要的目录
# mkdir rootfs
# cd rootfs
# mkdir rootfs /lib
# mkdir rootfs /dev

2.拷贝busybox编译生产的目录和文件,编译器自带的lib
# cp busybox-1.25.0/_install/* -r rootfs/
# cp -P /usr/arm-linux-gnueabi/lib/* rootfs/lib/

3.创建4个tty终端设备
# sudo mknod rootfs/dev/tty1 c 4 1
# sudo mknod rootfs/dev/tty2 c 4 2
# sudo mknod rootfs/dev/tty3 c 4 3
# sudo mknod rootfs/dev/tty4 c 4 4

4.生成512M大小的镜像,并拷文件系统树到镜像文件中
# dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=512
# mkfs.ext3 a9rootfs.ext3 //把a9rootfs.ext3格式化为ext3文件系统
# mkdir tmpfs
# mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
# cp -r rootfs/*  tmpfs/
# sudo umount tmpfs

//启动qemu arm文件系统
# qemu-system-arm -M vexpress-a9 -m 1024M -kernel ~/tools/linux-5.0.7/arch/arm/boot/zImage -dtb ~/tools/linux-5.0.7/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0  console=ttyAMA0" -sd  a9rootfs.ext3


后续可以把gdb移植上去,就可以调试学习ARM汇编指令了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android系统攻城狮

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值