作者 主題: VBox+Qemu 原來可以這樣玩 XD  (閱讀 6414 次)

0 會員 與 1 訪客 正在閱讀本文。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
VBox+Qemu 原來可以這樣玩 XD
« 於: 2011-03-11 23:31 »
今天在建立玩 embedded 的環境
本來是要在平常工作用的系統安裝 qemu
突然想到,能否在 vbox 的 vm 裡安裝呢?
想像中似乎..應該是不行吧

不過想歸想,要試了才知道啊

host: Ubuntu 10.04 x64
vbox: 4.04
guest: ubuntu 10.04 x86


在 guest 的 ubuntu 安裝 qemu

$ sudo apt-get install qemu qemu-kvm-extras

要跑 qemu-system-arm 的話要裝 qemu-kvm-extras

至少安裝過程都順利,沒出現任何錯誤或警告訊息
然後直接抓 qemu 官網提供的測試檔來掛載

http://wiki.qemu.org/download/arm-test-0.2.tar.gz

$ qemu-system-arm -m 128 -kernel arm-test/zImage.integrator

測試結果如附圖

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: VBox+Qemu 原來可以這樣玩 XD
« 回覆 #1 於: 2011-03-12 23:37 »
Part II

繼續測試 vbox 裡的 qemu

$ mkdir arm
$ cd arm

建立一顆 20GB 的虛擬硬碟

$ qemu-img create -f qcow debian.hda.img 20G

然後到 debian 抓最新預先打包好的 kernel 與 initrd

$ wget http://ftp.de.debian.org/debian/dists/Debian6.0/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.32-5-versatile
$ wget http://ftp.de.debian.org/debian/dists/Debian6.0/main/installer-armel/current/images/versatile/netboot/initrd.gz

$ qemu-system-arm -m 128 -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.gz \
-hda debian.hda.img -append "root=/dev/ram"

開機後會進入 debian 的安裝程式, 然後就開始安裝嘍(如附圖1)  :D
如果不想自己安裝, 也可以直接抓已安裝好的虛擬硬碟來掛載

(http://people.debian.org/~aurel32/qemu/armel/)
$ wget http://people.debian.org/~aurel32/qemu/armel/initrd.img-2.6.32-5-versatile
$ wget http://people.debian.org/~aurel32/qemu/armel/vmlinuz-2.6.32-5-versatile
$ wget http://people.debian.org/~aurel32/qemu/armel/debian_lenny_armel_standard.qcow2
$
$ qemu-system-arm -m 128 -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile \
-hda debian_lenny_armel_standard.qcow2 -append "root=/dev/sda1"

開機後會進入登入畫面, 可以用 user/user 登入, 如附圖2

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17466
    • 檢視個人資料
    • http://www.study-area.org
回覆: VBox+Qemu 原來可以這樣玩 XD
« 回覆 #2 於: 2011-03-13 09:08 »
讚! 

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: VBox+Qemu 原來可以這樣玩 XD
« 回覆 #3 於: 2011-03-13 10:08 »
早上開機時發現 vbox 的 vm 開不了  :o

vbox 顯示的訊息:

引用
AMD-V is being used by another hypervisor. (VERR_SVM_IN_USE).

VirtualBox can't enable the AMD-V extension.
Please disable the KVM kernel extension,
recompile your kernel and reboot (VERR_SVM_IN_USE).

因為這兩天我也有在 host 安裝 qemu, 所以嘍~
解掉 host 的 qemu 然後重新開機
有使用到 AMD-V 的 vm 就能正常開啟了
檢查一下 guest ubuntu 10.04 x86 + qemu 重開機看看
還好 vbox guest additional 並不會跟 qemu 有衝突
qemu-system-arm 能正常啟動開機  ;D

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: VBox+Qemu 原來可以這樣玩 XD
« 回覆 #4 於: 2011-03-14 09:30 »
真奇怪~ 昨天解掉 qemu 後就可以正常啟動 vbox 的 vm

$ sudo apt-get remove qemu qemu-kvm qemu-kvm-extras

但是今天開機後要啟用 vm, 又跳出同樣訊息

$ dpkg --get-selections | grep kvm
qemu-kvm               deinstall

確實有解安裝了耶  ::)
爬了一下 google, 用 lsmod 看一下

$ lsmod | grep kvm
kvm_amd                37070  0
kvm                   286367  1 kvm_amd

果然還有這東西沒清掉

$ modprobe -r kvm_amd
FATAL: Error removing kvm_amd (/lib/modules/2.6.32-29-generic/kernel/arch/x86/kvm/kvm-amd.ko): Operation not permitted
$ sudo modprobe -r kvm_amd
$ lsmod | grep kvm
$

這樣應該就 ok 了  :D :D

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: VBox+Qemu 原來可以這樣玩 XD
« 回覆 #5 於: 2011-03-15 21:01 »
試了一下在 qemu 開 gnome 桌面, 我是直接下載已預先安裝好的 debian 來掛載

http://people.debian.org/~aurel32/qemu/armel/debian_squeeze_armel_desktop.qcow2

然後用上面下載頁下面說的方式來開機

$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile \
-initrd initrd.img-2.6.32-5-versatile -hda debian_squeeze_armel_desktop.qcow2 \
-append "root=/dev/sda1"

不過會發生 Segmentation fault 的錯誤
必需要加 -m 指定使用記憶體大小才能啟動
啟動後如附圖, 雖然可以進入桌面
不過開機時間大概要將5分鐘以上才能進入桌面
桌面滑鼠也無法正常使用, 而且反應非常的 lag XD
host 的 cpu 使用量一直都在 120% 以上
我的 host 是 amd x4, vbox guest 設 2 核 ram 1G
在桌面用滑鼠根本就無去操作
所以還不知道能否作什麼設定來改善這些現象  :D

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: VBox+Qemu 原來可以這樣玩 XD
« 回覆 #6 於: 2011-03-17 20:38 »
想說掛 kvm_amd 看看能改善一些效能

$ sudo /sbin/modprobe kvm_amd
FATAL: Error inserting kvm_amd (/lib/modules/2.6.32-29-generic/kernel/arch/x86/kvm/kvm-amd.ko): Operation not supported
$ tail /var/log/syslog
.....
Mar 17 20:35:36 uX86 kernel: [ 4753.801940] has_svm: can't execute cpuid_8000000a
Mar 17 20:35:36 uX86 kernel: [ 4753.801943] kvm: no hardware support

很可惜, vbox 裡的環境不支援 XD