使用qemu 建立mini2440的模拟仿真环境
来源:互联网 发布:电脑顽固软件卸载 编辑:程序博客网 时间:2024/06/08 00:44
/****************************************************************************/ * * (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 */ ****************************************************************************/
1. 首先下载qemu for mini2440
git clone git://repo.or.cz/qemu/mini2440.git qemu
如果感觉速度慢,直接打包下载
http://repo.or.cz/w/qemu/mini2440.git/snapshot/HEAD.tar.gz
解压后,今日源代码的主目录中,
12# ./configure --target-list=arm-softmmu
# make -j4
2. 下载u-boot for mini2440
git clone git://repo.or.cz/w/u-boot-openmoko/mini2440.git uboot
或者打包下载
http://repo.or.cz/w/u-boot-openmoko/mini2440.git/snapshot/HEAD.tar.gz
(注意 采用打包下载的时候这几个包的文件名可能相同,注意区分)解压后,配置Makefile文件,打开Makefile文件,CROSS_COMPILE变量赋值,即自己所使用的交叉编译工具链,比如我的是arm-none-linux-gnueabi-,保存退出,输入
12# make mini2440_config
# make -j4
稍等两分钟,即在当前目录下生成名为 u-boot.bin 的文件,注意如果想在之后使用u-boot 的nfs下载文件功能,需要修改代码中的一部分,将net/nfs.c文件中的
NFS_TIMEOUT = 2UL 修改为 NFS_TIMEOUT = 20000UL 否则会造成nfs文件下载失败,如果不使用nfs下载功能,不改也可。
3. 下载 linux kernel for mini2440
(下载步骤略去)
进入源码目录
12# make mini2440_defconfig ARCH=arm
#make -j4 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
之后会在arch/arm/boot/目录下生成uImage 文件,将此文件复制到qemu目录下的mini2440文件夹下,并将mini2440文件夹中的mini2440_start.sh作如下修改
将 kernel 一行改为-kernel "$base/uImage" \,回到上层目录后运行
1# sh mini2440/mini2440_start.sh
这时应该看到qemu启动后进入了u-boot界面下,输入命令
1# bootm
就会看到linux内核启动的画面,但此时还没有根文件系统,我们稍候介绍采用nfs挂在根文件系统
4. 假设你用的操作系统为ubuntu,首先安装 nfs服务器
1# sudo apt-get install nfs-kernel-server
之后修改/etc/exports文件,添加如下一行
/home/username/nfs *(rw,sync,no_root_squash)
....................注意 /home/username/nfs 为你所要共享的目录
输入命令
1# sudo /etc/init.d/nfs-kernel-server restart
启动 nfs服务
测试 nfs服务是否成功启动
12# sudo mkdir /mnt/nfs
# sudo mount -t nfs localhost:/home/username/nfs /mnt/nfs
查看/mnt/nfs文件是否于/home/username/nfs 中相同,若一样 ,OK
5. 将mini2440目录下的mini2440_start.sh修改为
1234567#!/bin/sh
sudo ../arm-softmmu/qemu-system-arm \
-M mini2440 \
-kernel mini2440/uImage -serial stdio \
-net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=./qemu-ifup,downscript=./qemu-ifdown \
-show-cursor \
-usb -usbdevice keyboard -usbdevice mouse\
在建立两个脚本,分别为qemu-ifup, qemu-ifdown
qemu-ifup 脚本
123#!/bin/sh
echo
"Excuting qemu-ifup"
ifconfig $1 10.0.0.1
qemu-ifdown脚本
123#!/bin/sh
echo
"Close tap!"
sudo ifconfig $1 10.0.0.1 down
6. 当这些都配置好后,我们即可使用nfs根文件系统了
这里我们的根文件系统为 /home/username/nfs
在qemu的目录中输入
1# ./mini2440/mini2440_start.sh
u-boot启动成功后输入设置linux kernel的引导参数
set bootargs noinitrd root=/dev/nfs rw nfsroot=10.0.0.1:/home/lizhao/ARM-pro/nfs/rootfs ip=10.0.0.10:10.0.0.1::255.255.255.0 console=ttySAC0,115200
再输入命令
bootm
OK ! kernel就开始加载了,文件系统挂在成功后,就可以进行各种仿真工作了,下面是我挂载的由友善之臂提供的mini2440的qtopia文件系统的截图:
友善之臂提供的qtopia文件系统在挂载时会初始化网卡,但我们是由nfs挂载的文件系统,这会导致nfs连接中断,挂载失败,所以用nfs挂载之前需要把网卡的初始化过程取消,对应的文件是/etc/init.d/if-config,只需把该文件内容清空即可。Enjoy yourself!
目前,我打算让GPE环境在这仿真环境中跑起来,目前还没有成功,正在尝试中。
- 使用qemu 建立mini2440的模拟仿真环境
- 使用qemu 建立mini2440的模拟仿真环境
- 使用qemu 建立mini2440的模拟仿真环境
- QEMU模拟Mini2440开发板运行环境
- QEMU模拟Mini2440开发板运行环境
- QEMU模拟Mini2440开发板运行环境
- QEMU模拟FriendlyArm的Mini2440开发板
- 用qemu-mini2440仿真rtems时的小问题
- Openwrt使用Qemu仿真
- QEMU/mini2440上运行RT-Thread -- 环境的搭建
- 关于RTEMS MINI2440的QEMU仿真从UBOOT加载问题的研究
- 建立mini2440的Qt4.5.1工作环境
- mini2440 ubuntu 11.10开发环境的建立
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- 使用 QEMU 进行系统仿真
- 使用 QEMU 进行系统仿真
- 他
- CF100801 hash
- 51nod 算法马拉松29 C题 美丽的集合
- 1.5OpenCV读取摄像头
- 【bzoj2302】【HAOI2011】problem c
- 使用qemu 建立mini2440的模拟仿真环境
- 第五周LeetCode
- Django实战系列(一)
- 文件自删除方法(ByCmd)
- 事件模块相关
- 步进电机
- setup_processor
- c python shell获得主机名和ip
- 清北学堂-D6-T3-relations