资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
QEMU 模拟 Cortex-A9 运行 U-boot 与 LinuxQEMU 模拟 Cortex-A9 运行 U-boot 与 Linux 错误!未定义书签。1、实验目的 22、实验要求 23、实验原理 24、实验步骤 34、1 VMware 虚拟机中安装 Ubuntu34、2 安装 QEMU 模拟器44、3 编译并运行 U-boot 44、4 编译并运行 Linux64、5 在目标机(Linux系统)中运行应用程序10思考题 121、实验目的1) 熟练使用 Linux 操作系统;2)认识一种新的内核模拟器QEMU;3)掌握嵌入式Linux系统的开发流程;2、实验要求1)在PC机上安装VMware虚拟机,并在VMware中安装Linux操作系统(Ubuntu 12、04);2)在 Ubuntu 中安装 QEMU;3)编译U-boot,并在QEMU上运行;4)编译Linux内核,并使用Busybox制作根文件系统;5)在QEMU上运行Linux操作系统;6)在该Linux系统上运行应用程序。3、实验原理1)VMware Workstation虚拟机就是可以在Windows/Linux系统上运行的应用程序,它可以 模拟基于x86的标准PC环境。这个环境与真实的计算机一样,都有芯片组、CPU、内存、显 卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器、SCSI控制器等设备。与“多 启动”系统相比,VMWare采用了完全不同的概念,多启动系统在一个时刻只能运行一个系统, 在系统切换时需要重新启动机器。而VMWare虚拟机软件就是一个“虚拟PC”软件,它可以使 您在一台机器上同时运行多个Windows、DOS、LINUX系统,并且在系统切换时不需要重启 计算机。在使用上,这台虚拟机与真正的物理主机几乎没有区别,都需要分区、格式化、安装操作 系统、安装应用程序与软件,总之,一切操作都跟一台真正的计算机一样。2)QEMU模拟器:QEMU就是一个面向完整PC系统的开源仿真器。除了可以仿真处理 器之外,QEMU还可以仿真所有必要的子系统,如连网硬件与视频硬件。它还允许实现高级概 念上的仿真(如对称多处理系统(多达255个CPU)与对其她处理器架构(如ARM与 PowerPC)的仿真。QEMU有两种运行模式:* User mode模拟模式,亦称作使用者模式。QEMU能启动那些为不同中央处理器编译的Linux程序。* System mode模拟模式,亦称作系统模式。QEMU能模拟整个电脑系统,包括中央处理器 及其她周边设备。它使得对跨平台编写的程序进行测试及调试变得容易。其亦能用来在一部 主机上虚拟多部不同的系统。3)嵌入式 Linux 系统的结构嵌入式Linux系统从软件的角度瞧通常可以分为4个层次: 引导加载程序 Bootloader。 内核。完成对硬件设备的控制,Linux内核的主要模块分为以下几个部分:存储管理、CPU与进程管理、文件系统、设备管理与驱动、网络通信、以及系统的初始化引导)、 系统调用等。 文件系统。它提供了用于管理系统的各种配置文件,以及为系统执行用户应用程序提 供了良好的运行环境。 用户应用程序。根据不同的用户需求而编写的程序。4)QEMU与宿主机之间的通信机制:QEMU提供了四种网络通信模式:TAP、user、Sockets 与VDE。利用user模式可以实现虚拟机与宿主机之间的通信且较为简单易行,在这种通信模 式中,虚拟机处于10、0、2、*网段,该网段通过一个NAT服务器与外界通信,NAT服务器的地 址就是10、0、2、2,虚拟机的IP地址从10、0、2、15开始分配。4、实验步骤4、1VMware 虚拟机中安装 Ubuntu(1) 自行下载ubuntu12、04的、iso系统镜像,并在VMware中安装。(2) Ubuntu 安装完成后,设置 root 密码,以便后期编译时获取 root 权限。(3) 终端 sudo apt-get update 完成更新。(4) 安装GNU的交叉编译工具链。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 的版本信息:wyL电ubuntuqemu-system-arm -versionQEMU emulator version 1.3.59 (Debian 1.0.0-2012. O3-0ubLintu2.1 J ( Copyright (c) 2 063-2008 Fabrice Bellardsylubuntu:-$ |4、 3 编译并运行 U-boot(1)在 windows 下到 下载最新版本的 U-Boot 源代码,(参考版本 u-boot-2012、04、tar、bz2 ), 下载完后将其放入ubuntu中在该目录下解压:tar jxvf u-boot-2012、04、tar、bz2,在当前目 录下会产生一个u-boot-12、04的文件夹:rootrsversa tile-i nitr 日 mfsVideosNetworkJi Muic 画 PicturesVideos_L File SystemTrashibboolr2D12.04进入到u-boot-2012、04目录下,修改其中的Makefile,添加两行(可放在文档的开头),ARCH?=armCROSS_COMPILE ?= arm-linux-gnueabi-(2)进入到 u-boot-2012、 04文件夹下,终端输入命令:make ca9x4_ct_vxp_configmake结果如下:L -卩-ULUnr 丄-U_AKn_ -Pldl Pl PldUl-ddpCS LUIJM -PIHU - tnupiu - U1LCI WP K Fidrch=arnv5 -Wall -Wstrtct-prototypes -fno-stack-protector -Wno-fomat-nonltteral -wno-formdt-securtt -fstack-usage -fno-taplevel-reor der - stubs-o stubs + c -c arm -Ltridx-gnueabt-Ld -r -a llbstubsc stubs. arm-Linux-gnueabi-Ld -g -Ttext Oxc109000 - hellohorld -e helluworld hellortorld.o Itbstubs.o -L/usr/lib/gcc/arpi-linjx-gnueabi.6 -Igccarm -Itridx-gnLieabt-objcopy -0 5rec hellu world hell_o_wcjrldxSrpt 2/dE?u/riLill am-Linux-gnueabi-Id -g -Ttext OxclOGGOO -o sncsilx_eeprorn -e smc911x_eeproni snc911x_eepron.Q LIL stubs-L/usr/ltb/gcc/arn-ltniJM-gnueabt/4.6 -Igccam-Linux-gnueabi-objcopy -0 srec snc911x_eepron smc911x_eepron*srec 2/dev/null arm -Ltridx-gnueabt-objcopy -o binary helta_uorliJ hello world.bin 2/dev/nulL arm-Linux gnueabi objcopy -0 binary smc911K_eeproH snc911x_eeprom-bin Z/dev/nul Inakel: Leaving directory /hone/syl/u-boot-2012*04/exanples/standdlone make -c exanples/api allnakel: Entering directory 1/hone/syl/u-boot-012*fl4/exdnples/apt1 nakeflr Nothing to be done for all.nakel: Leaving directory /hone/syl/u-boot-2012*04/exonples/api rDotubuntu:/home/l/u-boot-2012.345? |结果会在 u-boot-2012、04 文件夹下生成 u-boot、bin 等文件,如下图所示:_ me y&cemS. TrashNEtwark同 Browse Net.mkconFfgREADM E* in#顧MakeFiierules.mkLi=1System.map丨回u4joot.ldsu-boot:Si a | u-bciot.binu-boot.niapu-boot.srec(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 结果如下图:In:serialDut:serialErr:serialMet:sncQllx-0Hit any key to stop autoboat:0Nong Image Fornat fo bootm conmandERROR: can11 get kernel imagei/Express#k/Express# printenvbaudrate=38400bootargs=root=/dev/dal rw consDle=ttyflMA0,384a3n8 nem=102ilM ntdparts=arnf=lashGx8000OO(uboat) ,7M0xlOOO0etlernel) 124M0M2O00QGO(initrd) nnci. f nax=19O00$vnall口DRAM: 256 MiB aARNING : Caches not enabledFlash:亩弃 unknown fLash on Bank 1 - size = exooeeaoa - mbtttt Unknown flash on Bank 2 - Size = 0x0300900 = G MB* failedMMC:MAC: e*占 Warning - bad CRC:, using default environmen七uratulHMTerminal
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号