• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 使用qemu 建立mini2440的模拟仿真环境 复制链接 | 浏览器收藏 | 打印
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
贡献值: 2 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
楼主  发表于: 2011-10-26 14:43

 使用qemu 建立mini2440的模拟仿真环境

管理提醒: 本帖被 kasim 执行加亮操作(2011-10-26)
转载自:http://www.cnblogs.com/jinmu190/archive/2011/03/21/1990698.html

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

解压后,今日源代码的主目录中,

复制代码
  1. #  ./configure --target-list=arm-softmmu
  2. #  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-,保存退出,输入

复制代码
  1. #  make mini2440_config
  2. #  make -j4


稍等两分钟,即在当前目录下生成名为 u-boot.bin 的文件,注意如果想在之后使用u-boot 的nfs下载文件功能,需要修改代码中的一部分,将
net/nfs.c文件中的
NFS_TIMEOUT = 2UL 修改为 NFS_TIMEOUT = 20000UL 否则会造成nfs文件下载失败,如果不使用nfs下载功能,不改也可。

3. 下载 linux kernel for mini2440
(下载步骤略去)
进入源码目录

复制代码
  1. #  make mini2440_defconfig ARCH=arm
  2. #  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服务是否成功启动

复制代码
  1. #  sudo mkdir /mnt/nfs
  2. #  sudo mount -t nfs localhost:/home/username/nfs /mnt/nfs


查看/mnt/nfs文件是否于/home/username/nfs 中相同,若一样 ,OK

5. 将mini2440目录下的mini2440_start.sh修改为

复制代码
  1. #!/bin/sh
  2. sudo  ../arm-softmmu/qemu-system-arm \
  3.   -M mini2440  \
  4.   -kernel mini2440/uImage  -serial stdio \
  5.     -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=./qemu-ifup,downscript=./qemu-ifdown \
  6.   -show-cursor \
  7.   -usb -usbdevice keyboard -usbdevice mouse\


在建立两个脚本,分别为qemu-ifup, qemu-ifdown
qemu-ifup 脚本

复制代码
  1. #!/bin/sh
  2. echo "Excuting qemu-ifup"
  3. ifconfig $1 10.0.0.1


复制代码
  1. #!/bin/sh
  2. echo "Close tap!"
  3. sudo ifconfig $1 10.0.0.1 down


6. 当这些都配置好后,我们即可使用nfs根文件系统了
这里我们的根文件系统为 /home/username/nfs
在qemu的目录中输入
[color=initial !important]
复制代码
  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环境在这仿真环境中跑起来,目前还没有成功,正在尝试中。
[ 此帖被cyx8648在2013-11-06 12:44重新编辑 ]
星星之火,可以燎原!
星星之火,可以燎原
级别: 骑士
UID: 42844
精华: 2
发帖: 140
金钱: 805 两
威望: 161 点
贡献值: 2 点
综合积分: 320 分
注册时间: 2011-04-11
最后登录: 2016-05-23
1楼  发表于: 2011-10-26 15:22
从其他网站复制转载内容,简直太难了,格式完全不一样了,好多乱码,哎,发帖后又取消不了,只能负责任的继续编辑一下了,就成现在这个样子了!
星星之火,可以燎原!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5407
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11054 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2011-10-26 17:17
谢谢分享。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5407
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11054 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2011-10-26 17:23
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 35072
精华: 0
发帖: 25
金钱: 130 两
威望: 26 点
贡献值: 0 点
综合积分: 50 分
注册时间: 2010-12-25
最后登录: 2014-03-14
4楼  发表于: 2012-06-27 11:28
好贴啊,有时间尝试一下
级别: 新手上路
UID: 60956
精华: 0
发帖: 31
金钱: 155 两
威望: 31 点
贡献值: 0 点
综合积分: 62 分
注册时间: 2011-12-20
最后登录: 2013-05-08
5楼  发表于: 2012-08-09 13:15
您好。方便给给文件系统压缩包吗?谢谢
还是市郊好
级别: 风云使者
UID: 9845
精华: 0
发帖: 2732
金钱: 85175 两
威望: 17035 点
贡献值: 0 点
综合积分: 5464 分
注册时间: 2009-10-15
最后登录: 2018-02-08
6楼  发表于: 2017-07-06 22:40
生是她的人,死是她的吉祥物。
级别: 风云使者
UID: 43453
精华: 0
发帖: 2712
金钱: 84640 两
威望: 16928 点
贡献值: 0 点
综合积分: 5424 分
注册时间: 2011-04-17
最后登录: 2017-09-24
7楼  发表于: 2017-07-07 04:58
世界上那些最容易的事情中,拖延时间最不费力。
级别: 风云使者
UID: 43453
精华: 0
发帖: 2712
金钱: 84640 两
威望: 16928 点
贡献值: 0 点
综合积分: 5424 分
注册时间: 2011-04-17
最后登录: 2017-09-24
8楼  发表于: 2017-07-07 06:25
自然法则.强者生存
级别: 风云使者
UID: 39598
精华: 0
发帖: 2713
金钱: 84685 两
威望: 16937 点
贡献值: 0 点
综合积分: 5426 分
注册时间: 2011-03-10
最后登录: 2017-07-08
9楼  发表于: 2017-07-07 10:58
也因寂寞难耐,谈过几次恋爱。谁知屡战屡败,轻轻松松被踹!
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go