QEMU模拟Mini2440开发板运行环境
2015-03-15 19:37
507 查看
前言
原创文章欢迎转载,请保留出处。 若有任何疑问建议,欢迎回复。 邮箱:Maxwell_nc@163.com
手头上只有一块Smart210(Tiny210V2),无奈网上的资料多数是2440的资料,又不想再花钱买一块2440,后来发现qemu可以模拟arm,参考各种文章后成功模拟,留下博文作为笔记。
参考文章
本文主要参考http://bbs.51cto.com/thread-970787-1-1.html
http://www.cnblogs.com/jinmu190/archive/2011/03/21/1990698.html
http://blog.csdn.net/zeroboundary/article/details/12657215
这三篇文章,虽然按照他们的做的出现了不少错误,但是非常感谢他们给出了路的方向,通过自己另外摸索成功了,在此和大家分享方法,如果你遇到问题也不妨再看看参考的网站或许会有意外的收获。
开发环境
虚拟机:VMware 10.0.3简体中文绿色版(含VMware Tools)操作系统:Ubuntu 10.04 32位
不保证能在其他开发环境下正常实现本文最终结果,建议使用相同开发环境。另外本文不讨论如何搭建虚拟机Linux环境,一些库丢失问题请自行apt-get,另外我的所有终端操作均在超级用户下进行。
安装VMware Tools后鼠标捕获有问题的试试
sudo apt-get install xserver-xorg-input-vmmouse后重启虚拟机。
编译安装QEMU
首先下载qemu for mini2440,直接打包下载http://repo.or.cz/w/qemu/mini2440.git/snapshot/HEAD.tar.gz
解压后,进入源代码目录中,
./configure --target-list=arm-softmmu --prefix=$HOME/local (prefix指定安装路径,这里是/root/local) make -j4 (同时允许4个任务,据网友所说设置成2倍CPU核心数更快) make install
可能会出现的库问题解决:
sudo apt-get install zlib1g-dev sudo apt-get install libsdl-dev
安装完后,添加环境变量
vi /etc/bash.bashrc
添加一行
export PATH=$PATH:$HOME/local/bin
保存退出后,用source 生效或者注销重新登录,注意source只在当前终端有效,新开的均无效,然后使用
qemu-system-arm --version测试是否正常,正常如下图所示:
使用buildroot一键生成uboot和linux内核及根文件系统
首先下载buildroot的源代码,下载地址:http://buildroot.org/downloads/buildroot-2012.05.tar.gz
(我使用这个版本2012.05)解压后,进入源代码目录中,
make mini2440_defconfig后
make menuconfig(可能出现的库问题用
sudo apt-get install libncurses5-dev解决)
出现如下画面:
其中以下需要修改,其他自己选择:
- Kernel :内核版本改选为 3.3.7版本
- Package Selection for the target : Busybox已经包含在里面了,我们也可以选择更多的项目,比如 Qt, EFL, directfb之类的图形库。在 Graphic libraries and application子目录里选择。
- Filesystem images :在 Flash Type这项,改为 NAND flash with 512B Page and 16 KB erasesize 。
- Toolchain:我选上了GDB和GDBServer方便调试。
然后保存退出。
接下来执行
make(注意这里不要加-j4之类参数,否则后面编译会出错),网上很多文章都对此过程轻描淡写,实际上这个过程会遇到一大堆问题。另外这个过程需要联网下载各种源码。
本人主要遇到的问题:
1. 遇到automake出错,使用
apt-get install automake后重新
make解决。
2. make不能加-j4参数,否则会中途报错停止编译退出。
3. 中途编译QT会问你选择商业版还是开源版,选择O后输入yes同意条款编译开源版。
4. 库问题,会遇到一大堆,本人总结一个列表。
apt-get install g++ apt-get install g++ apt-get install bison apt-get install flex apt-get install gettext apt-get install texinfo apt-get install patch apt-get install git-core apt-get install xz-utils apt-get install automake
如果一切顺利, make 结束后,在 buildroot-2012.05目录的 output/images/ 子目录下可以找到生成的四个文件:
u-boot.bin: bootloader的镜像
uImage: u-boot格式的(用mkimage命令生成的)Linux内核镜像
rootfs.jffs2: jffs2格式的根文件系统镜像
rootfs.tar: 根文件系统源码打包
如下图所示:
Flashimg***nand.bin并启动系统
这里参考上文给出的参考网站里的使用flashimg***nand.bin具体方法为:
下载flashimg源码
git clone git://gitorious.org/flashimg/flashimg.git
解压后,进入flashimg源码目录后:
./autogen.sh (要求autoconf版本大于2.67) ./configure make sudo make install
然后把我们生成的三个文件 : u-boot.bin, uImage和rootfs.jffs2 拷贝到 flashimg文件夹下运行
./flashimg -s 64M -t nand -f nand.bin -p uboot.part -w boot,u-boot.bin -w kernel,uImage -w root,rootfs.jffs2 -z 512
即可生成nand.bin。启动方法为:
qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse
(若出现错误:浮点数例外启动不了qemu,请全屏最大化终端,再次执行,这是由于分辨率问题造成)
如上图启动后进入uboot模式,此时的qemu还不能显示图形界面,输入下面指令加载内核和根文件系统。
/*注意这里的“MINI2440 #”是提示符,不用输入。*/ MINI2440 # nboot kernel MINI2440 # setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 MINI2440 # saveenv MINI2440 # bootm
启动后,输入默认密码root,即可成功登录,此时还没有配置网络。
ifconfig发现没有网卡。
如果你不需要网络功能,那么任务到此结束,你可以开始模拟2440的开发了。
如果你需要nfs和主机通讯,那得稍微期待下,我将会在下次发表采用的是挂在NFS根文件系统的方法,我们将不需要使用buildroot的根文件系统,而采用友善之臂提供的带Qtopia的根文件系统(请到mini2440附带的光盘找到rootfs_qtopia_qt4-20140103.tar.gz或者网上下载一份)你也可以使用buildroot生成的根文件系统,甚至可以用busybox自己***一个,敬请期待,另外在此感谢参考文章的作者们。
相关文章推荐
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- QEMU模拟Mini2440开发板运行环境
- QEMU模拟FriendlyArm的Mini2440开发板
- QEMU模拟Mini2440开发板运行环境
- 使用qemu 建立mini2440的模拟仿真环境
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统
- QEMU模拟FriendlyArm的Mini2440开发板
- 使用qemu 建立mini2440的模拟仿真环境
- QEMU模拟FriendlyArm的Mini2440开发板
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统
- 使用qemu 建立mini2440的模拟仿真环境
- unbutn交叉编译运行环境(运行环境?对有运行环境!)qemu直接模拟运行程序
- 使用qemu 建立mini2440的模拟仿真环境
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- Cygwin---在windows平台上运行的unix模拟环境
- Cygwin在win平台上运行的unix模拟环境》本地安装版
- 为mini2440开发板建立Keil MDK/Jlink开发调试环境
- 通过QEMU与VMware模拟的ASA防火墙实验环境配置