本博客倡导开放源代码,在此公布之程序源代码如无特别声明均采用GNU通用公共 许可证(GPL)

乐在其中

分享学习Linux的乐趣

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  23 随笔 :: 0 文章 :: 401 评论 :: 0 Trackbacks
QEMU是一款开源的虚拟机和仿真器软件。它提供了MIPS系统的仿真器(目前不支持图形卡仿真,只能运行于字符终端方式),使我们可以在x86平台上安装运行Debian Linux for MIPS,从而在其中进行本机编译。本文将详细介绍在Ubuntu 9.10上安装部署的过程。

(一)安装QEMU
首先安装QEMU软件包:
$ sudo apt-get install qemu qemu-common qemu-kvm qemu-kvm-extras

(二)下载Debina网络安装映像文件
$ wget http://ftp.de.debian.org/debian/dists/lenny/main/installer-mipsel/current/images/malta/netboot/vmlinux-2.6.26-2-4kc-malta
$ wget http:
//ftp.de.debian.org/debian/dists/lenny/main/installer-mipsel/current/images/malta/netboot/initrd.gz

其中vmlinux-2.6.26-2-4kc-malta是内核,initrd.gz是用于网络安装的引导RAM Disk。
注:Malta是MIPS Technologies公司设计的一款开发板,QEMU提供了针对Malta板的仿真。

(三)创建硬盘映像文件
为安装Debian Linux操作系统准备一个10GB的虚拟磁盘。QEMU支持多种磁盘映像格式,其中qcow2是功能最多最好用的一种格式。
$ qemu-img create -f qcow2 hda.img 10G
新建的磁盘映像只占用很少的空间,随着使用才逐渐扩张直至达到设定的10G。

(四)安装Debian Linux for MIPS
***安装过程需要一直连接互联网,安装可能会花费数小时***
1. 引导网络安装程序
$ qemu-system-mipsel -M malta -m 128 -kernel vmlinux-2.6.26-2-4kc-malta -initrd initrd.gz -hda hda.img -append "root=/dev/ram console=ttyS0" -nographic -no-reboot
screenshot

2. 启动后会自动进入安装程序,首先是选择语言和国家。语言选择English,国家选Other -> Asia -> China
screenshot

3. 配置网络:输入主机名、域名,选择Debian镜像服务器以及配置代理服务器
screenshot

screenshot

screenshot

screenshot

screenshot

4. 磁盘分区

screenshot

screenshot

screenshot

screenshot

screenshot

5. 开始下载并安装基本系统

screenshot

6. 设置用户/口令:设置root口令以及新建一个普通用户

...截图略过...

7. 选择安装软件:只选择标准系统(Standard system)

screenshot

忽略"No boot loader installed"警告并继续
screenshot

8. 安装完成

screenshot

(五)启动系统
$ qemu-system-mipsel -M malta -m 128 -kernel vmlinux-2.6.26-2-4kc-malta -hda hda.img -append "root=/dev/hda1 console=ttyS0" -nographic -no-reboot

用上面的命令启动安装好的Debian系统,此时QEMU将使用默认的网络配置,只能从客户机访问外部网络。如果希望客户机对外提供网络服务,如telnet,ssh,ftp等,则需要配置tap网络接口,详细步骤可参考文章:QEMU/Networking

(六)部署本机编译环境
本机编译工具链仍使用我自制的根文件系统:mipsel-native-toolchain-gcc442-uc0928-rootfs.tar.bz2 (如果不能下载请尝试此链接)

下面操作在客户机上进行:

1. 解压工具链
# mkdir /toolchain-root
# cd 
/toolchain-root
# tar jxf 
/path/to/mipsel-native-toolchain-gcc442-uc0928-rootfs.tar.bz2

2. 客户机启动时自动为/toolchain-root绑定/proc,/sys,/dev,/tmp等伪文件系统。把下面的内容加入/etc/rc.local末尾处exit 0前面
# bind psudo filesystems for /toolchain-root
mount --bind /proc /toolchain-root/proc
mount --bind /sys /toolchain-root/sys
mount --bind /dev /toolchain-root/dev
mount -t tmpfs tmpfs /toolchain-root/
tmp

3. 进入本机编译环境
# chroot /toolchain-root /bin/sh


BusyBox v1.
15.3 (2010-04-08 22:24:27 CST) built-in shell (ash)
Enter 
'help' for a list of built-in commands.

#

我安装的Debian Linux + 本机编译工具的磁盘映像文件可以在这里下载,供大家参考。root口令就是root。

参考:
1. 搭建本机编译环境(Building the Native Compiling Environment)
2. QEMU/Networking
posted on 2010-10-07 18:07 gouzhuang 阅读(8339) 评论(2)  编辑 收藏 引用 所属分类: 嵌入式Linux

评论

# re: 在QEMU MIPS仿真器上实现本机编译(Native Compiling on a QEMU Emulator) 2010-10-07 20:33 hibaby
不知道QEMU现在的效率如何,记得看过介绍,效率也就本机的十分之一,不知道这和交叉编译环境进行编译有什么区别。  回复  更多评论
  

# re: 在QEMU MIPS仿真器上实现本机编译(Native Compiling on a QEMU Emulator) 2010-10-09 14:17 gouzhuang
@hibaby
QEMU仿MIPS效率确实很低,从编译性能的角度来说,连宿主机的十分之一都不到,比播放机的性能都差很远。所以只有不支持交叉编译的软件才会用本机编译。不过QEMU是个不错的调试平台,使我们可以脱离播放机进行软件调试。  回复  更多评论
  

只有注册用户登录后才能发表评论。