ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:912.11KB ,
资源ID:14109481      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14109481.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(QEMU模拟CortexA9运行Uboot和LinuxV020互联网+Word格式.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

QEMU模拟CortexA9运行Uboot和LinuxV020互联网+Word格式.docx

1、1)VMware Workstation虚拟机是可以在Windows/Linux系统上运行的应用程序,它可以模拟基于x86的标准PC环境。这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器、SCSI控制器等设备。与“多启动”系统相比,VMWare采用了完全不同的概念,多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。而VMWare虚拟机软件是一个“虚拟PC”软件,它可以使你在一台机器上同时运行多个Windows、DOS、LINUX系统,并且在系统切换时不需要重启计算机。在使用上,这台虚拟机和真正的物理主机几乎没有

2、区别,都需要分区、格式化、安装操作系统、安装应用程序和软件,总之,一切操作都跟一台真正的计算机一样。2)QEMU模拟器:QEMU 是一个面向完整PC系统的开源仿真器。除了可以仿真处理器之外,QEMU 还可以仿真所有必要的子系统,如连网硬件和视频硬件。它还允许实现高级概念上的仿真(如对称多处理系统(多达 255个CPU)和对其他处理器架构(如 ARM 和 PowerPC)的仿真。QEMU有两种运行模式:* User mode模拟模式,亦称作使用者模式。QEMU能启动那些为不同中央处理器编译的Linux程序。* System mode模拟模式,亦称作系统模式。QEMU能模拟整个电脑系统,包括中央处

3、理器及其他周边设备。它使得对跨平台编写的程序进行测试及调试变得容易。其亦能用来在一部主机上虚拟多部不同的系统。3)嵌入式Linux系统的结构嵌入式Linux系统从软件的角度看通常可以分为4个层次:引导加载程序Bootloader。内核。完成对硬件设备的控制,Linux内核的主要模块分为以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、以及系统的初始化(引导)、系统调用等。文件系统。它提供了用于管理系统的各种配置文件,以及为系统执行用户应用程序提供了良好的运行环境。用户应用程序。根据不同的用户需求而编写的程序。4)QEMU与宿主机之间的通信机制:QEMU提供了四种网络

4、通信模式:TAP、user、Sockets和VDE。利用user模式可以实现虚拟机和宿主机之间的通信且较为简单易行,在这种通信模式中,虚拟机处于10.0.2.*网段,该网段通过一个NAT服务器与外界通信,NAT服务器的地址是10.0.2.2,虚拟机的IP地址从10.0.2.15开始分配。4. 实验步骤4.1 VMware虚拟机中安装Ubuntu(1)自行下载ubuntu12.04的.iso系统镜像,并在VMware中安装。(2)Ubuntu安装完成后,设置root密码,以便后期编译时获取root权限。(3)终端sudo apt-get update 完成更新。(4)安装GNU的交叉编译工具链。

5、 sudo apt-get install gcc-arm-linux-gnueabisudo apt-get install g+-arm-linux-gnueabi 安装完成后会在 /usr/arm-linux-gnueabi/ 目录下生成库文件、头文件等。4.2 安装QEMU模拟器sudo apt-get install qemu qemu-system qemu-utils然后在终端中运行qemu-system-arm -version会显示如下QEMU的版本信息:4.3 编译并运行U-boot(1)在windows下到ftp:/ftp.denx.de/pub/u-boot/ 下载最新

6、版本的U-Boot源代码,(参考版本u-boot-2012.04.tar.bz2 ),下载完后将其放入ubuntu中在该目录下解压:tar jxvf u-boot-2012.04.tar.bz2,在当前目录下会产生一个u-boot-12.04的文件夹:进入到u-boot-2012.04目录下,修改其中的Makefile,添加两行(可放在文档的开头),ARCH?=arm CROSS_COMPILE ?= arm-linux-gnueabi-(2)进入到u-boot-2012.04文件夹下,终端输入命令:make ca9x4_ct_vxp_config make 结果如下:结果会在u-boot-2

7、012.04文件夹下生成u-boot.bin等文件,如下图所示:(3)然后在终端中执行下面的命令,来启动U-bootqemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot或者qemu-system-arm -M vexpress-a9 -m 256M -serial stdio -kernel u-boot结果如下图:此时是检测Flash failed后停止运行,是因为在 arch/arm/lib/board.c里面 board_init_r()函数里检测Flash失败后调用了hang(), 暂时先把hang()去掉就可

8、以运行下去了。正常的运行结果如下:4.4 编译并运行Linux(1)到http:/www.kernel.org/下载最新的Linux内核源码,(参考 linux-3.4.4.tar.bz2),解压后得到文件夹linux-3.4.4,修改Makefile , 修改的位置如下图:修改如下ARCH = armCROSS_COMPILE=arm-linux-gnueabi-在linux-3.4.4目录下 make vexpress_defconfig然后 make menuconfig - System Type 把 Enable the L2x0 outer cache controller 取消,

9、 否则Qemu会起不来。然后make,会在arch/arm/boot/ 目录下生成zImage内核映像文件,这就是我们需要的内核映像。(2)制作根目录系统。1.编译busybox 下载busybox源码:解压,还是在busybox-1.21.0目录下的Makefile中修改make menuconfig进行配置在Busybox Setting-Build Opdions-选择 Build BusyBox as a static binary (no shared libs)使用静态编译make ,会在目录中产生install文件,make inatall ,会在目录中生成文件夹_install

10、,2. 制作根文件系统目录mkdir rootfscd rootfs(1) 建立目录结构mkdir bin etc dev lib proc tmp root home sys usr sbin var mnt(2) 运行库-来自工具链cp -a /usr/arm-linux-gnueabi/lib/* lib(3) 配置文件-来自busyboxcp -a /examples/bootfloppy/etc/* etc(4) busybox工具集/_install/* .(5) 设备文件udo cp -a /dev/console /dev/loop0 /dev/loop1 /dev/null

11、/dev/ram0 /dev/tty /dev/tty0 /dev/tty1 /dev/zero dev(6) 修改mdev配置,mdev负责自动生成设备节点,mdev.conf是配置文件vim etc/mdev.conf controlC0-9 0:0 0660 =snd/pcm.* 0:seq.* 0:mix.* 0: timer 0:其他特殊要求的设备文件,同样道理即可.(7) 修改启动配置vi etc/init.d/rcS增加mount -n -t proc none /proc mount -n -t sysfs none /sys mdev -s 这句很重要,生成所有的设备节点如果

12、用nfs的话,有了以上目录就可以了3. 根文件系统镜像dd if=/dev/zero of=rootfs.img bs=1M count=64 # 32M的镜像mkfs.ext3 rootfs.imgmkdir tmpfssudo mount -o loop rootfs.img tmpfssudo cp -a rootfs/* tmpfs/sudo umount tmpfsrootfs.img中就有了文件系统镜像了,ext3格式.(3)QEMU运行Linux系统qemu-system-arm -M vexpress-a9 -m 256M -kernel /home/syl/linux-3.4

13、.4/arch/arm/boot/zImage -append root=/dev/mmcblk0 console=tty0 init=/linuxrc -sd rootfs.img运行结果如下:/home/syl/linux-3.4.4/arch/arm/boot/是放置内核镜像的路径。4.5 在目标机(Linux系统)中运行应用程序用户应用程序在目标机上运行有两种方法:将编译后的可执行文件放入到根文件系统中,在做成根文件系统的镜像后,由内核调用并执行。使用NFS(网络文件系统)在本地机和目标机之间建立通信。1)QEMU与Ubuntu之间的通信1.首先在Ubuntu上安装NFS网络文件系统apt-get install nfs-kernel-server2.在NFS服务的配置文件/etc/exports中添加:/ *(rw,no_root_squash,insecure)3.关闭Ubuntu的网关,避免连接不上:在/etc/resolv.conf中全部注释掉,不要DNS服务器地址。4.在宿主机Ubuntu中开启NFS服务:/etc/init.d/nfs-kernel-server start5.再次启动Qemu,在最后面添加如下命令 -net user -net nic s6.最后,在目标机中配置网络、挂载NFS文件系统、切换根文件系统

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1