qemu虚拟开发板
如果你想拥有一块开发板,而又不想花钱,那你就可以自己做一个虚拟开发板。
虚拟开发板是用QEMU模拟出来的一块板子,实际上就是一个虚拟机。
Contents
[hide]
1 调试模式
1.1 QEMU
1.1.1下载QEMU
1.1.2安装QEMU
1.2 bootloader
1.2.1准备交叉编译工具
1.2.2下载U-Boot
1.2.3交叉编译U-Boot
1.2.4调试U-Boot
1.3 Linux内核
1.3.1下载Linux内核
1.3.2交叉编译Linux内核
1.3.3加载Linux内核
1.3.3.1 下载并安装TFTP Server
1.3.3.2 准备qemu-ifup和qemu-ifdown
1.3.3.3 tftpboot uImage
1.3.4运行Linux内核
1.3.4.1 准备ROOTFS
1.3.4.2 准备NFS
1.3.4.3 运行uImage
1.4 设备驱动
1.4.1添加一个设备到QEMU
1.4.2设备驱动程序
1.5 GUI
2 Run Mode
2.1 QEMU
2.1.1Support FLASH on QEMU
2.2 U-Boot
2.2.1burn U-Boot into flash
3 References
4 External links
调试模式
QEMU
下载QEMU
通常我们有两种方式来获取源代码:
压缩包, 从QEMU下载页面获取最近的发行版qemu-0.13.0.tar.gz。 解压这个文件:
$ tar zxvf qemu-0.13.0.tar.gz
用git工具来抓取源代码:
$ git clone git://git.qemu.org/qemu.git
安装QEMU
现在我们可以进到QEMU的源代码目录中,执行以下命令安装QEMU的ARM仿真部分到本机的'/opt/qemu/'目录下
$ ./configure --prefix=/opt/qemu --target-list=arm-softmmu,arm-linux-user --enable-debug $ make -s $ make install -s
添加"PATH=/opt/qemu/bin:$PATH" 到文件'/etc/profile' 中, 然后执行以下命令,就可以在控制台直接运行QEMU相关命令了
$ . /etc/profile
我们可以从QEMU下载页面中下载arm-test-0.2.tar.gz, 这是ARM Linux 2.6的测试内核和initrd磁盘镜像(感谢Paul Brook)。
$ tar zxvf arm-test-0.2.tar.gz $ cd arm-test $ qemu-system-arm -kernel zImage.integrator -initrd arm_root.img -nographic -append "console=ttyAMA0"
命令将启动一个带命令行的ARM虚拟机,键入"CTRL-a x"可以退出。好了,安装完成。
bootloader
准备交叉编译工具
打开网页Sourcery G++ Lite Edition for ARM,依次点击" GNU/Linux > Packages > Recommended Packages > IA32 GNU/Linux Installer"。 下载后,将它安装到目录'/opt'中:
$ chmod +x arm-VERSION-arm-none-linux-gnueabi.bin $ ./arm-VERSION-arm-none-linux-gnueabi.bin
安装完成后,我们可以在目录'/opt/CodeSourcery/Sourcery_G++_Lite/bin'中找到我们需要的交叉编辑工具。可以写一个"hello world"测试程序来测试一下它们:
$ sudo mkdir -p /usr/gnemul $ sudo ln -sf /opt/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/libc /usr/gnemul/qemu-arm $ arm-none-linux-gnueabi-gcc -o hello hello.c $ qemu-arm hello
如果我们可以看到有"hello world"或者别的你让输出的字符出现在屏幕上了, 交叉编译工具就准备好了.
下载U-Boot
发行版:u-boot-latest.tar.bz2
当前源程序:
$ git clone git://git.denx.de/u-boot.git
交叉编译U-Boot
到U-Boot的根目录下,然后执行:
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- versatilepb_config $ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -s
在目录下将会产生文件'u-boot'和'u-boot.bin'。
同时我们也可以在'tools'目录中得到工具"mkimage", 在编译Linux内核uImage时将会用到它,所以
$ sudo ln -sf `pwd`/tools/mkimage /usr/local/bin/mkimage
现在我们可以在控制台中启动U-Boot了:
$ qemu-system-arm -M versatilepb -nographic -kernel u-boot
启动成功后会显示命令提示符"VersatilePB #",现在就可以输入像"printenv"等U-Boot命令了。 输入组合键"CTRL-a x"即可以退出。
调试U-Boot
当调用QEMU时添加-s 和-S 选项
-s -gdb tcp::1234 的所写
-S 在启动时停止CPU (键入'c'才会开始执行)
$ qemu-system-arm -M versatilepb -nographic -kernel u-boot -s -S
调试U-Boot时,加载文件'u-boot' 到gdb(记住不是
相关新闻>>
- 发表评论
-
- 最新评论 更多>>