博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mips qemu
阅读量:4138 次
发布时间:2019-05-25

本文共 4545 字,大约阅读时间需要 15 分钟。

是一款开源的虚拟机和仿真器软件。它提供了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。

注:
是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网络接口,详细步骤可参考文章:


(六)部署本机编译环境

本机编译工具链仍使用我自制的根文件系统:
 (如果不能下载请尝试
)


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


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. 

2. 

不管你对Matrix这部电影持有什么观点,这部电影里还是处处体现着我们现实计算机世界中的哲学精神。比如,最基本的一条就是,在数字世界里,你不知道你是一条狗。
 
哲学命题不是本文的主题,那么就直接jmpl main: 本文的主题,虚拟机。
在现实世界中,你一定接触过各种各样的虚拟机,Vmware,VirtualPC,甚至JVM或是VBRunDLL,等等等等,在数字的信息世界里虚拟和现实是如此的难解难分。
 
从这个开始,磁芯大战。
watercloud在这里定义了一个8k Byte地址空间的虚拟机,包含完整的运行系统,可以看作是一个最小的虚拟机。这是一个古老计算机游戏"磁芯大战"的一个实现版本,闲来无事作为桌面小游戏玩玩儿还是不错的。
 
如果你不满足这个的话,那么看看这个,你的硬盘就一定开始狂转:
当然了,虽然这只是一个Java Applet,但它确实是一个完整的MIPS R3000 体系的实现!想想看,JVM虚拟机里的MIPS虚拟机,谁知道自己是狗狗?或是狗狗的一部分?
 
如果用上面一个让你心痛自己的硬盘了的话,那么就用这个吧:
VMips,另一个MIPS系统的实现,当然了,这个是C版本,可以编译运行在大多数Unix系统上。VMips提供了一个完整的MIPS体系指令集合,同样,可以在这个环境下用gcc做交叉编译,用gdb作交叉开发和调试...
 
VMips只能够支持Mips指令集,有点过时,也有点局限,Qemu就好一点了。
Qemu支持x86 / ARM / Sparc / PowerPC四种指令集合,并且效率也比VMpis高一些;他支持两种运行模式-- Boot模式和User模式。在Boot模式下工作就如同Vmware那样,可以安装和引导一个完整系统,当前工作还不完善;而User模式下工作则表现得像Wine那样,可以直接在User空间运行一个其它硬件平台的程序,由Qemu做一个系统指令层转换。
 
作为MIPS平台学习,Qemu的使用稍显复杂。spim提供了一个更好的用户界面,并且能够运行在Unix/Windows/Dos下,同样完整地实现了MIPS R3000指令集,图形界面就如同大多数的调试工具一样使用,可以直接读取和解释MIPS R3000汇编指令。
 
最后,是本文重点推荐的东东: 
mips64emul
mips64emul可以运行在大多数的Unix上,至少目前在Linux/netBSD host上运行得很好。可以模拟32/64位的MIPS CPU,支持netbsd, openbsd, linux, Ultrix, Irix的MIPS版本。支持boot模式安装系统和user模式直接运行elf/coff格式可执行文件。
支持模拟如下硬件平台:
DECstation:
    NetBSD/pmax onto a harddisk image.
    old OpenBSD kernel in a.out format.
    Linux kernels for Mips R4000.  
SGI:
    NetBSD/sgimips.
    Linux/SGI kernels for Mips R10000.
ARC:
    NetBSD/arc.
    An ARC linux kernel, ECOFF.
Cobalt:
    NetBSD for Cobalt.
    Linux for Cobalt.
Playstation 2:
    NetBSD/playstation2.
    Linux kernel (2.2.21-pre1-xr7).
 
配合gcc的mips交叉编译版本进行程序测试,表现还是很不错的。原则上使用VxWorks的MIPS版本作交叉开发应该也可以,过几天试试看。:P
 
 
这是今天爬行的一个笔记,本来是为了找一些MIPS平台交叉开发的资料。所以现在把这些东东记录在此,做一个Index。
 
mips64emul: MIPS R10k/12k模拟器(推荐)
 
spim: 可在windows下运行的MIPS R3k模拟器(推荐)
 
VMips: Mips R3k模拟器
 
Qemu: MIPS R3k/ARM7|9/PowerPC模拟器
 
历史悠久的PowerPC/Sparc/MIPS模拟器,可运行Irix 5/Solaris 2等等,可惜早已停止开发。
 
Watercloud的磁芯大战,很精巧,可以作为学习或游戏。
 
如果你本来对embed或ARM体系开发有兴趣,可以看看这个国人开发的项目:
模拟了ARM7 CPU和开发版,兼容SA1100。
 
其它一些东东:
 
bochs,历史悠久的X86模拟器(比Vmware还久),原来的Plex86,可运行Windows/Linux/*BSD/DOS,最大的优点是,OpenSource,Free。
 
Vmware,可能是目前应用最广的虚拟机。
 
VirtualPC,Vmware目前和将来最强大的竞争对手。
 
twoostwo,另一个小巧的X86虚拟机,功能与vmware类似。
 
simics,目前为止模拟系统类型最多的虚拟机
支持 Alpha, ARM, IA-64, MIPS, PowerPC, SPARC V9, x86, and AMD64平台,不过它的速度可真的不是一般的慢,如果你的机器低于4个CPU,还是最好不要跑它了。

转载地址:http://ijhvi.baihongyu.com/

你可能感兴趣的文章
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Commit our mod to our own repo server
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Simple Guide to use the gdb tool in Android environment
查看>>
Netconsole to capture the log
查看>>
Build GingerBread on 32 bit machine.
查看>>
How to make SD Card world wide writable
查看>>
Detecting Memory Leaks in Kernel
查看>>
Linux initial RAM disk (initrd) overview
查看>>
Timestamping Linux kernel printk output in dmesg for fun and profit
查看>>