原文地址:http://linuxman.blog.ccidnet.com/blog-htm-do-showone-uid-60710-type-blog-itemid-1134050.html
在Debian(etch)上用QEMU仿真ARM系统
一直都想用QEMU来仿真ARM系统,这段时间在网上搜索了很多文章,并做一些验证,现在终于成功地在Debian(etch)上用QEMU仿真了ARM系统。 具体操作步骤参照Debian on an emulated ARM machine 完成,可能是原文没有更新的缘故,其中的一些内容已经实际情况不符。本文重点描述不同于原文的地方或需要注意的地方备忘,其他详细的说明请参照原文 。 1、编译安装0.9.1版本的QEMU etch中的QEMU的版本是0.8.2-4etch2,该版本在安装libc6时会失败,无法使用,所以需要我们自己编译安装最新版本的QEMU,目前是0.9.1。 wget http://bellard.org/qemu/qemu-0.9.1.tar.gz su -c "apt-get build-dep qemu" cd qemu-0.9.1 ./configure make su -c "make install" 其中的 apt-get build-dep qemu是安装编译QEMU所需的软件包。 2、创建ARM系统的虚拟硬盘 qemu-img create -f qcow hda.img 10G 命令行中的硬盘容量参数10G中的单位必须用大写G,不能用小写g,否则命令会执行失败。 3、下载ARM系统的内核和initrd文件 wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.18-6-versatile wget http://people.debian.org/~aurel32/arm-versatile/initrd.img-2.6.18-6-versatile 4、下载ARM系统安装用的initrd文件 我们用anheng的Debian安装源中的: wget http://www.anheng.com/debian/dists/etch/main/installer-arm/current/images/rpc/netboot/initrd.gz 5、在ARM仿真机上安装的Debian etch qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.gz -hda hda.img -append "root=/dev/ram" 安装源选择手工输入anheng提供安装镜像:www.anheng.com 。anheng是国内提供全体系结构Debian安装源的公司,赞一个! 安装过程中会有一些提示,不要理会,选择继续安装即可。安装完毕后,关闭QEMU程序。 6、使用ARM仿真系统 用下面的命令启动ARM仿真系统: qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.img-2.6.18-6-versatile -hda hda.img -append "root=/dev/sda1" 第一次启动ARM仿真系统需要安装内核映像文件,在仿真系统内以root用户登录并执行: apt-get install initramfs-tools wget http://people.debian.org/~aurel32/arm-versatile/linux-image-2.6.18-6-versatile_2.6.18.dfsg.1-23+versatile_arm.deb su -c "dpkg -i linux-image-2.6.18-6-versatile_2.6.18.dfsg.1-23+versatile_arm.deb" 安装内核时会有提示,不要理会,选择继续安装。 7、直接在shell中使用ARM仿真系统 直接在shell中使用ARM仿真系统需要先配置串口登录并运行root登录。在仿真系统中执行: (1)在 /etc/inittab 文件中增加: T0:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100 (2)在 /etc/securetty 文件中增加: ttyAMA0 配置好后,执行下面的命令可以直接在shell中使用ARM仿真系统: qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.img-2.6.18-6-versatile -hda hda.img -append "root=/dev/sda1 console=ttyAMA0" -nographic 8、其他说明 (1)因担心仿真系统资源太弱,所以没有试验在仿真系统上安装X。 (2)简单试验了原文中的网络桥接设置,但没有成功。待以后有时间研究桥接设置时,再试验解决。 (3)在网上还找到一篇在windows系统上用同样方法仿真ARM系统的文章(http://www.cs.tut.fi/~paulus/emu-arm-debian-howto.html#emu ),暂未试验。 (4)本文所需的内核、initrd文件在http://people.debian.org/~aurel32/arm-versatile/ 可以找到最新版本的。而http://people.debian.org/~aurel32/qemu/ 中则包含已经制作好的用于QEMU仿真的文件系统。