教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

使用QEMU建立Mini2440的模拟环境

来源:网络收集 时间:2026-03-06
导读: 使用qemu 建立mini2440的模拟仿真环境 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 # .

使用qemu 建立mini2440的模拟仿真环境 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下载功能,不改也可。

然后将u-boot.bin文件拷贝到qemu-mini2440/mini2440文件夹下。

3. 下载 linux kernel for mini2440(可以使用原mini2440开发板的内核源代码) (下载步骤略去) 进入源码目录 1 # make mini2440_defconfig ARCH=arm 2 #make uImage 之后会在arch/arm/boot/目录下生成uImage 文件,将此文件复制到qemu目录下的mini2440文件夹下,并将mini2440文件夹中的mini2440_start.sh作如下修改 将 kernel 一行改为-kernel \回到上层目录后运行 1 # sh mini2440/mini2440_start.sh 错误解决: 一、

1.如果在编译QEMU时没有安装,即 make install,那么需要打开mini2440/mini2440_start.sh,将第16行的 qemu-img 改为:$base/../qemu-img

2.如果编译时安装了QEMU,即有make install,不管这一步骤。 二、

期待的画面并没有出来,取而代之的是:

/etc/qemu-ifup:could not launch network script

Could not initialize device 'tap'

该错误一般是运行权限错误,使用根用户运行。 三、

使用根用户运行,依旧是:/etc/qemu-ifup:could not launch network script ……。 对qemu中的net.c在代码进行修改:

static int launch_script(const char *setup_script, const char *ifname, int fd) {

int pid, status;

char *args[4]; /* bacon modified */ char **parg;

/* try to launch network script */ pid = fork(); if (pid >= 0) {

if (pid == 0) {

char path[20];/* bacon add */

int open_max = sysconf (_SC_OPEN_MAX), i; for (i = 0; i < open_max; i++) if (i != STDIN_FILENO && i != STDOUT_FILENO && i != STDERR_FILENO && i != fd) close(i); parg = args;

strcpy(path, \ *parg++ = (char *)path; /*bacon add*/ *parg++ = (char *)setup_script; *parg++ = (char *)ifname; *parg++ = NULL;

status = execv(path, args);/*bacon add*/

fprintf(stderr, \%d %d %s %s/n\status, errno, ENOEXEC, setup_script, ifname);/*bacon add for debug.*/

_exit(1);

}

while (waitpid(pid, &status, 0) != pid); if (!WIFEXITED(status) ||

WEXITSTATUS(status) != 0) {

fprintf(stderr, \ setup_script); return -1; } } return 0;

}

这时应该看到qemu启动后进入了u-boot界面下,输入命令。 1 # bootm 就会看到linux内核启动的画面,但此时还没有根文件系统,我们稍候介绍采用nfs挂在根文件系统。

4. 开启NFS服务,假设你用的操作系统为ubuntu,首先安装 nfs服务器 1 # sudo apt-get install nfs-kernel-server 之后修改/etc/exports文件,添加如下一行 /home/wuxia *(rw,sync,no_root_squash)

....................注意 /home/wuxia 为你所要共享的目录。 输入命令 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 4 5 6 -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 \\ 7 -usb -usbdevice keyboard -usbdevice mouse\\ 在建立两个脚本,分别为qemu-ifup, qemu-ifdown qemu-ifup 脚本 1 #!/bin/sh 2 echo \3 ifconfig $1 10.0.0.1 qemu-ifdown脚本 1 #!/bin/sh 2 echo \3 sudo ifconfig $1 10.0.0.1 down 6. 当这些都配置好后,我们即可使用nfs根文件系统了

这里我们的根文件系统为 /home/wuxia/mini2440/image/rootfs 在qemu的目录中输入 1 # ./mini2440/mini2440_start.sh u-boot启动成功后输入设置linux kernel的引导参数 set

bootargs

noinitrd

root=/dev/nfs

rw

nfsroot=192.168.135.190:/home/wuxia/mini2440/image/rootfs

ip=192.168.135.135:192.168.135.190::255.255.255.0 console=ttySAC0,115200 再输入命令

bootm

OK ! kernel就开始加载了,文件系统挂在成功后,就可以进行各种仿真工作了。友善之臂提供的qtopia文件系统在挂载时会初始化网卡,但我们是由nfs挂载的文件系统,这会导致nfs连接中断,挂载失败,所以用nfs挂载之前需要把网卡的初始化过程取消,对应的文件是/etc/init.d/if-config,只需把该文件内容清空即可。

redboot on QEMU for mini2440

分类: eCos on mini2440 qemu2011-03-01 16:13 603人阅读 评论(0) 收藏 举报 (原创文章,欢迎转载,请注明出处,谢谢。)

最近有空呼吸新鲜空气,重新拿起来了eCos,做点东西共享给大家。

rt-thread最近很火,在mini2440的qemu平台上发表了测试和代码,这无疑给更多的爱好者以新的学习机会。

这段时间一直在研究ecos,所以有了把ecos移植到mini2440的qemu平台的想法。经过几天的折腾,终于可以在qemu的上面看到redboot的命令了。

先看看成 …… 此处隐藏:2177字,全部文档内容请下载后查看。喜欢就下载吧 ……

使用QEMU建立Mini2440的模拟环境.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/593223.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)