KVM & libvirtの環境にvirtualbox-oseをインストールしてみた。

ちょいとPalm web OSを試したくなったので、Palm webOS SDKをSidの64bit環境にインストールしてみた。もともとKVM & libvirt & virt-managerを使用している環境なのだが、ここにvirtualbox-oseをインストールするとちょいと色々変わる。

そもそもKVMと共存できない。

palm-emulatorコマンドで、virtualboxを起動した後、kvmのカーネルモジュールがロードされた状態のまま、KVMゲストを起動させると、以下のようにCall Traceを吐く。

 kernel:[ 5126.608323] Call Trace:

Message from syslogd@host at Aug 26 23:26:47 ...
 kernel:[ 5126.608367] Code: 00 0f 20 d8 4a 89 84 02 80 06 00 00 0f 20 e0 4a 89 84 02 88 06 00
00 48 83 e0 70 42 8b 8c 02 68 0a 00 00 23 4a 20 09 c8 0b 42 24 <0Domain sid-squeeze-couchdb
started3 e0 04 0d 3b 00 00 80 0f 22

まぁ、それでもKVMは動くんだが。その代わり、VirtualBoxを既に起動中だったらVirtualBoxのゲスト、つまりpalm emulutorは止まってしまう。これを吐かせないようにするには、kvmのカーネルモジュールをアンロードしておく。

$ sudo /etc/init.d/qemu-kvm stop
Succesfully unloaded kvm module kvm_intel.

virshの挙動が変わる。

今までのように

$ sudo virsh list --all

と実行するのではKVMの定義が表示されなくなる。sudoをつけずにvirsh list –allを実行すると、VirtualBoxで使うwebOS SDKの仮想マシンの定義が表示される。

$ virsh list --all

 Id Name                 State
----------------------------------
  1 SDK 1.4.5.465 (320x480) running

じゃあどうするかと言うと、対話モードでqemu:///systemに接続すれば使える。

$ sudo virsh
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # connect qemu:///system

virsh # list --all
 Id Name                 State
----------------------------------
  - sid-squeeze-couchdb  shut off
  - vm-fedora12          shut off
  - vm-squeez-sid_sysvinit_test shut off
  - vm-squeeze_sid-sysvinit2 shut off
  - vm-ubuntu9.10        shut off

ちなみに、virt-managerではqemu:///systemへの接続がデフォルトのままなので、普通に起動できる。

palm-novacomが動かない。

起動スクリプトがupstart用なので、sysvinitからupstartに切り替えよう。

palm-sdkはアンインストールできない。

64bit環境にSDKをインストールするには、 Dev Guide にあるとおり、palm-sdkとpalm-novacomを–force-architectureオプションをつけてdpkgコマンドでインストールする 1 のだが、palm-sdkはapt-get remove, dpkg -eでもアンインストールできない、という問題にハマる。この問題はワシは未解決。

1

palm-novacomはamd64用だからこのオプション要らんと想うのだが。