Ubuntu 16.04 利用qemu模拟ARM开发板
2017-10-02 12:59
246 查看
/****************************************************************************/
*
* (c) 光明工作室 2017-2037 COPYRIGHT
*
* 光明工作室团队成员大部分来自全国著名985、211工程院校。具有丰富的工程实践经验,
*本工作室热忱欢迎大家的光临。工作室长期承接嵌入式开发、PCB设计、算法仿真等软硬件设计。
*
*
*1)基于C8051、AVR、MSP430单片机开发。
*2)基于STM32F103、STM32F407等ARM处理器开发。(IIC、SPI、485、WIFI等相关设计)
*3)基于C6678、DM388等DSP处理器开发。(视频、网络、通信协议相关设计)
*4)基于QT、C#软件开发。
*5)基于OPENCV、OPENGL图像处理算法开发。(基于LINUX、WINDOWS、MATLAB等)
*6)无人机飞控、地面站程序开发。(大疆、PIX、 qgroundcontrol、missionplanner、MAVLINK)
*7) ROS机器人操作系统下相关开发。
*8)LINUX、UCOSII、VXWORKS操作系统开发。
*
*
* 联系方式:
* QQ:2468851091 call:18163325140
* Email:2468851091@qq.com
*
/ ****************************************************************************/
QEMU目前可以模拟vexpress Cortex A9四核处理器开发板。
环境配置:Ubuntu 16.04,Kernel 4.4.1
内容参考了:
http://blog.csdn.net/linyt/article/details/42504975 http://www.cnblogs.com/pengdonglin137/p/5023342.html
(推荐)https://learningfromyoublog.wordpress.com/2016/04/05/131/
从kernel下载:
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.1.tar.xz 使用代理: https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.4.1.tar.xz
sudo apt-get install gcc-arm-linux-gnueabi
[plain] view
plain copy
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
make zImage -j8
make modules -j8
make dtbs
随后就可以将生成的zImage和dtbs拷贝到单独的文件夹中,拷贝指令:
[plain] view
plain copy
mkdir extra_folder
cp arch/arm/boot/zImage extra_folder/
cp arch/arm/boot/dts/*ca9.dtb extra_folder/
cp .config extra_folder/
基本的运行命令需要使用Busybox,这个库也需要进行交叉编译,因此可以运行下面的指令进行源代码下载。
[html] view
plain copy
wget http://www.busybox.net/downloads/busybox-1.25.1.tar.bz2
解压源代码,在源代码目录下运行:
[plain] view
plain copy
make defconfig
make CROSS_COMPILE=arm-linux-gnueabi-
make install CROSS_COMPILE=arm-linux-gnueabi-
安装完成后,该目录下生成的_install,即是基本的运行指令。
然后就开始一步步建立根文件系统。
5.1 创建rootfs目录:
[plain] view
plain copy
sudo mkdir rootfs
[plain] view
plain copy
sudo mkdir rootfs/lib
5.2 拷贝busybox命令
[plain] view
plain copy
sudo cp _install/* -r rootfs/
5.3从工具链中拷贝运行库到lib下
[plain] view
plain copy
sudo cp -P /usr/arm-linux-gnueabi/lib/* rootfs/lib/
5.4 创建4个tty终端设备
c代表字符设备,4是主设备号,1~2~3~4是次设备号
[plain] view
plain copy
sudo mkdir -p rootfs/dev
[plain] view
plain copy
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
*注意:实际上还可以在这个镜像中插入其他的文件夹,可以参考https://learningfromyoublog.wordpress.com/2016/04/05/131/,写的很详细。
5.5生成镜像
[plain] view
plain copy
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32
5.6 格式化生成ext3文件系统
[plain] view
plain copy
mkfs.ext3 a9rootfs.ext3
5.7将文件拷贝到镜像中
[plain] view
plain copy
sudo mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
sudo cp -r rootfs/* tmpfs/
sudo umount tmpfs
使用下面的指令启动,会在当前窗口中显示qemu虚拟出的终端。
[plain] view
plain copy
qemu-system-arm -M vexpress-a9 -m 512M -dtb extra_folder/vexpress-v2p-ca9.dtb -kernel extra_folder/zImage -nographic -append "root=/dev/mmcblk0 rw console=ttyAMA0" -sd a9rootfs.ext3
使用下面的指令启动,会另开一个窗口显示虚拟终端。
[plain] view
plain copy
qemu-system-arm -M vexpress-a9 -m 512M -dtb extra_folder/vexpress-v2p-ca9.dtb -kernel extra_folder/zImage -append "root=/dev/mmcblk0 rw" -sd a9rootfs.ext3
*
* (c) 光明工作室 2017-2037 COPYRIGHT
*
* 光明工作室团队成员大部分来自全国著名985、211工程院校。具有丰富的工程实践经验,
*本工作室热忱欢迎大家的光临。工作室长期承接嵌入式开发、PCB设计、算法仿真等软硬件设计。
*
*
*1)基于C8051、AVR、MSP430单片机开发。
*2)基于STM32F103、STM32F407等ARM处理器开发。(IIC、SPI、485、WIFI等相关设计)
*3)基于C6678、DM388等DSP处理器开发。(视频、网络、通信协议相关设计)
*4)基于QT、C#软件开发。
*5)基于OPENCV、OPENGL图像处理算法开发。(基于LINUX、WINDOWS、MATLAB等)
*6)无人机飞控、地面站程序开发。(大疆、PIX、 qgroundcontrol、missionplanner、MAVLINK)
*7) ROS机器人操作系统下相关开发。
*8)LINUX、UCOSII、VXWORKS操作系统开发。
*
*
* 联系方式:
* QQ:2468851091 call:18163325140
* Email:2468851091@qq.com
*
/ ****************************************************************************/
QEMU目前可以模拟vexpress Cortex A9四核处理器开发板。
环境配置:Ubuntu 16.04,Kernel 4.4.1
内容参考了:
http://blog.csdn.net/linyt/article/details/42504975 http://www.cnblogs.com/pengdonglin137/p/5023342.html
(推荐)https://learningfromyoublog.wordpress.com/2016/04/05/131/
1. 下载kernel
有两种方式:git和wget,这里使用wget下载方式。从kernel.org直接下载很慢(几KB),因此可以借用国内的代理(可以达到1~2M):从kernel下载:
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.1.tar.xz 使用代理: https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.4.1.tar.xz
2. 安装arm交叉编译链
arm交叉编译链有很多种,有的书上装了arm-linux-gnueabi 和 arm-linux-gnueabihf两种,安装方法如下:sudo apt-get install gcc-arm-linux-gnueabi
3. 编译Linux内核
解压下载的kernel文件,进入解压后的文件夹,运行下面的指令编译。[plain] view
plain copy
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
make zImage -j8
make modules -j8
make dtbs
随后就可以将生成的zImage和dtbs拷贝到单独的文件夹中,拷贝指令:
[plain] view
plain copy
mkdir extra_folder
cp arch/arm/boot/zImage extra_folder/
cp arch/arm/boot/dts/*ca9.dtb extra_folder/
cp .config extra_folder/
4.安装qemu模拟器
sudo apt-get install qemu5.制作根文件系统
根文件系统由基本的运行命令、库和字符设备构成。基本的运行命令需要使用Busybox,这个库也需要进行交叉编译,因此可以运行下面的指令进行源代码下载。
[html] view
plain copy
wget http://www.busybox.net/downloads/busybox-1.25.1.tar.bz2
解压源代码,在源代码目录下运行:
[plain] view
plain copy
make defconfig
make CROSS_COMPILE=arm-linux-gnueabi-
make install CROSS_COMPILE=arm-linux-gnueabi-
安装完成后,该目录下生成的_install,即是基本的运行指令。
然后就开始一步步建立根文件系统。
5.1 创建rootfs目录:
[plain] view
plain copy
sudo mkdir rootfs
[plain] view
plain copy
sudo mkdir rootfs/lib
5.2 拷贝busybox命令
[plain] view
plain copy
sudo cp _install/* -r rootfs/
5.3从工具链中拷贝运行库到lib下
[plain] view
plain copy
sudo cp -P /usr/arm-linux-gnueabi/lib/* rootfs/lib/
5.4 创建4个tty终端设备
c代表字符设备,4是主设备号,1~2~3~4是次设备号
[plain] view
plain copy
sudo mkdir -p rootfs/dev
[plain] view
plain copy
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
*注意:实际上还可以在这个镜像中插入其他的文件夹,可以参考https://learningfromyoublog.wordpress.com/2016/04/05/131/,写的很详细。
5.5生成镜像
[plain] view
plain copy
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32
5.6 格式化生成ext3文件系统
[plain] view
plain copy
mkfs.ext3 a9rootfs.ext3
5.7将文件拷贝到镜像中
[plain] view
plain copy
sudo mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
sudo cp -r rootfs/* tmpfs/
sudo umount tmpfs
6. 启动qemu模拟系统
使用下面的指令启动,会在当前窗口中显示qemu虚拟出的终端。[plain] view
plain copy
qemu-system-arm -M vexpress-a9 -m 512M -dtb extra_folder/vexpress-v2p-ca9.dtb -kernel extra_folder/zImage -nographic -append "root=/dev/mmcblk0 rw console=ttyAMA0" -sd a9rootfs.ext3
使用下面的指令启动,会另开一个窗口显示虚拟终端。
[plain] view
plain copy
qemu-system-arm -M vexpress-a9 -m 512M -dtb extra_folder/vexpress-v2p-ca9.dtb -kernel extra_folder/zImage -append "root=/dev/mmcblk0 rw" -sd a9rootfs.ext3
相关文章推荐
- Ubuntu 16.04 利用qemu模拟ARM开发板
- Ubuntu 16.04 利用qemu模拟ARM开发板
- Ubuntu 16.04 利用qemu模拟ARM开发板
- 利用qemu模拟嵌入式系统制作全过程
- minicom下载文件到ARM开发板(主机ubuntu16.04)
- ubuntu下使用qemu模拟ARM(六)------驱动程序
- ubuntu16.04 利用pyenv安装anaconda3+pycharm
- ubuntu 16.04 上 Redis利用持久化进行数据迁移
- 利用grub引导多系统debian8.0+win7+ubuntu16.04
- ubuntu下使用qemu模拟ARM(七)-----uboot从sd卡启动内核
- 在ubuntu16.04上使用qemu
- ubuntu下使用qemu-system-arm模拟arm环境
- ubuntu16.04利用samba共享文件夹
- Qemu 运行ARMv8开发平台 ubuntu16.04
- UBUNTU下使用QEMU模拟ARM
- 一步步教你如何在ubuntu虚拟机中安装QEMU并模拟arm 开发环境(二)rootfs制作
- ubuntu 16.04利用docker搭建java+tomcat+nginx反向代理/动静分离
- 利用qemu模拟嵌入式系统制作全过程
- ubuntu下使用qemu模拟ARM(五)-------应用程序Hello World