标签:rect flex 零基础 目标 apt post 开发 config pil
由于最近的一个项目,需要用到qemu模拟arm系统跑程序,所以做了一次搭建,在网上找到了两篇文章,写得都很详细,其中一篇文章是对另外一篇文章进行的修改和添加,但是基于自己系统去做,还是发现了最新修改的文章过程中的一些错漏,加之想记录下此次自己的搭建,所以写下这篇博客。
参考博客文章(1):https://blog.csdn.net/linyt/article/details/42504975
参考博客文章(2):https://blog.csdn.net/sxw1002/article/details/52841671
本次PC系统:Ubuntu16.04
目标系统:以Versatile Express-A9开发板为例搭建环境
1.Qemu源码下载:wget http://wiki.qemu-project.org/download/qemu-2.7.0.tar.bz2
2.安装所需要的软件包(参考两文章):
sudo apt-get install zlib1g-dev
sudo apt-get install libglib2.0-0
sudo apt-get install libglib2.0-dev
sudo apt-get install autoconf
sudo apt-get install flex bison
sudo apt-get install libtool
3.解压Qemu安装包
sudo tar -jxvf qemu-2.7.0.tar.bz2
4.进入Qemu包
cd qemu-2.7.0
5.编译安装
./configure --target-list=arm-softmmu --audio-drv-list=
make
make install
1.安装交叉编译工具
sudo apt-get install gcc-arm-linux-gnueabi
2.内核下载
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.8.tar.xz
解压: tar -xvf linux-4.8.tar.xz
若有朋友有兴趣想要编译3.16版本的内核,可以降低交叉编译器的版本,使用4.7版本的交叉编译器,由于降低版本的话后面的环境变量的设置都要改动,有点麻烦,所以这里我就不展示出来。
3.配置编译
export CROSS_COMPILE=arm-linux-gnueabi-
export ARCH=arm
make vexpress_defconfig
make -j2
完全之后便在arch/arm/boot/目录中生成了zImage:
wget http://www.busybox.net/downloads/busybox-1.25.0.tar.bz2 --no-check-certificate
解压:tar -jxvf busybox-1.20.2.tar.bz2
make defconfig
make CROSS_COMPILE=arm-linux-gnueabi-
make CROSS_COMPILE=arm-linux-gnueabi- install
1.创建必要的目录
mkdir rootfs
cd rootfs
mkdir rootfs /lib
mkdir rootfs /dev
2.拷贝busybox编译生产的目录和文件,编译器自带的lib
sudo cp busybox-1.25.0/_install/* -r rootfs/
sudo 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.生成32M大小的镜像,并拷文件系统树到镜像文件中
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32
mkfs.ext3 a9rootfs.ext3
mkdir tmpfs
mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
cp -r rootfs/* tmpfs/
sudo umount tmpfs
在终端输入指令:qemu-system-arm -M vexpress-a9 -m 512M -kernel /home/chris/Desktop/linux-4.8/arch/arm/boot/zImage -dtb /home/chris/Desktop/linux-4.8/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 console=ttyAMA0" -sd a9rootfs.ext3
因为我是安装在桌面所以是那样的目标路径,若安装在不同地方就改一改就行了。(此图取自参考文章)
本着经过记录自身搭建过程,并以此为经验供有需要的朋友参考学习,绝无其他意思,原文很多步骤与参考文章相同,但绝无抄袭之意,在此再次感谢上方链接的两位作者。希望此文章对学习嵌入式的朋友有帮助。
标签:rect flex 零基础 目标 apt post 开发 config pil
原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11006977.html