搭建QEMU+A9环境

搭建QEMU+A9环境

参考:
https://blog.csdn.net/zouyu1746430162/article/details/78150745
https://blog.csdn.net/linyt/article/details/42504975
https://www.jianshu.com/p/0ca97e5b6c08

文件解压

1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和 *.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.tar.X 解压
	$xz -d ***.tar.xz
	$tar -xvf  ***.tar

1.安装git

sudo apt-get install git

2.下载Linux内核

git clonegit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

3.安装arm的交叉编译工具链

sudo apt-get install gcc-arm-linux-gnueabi

4.编译Linux内核

生成vexpress开发板子的config文件:

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig

编译:

make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm

生成的内核镱像位于arch/arm/boot/zImage, 后续qemu启动时需要使用该镜像。

错误1:flex not found
解决:
	sudo apt-get install flex
错误2:bison not found
解决:
	sudo apt-get install bison

5.下载和安装qemu模拟器

安装依赖文件:

sudo apt-get install zlib1g-dev	
sudo apt-get install libglib2.0-0
sudo apt-get install libglib2.0-dev
apt-get install libpixman-1-dev

(用老版本的qemu 可能最后的运行时出现错误:(process:8559): GLib-WARNING…gmem.c:483: custom memory allocation vtable not support)

   wget https://download.qemu.org/qemu-3.0.0.tar.xz

解压qemu-3.0.0

cd ~/qemu-3.0.0
./configure --target-list=arm-softmmu --audio-drv-list=

编译安装:

make
sudo make install

(加权限 要不然会遇到install -d -m 0755 “/usr/local/share/qemu” 找不到目录的错误)

错误3:autoreconf: not found
解决:
	sudo apt-get install autoconf automake libtool
 	sudo apt-get install libffi-dev

6.测试qemu和内核能否运行成功

qemu-system-arm \
	-M vexpress-a9 \
	-m 512M \
	-kernel <path>/arch/arm/boot/zImage\
	-dtb <path>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \
	-nographic \
	-append "console=ttyAMA0"

linux 内核代码的路径

  • -M vexpress-a9 模拟vexpress-a9单板,你可以使用-M ?参数来获取该qemu版本支持的所有单板
  • -m 512M 单板运行物理内存512M
  • -kernel 告诉qemu单板运行内核镜像路径
  • -nographic不使用图形化界面,只使用串口
  • -append “console=ttyAMA0”?内核启动参数,这里告诉内核vexpress单板运行,串口设备是那个tty
    console=参数 以从生成的.config文件CONFIG_CONSOLE宏找到

7.安装文件系统

下载busybox

wget http://www.busybox.net/downloads/busybox-1.20.2.tar.bz2

编译安装

make defconfig

	make CROSS_COMPILE=arm-linux-gnueabi-

	make install CROSS_COMPILE=arm-linux-gnueabi-
错误4:
解决:
	在include/platform.h中包含sys/resource.h

安装完成后,会在busybox目录下生成_install目录,该目录下的程序就是单板运行所需要的命令

8.形成根目录结构

  1. 创建rootfs目录(根目录),根文件系统内的文件全部放到这里
mkdir -p rootfs/{dev,etc/init.d,lib}
  1. 拷贝busybox命令到根目录下

    sudo cp busybox-1.20.2/_install/* -r rootfs/

  2. 从工具链中拷贝运行库到lib目录下. 从工具链中拷贝运行库到lib目录下

sudo cp -P /usr/arm-linux-gnueabi/lib/* rootfs/lib/
  1. 创建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

9.制作根文件系统镜像

1.生成32M大小的镜像

dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32

2.格式化成ext3文件系统

mkfs.ext3 a9rootfs.ext3

3.将文件拷贝到镜像中

sudo mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop  	
//挂载到tmpfs文件上
sudo cp -r rootfs/*  tmpfs/
sudo umount tmpfs

10.系统启动运行

完成上述所有步骤之后,就可以启动qemu来模拟vexpress开发板了,命令参数如下:

qemu-system-arm \
			-M vexpress-a9 \
			-m 512M \
			-kernel <path>arch/arm/boot/zImage \
			-dtb<path>/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \
			-nographic \
			-append "root=/dev/mmcblk0 rw console=ttyAMA0" \
			-sd a9rootfs.ext3

-sd 后放镜像的绝对路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值