Qemu是一個開源虛擬機,Qemu虛擬機和vmware和virtualbox的虛擬原理是不同的,Qemu能虛擬不同CPU的運行,而vmware和virtualbox對此無能為力,但也有Android的修改版能在x86機器上運行的那另當別論。Android emulator就是基於Qemu開發的。Debian也出了它自己的ARM版本,以后ubuntu也可能會出它的移動版本,也能用相似辦法安裝它的虛擬機版本。但由於Qemu需要把客戶機的機器語言翻譯成宿主機的機器語言,速度就非常的慢,Android SDK的模擬器出了名的慢就是這個原因。
Debian ARMEL版是Debian新出的ARM小端存儲( little-endian)系統。以前的ARM大端存儲(big-endian)系統已經被debian不贊成使用了。最新的arm處理器已經能在小端模式和大端模式之間切換,這可能就是debian棄用ARM大端存儲的原因,你也能通過這個地址http://people.debian.org/~aurel32/qemu/arm/獲得老式的ARM大端存儲已安裝好了的Qemu映像。
我的宿主機是Chakra,其它linux應該能用相同方法完成,ubuntu有Qemu的安裝包,第一步就省了。
1.先在這個地方下載它的源代碼:http://wiki.qemu.org/Download windows有專門安裝包,這里就不細說了。然后:
$make clean
$./configure
$make
$sudo make install
這個工作應該能在半小時以內完成。
如果你在之后的運行中出現:
oss: Could not initialize DAC oss: Failed to open `/dev/dsp' oss: Reason: No such file or directory oss: Could not initialize DAC oss: Failed to open `/dev/dsp' oss: Reason: No such file or directory audio: Failed to create voice `lmxxx.out'
錯誤的話,這里就需要$./configure --audio-drv-list=alsa 之后重新編譯。
在以后的運行過程中可能還需要設置環境變量:export QEMU_AUDIO_DRV=alsa
2.下載debian arm版的網絡安裝加載映像:
$ wget http://ftp.nl.debian.org/debian-archive/debian/dists/lenny/main/installer-armel/current/images/versatile/netboot/initrd.gz
$ wget http://ftp.nl.debian.org/debian-archive/debian/dists/lenny/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.26-2-versatile
3.創建你的磁盤映像,但使用raw格式,安裝完成后,你能直接mount訪問里面的文件。
$ qemu-img create -f raw hda.img 4G
如果你要安裝圖形界面,就需要映像大些,如果不安裝圖形界面,1G就足夠了。
4.啟動QEmu安裝:
$qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -hda hda.img -initrd initrd.gz -append "root=/dev/ram" -m 256
安裝過程中注意不要選中國鏡像,中國鏡像沒有armel版的,最好選日本鏡像,很近速度快。
Debian的特點是安裝包很大,請謹慎選擇。我的意見是不選任何一個軟件集,現在已經有最基本的軟件了,安裝完成后自己通過apt-get安裝軟件包。
安裝的最后會提示你,“未安裝啟動引導器”不用操心這一點,我們將在下一步用Qemu啟動。
5.獲取啟動引導:
$ sudo mkdir akann
$ sudo mount -o loop,offset=32256 hda.img akann
$ sudo cp akann/boot/initrd.img-2.6.26-2-versatile .
$ sudo umount akann
如果出現:
“mount: 您必須指定文件系統類型”錯誤的話,可以使用以下命令:
sudo losetup /dev/loop0 hda.img sudo kpartx -a /dev/loop0 sudo mount /dev/mapper/loop0p1 akann cp akann/boot/initrd.img-2.6.26-2-versatile . sudo umount akann
6.然后運行:
qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -initrd initrd.img-2.6.26-2-versatile -hda hda.img -append "root=/dev/sda1"
當你的鼠標焦點在虛擬機屏幕內要想跳出來,用“Ctrl+Alt"鍵。
Qemu的全屏模式開關是”Ctrl+Alt+f".
7.修改全局默認語言,如果不修改,字符界面下將出現亂碼。
#locale -a
查看現在可用的語言。如果沒有英語,必須修改/etc/locale.gen文件,把en_US.UTF8 UTF8前面的#去掉。然后:
#locale-gen
修改/etc/default/locale文件,修改為
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
重啟動。
(注:這里先安裝中文,再改回英文是純Geek行為,你完全可以在開始就安裝為英文。)
8.安裝圖形界面:
以root用戶登錄
#apt-get install xorg
配置X圖形界面使用X -configure失敗,於是只有手工修改xorg.conf文件(這一點國內外google遍了都找不到方法,即使按照Debian的預安裝桌面都無法工作,只能自己找,實驗了很多次終於成功),把最后的幾行修改為:
Section "Device"
Identifier "device0"
Driver "fbdev"
Option "UseFBDev" "true"
EndSection
Section "Monitor"
Identifier "monitor0"
HorizSync 20-50
VertRefresh 40-80
EndSection
Section "Screen"
Identifier "screen0"
Device "device0"
Monitor "monitor0"
DefaultDepth 16
SubSection "Display"
Modes "1024x768"
Depth 16
EndSubSection
EndSection
最新的debian6修改xorg.conf無用,需要修改/usr/share/X11/xorg.conf.d目錄下的任意xxx.conf文件,添加以上幾行即可修改分辨率,但我只能調到
800x600,1024x768設置失敗。
窗口管理器可選安裝xfce:
#aptitude install xfce4
一些有用的xfce工具:
#aptitude install xfce4-goodies
gdm,kdm,xdm運行xfce會話即可,startx需要對~/.xinitrc增加一句:(當我安裝好xfce時這一步安裝已自動完成了)
exec ck-launch-session startxfce4
然后執行:
#startx
安裝后的效果:
另外窗口管理器我選用了輕量級的fluxbox:
#apt-get install fluxbox
字體選用ttf-wqy-zenhei:
#apt-get install ttf-wqy-zenhei
瀏覽器:
#apt-get install iceweasel
效果圖:
debian的arm版不是移動設備系統,並沒有對移動設備作專門設計,目前的這個Debian的ARM版應該是以ARM服務器和嵌入設備作為目標市場的。因為ARM芯片的節能特性以及價格便宜造就了以后大型數據中心的服務器更有可能采用ARM芯片,據載Debian的ARM版已經上升到了Debian各種分發的第三位。實際上Debian的這個ARM版作一定修改,也能適用於移動設備。
在Qemu上安裝的這個Debian ARMEL版適用於在它上面調試硬件相關程序。