RSS2.0

VMwarePlayer で動かした Fedora 26 で KVM を動かしてみる

諸事情により VMwarePlayer で利用している Fedora 26 の中で、さらに KVM を動かせたので方法を残しておきます。
KVM を使いたい理由はマイブームの Flutter 開発で、Android エミュレーターを高速に動かすためです。Linux の Android エミュレーターって、HXAM(Intel Hardware Accelerated Execution Manager) の代わりに KVM を使うと高速化できるそうなのです。
バーチャルマシンの中でバーチャルマシンを動かすという 2 重入れ子なんてとてもパフォーマンスが出ないだろうと思っていたのですが、KVM を有効化しない場合に比べれば結構早く動くようになったので、試してみてよかったです。

前提として、物理マシンや一層めの VMwarePlayer で、HXAM や KVM を有効にしておきましょう。
物理マシンについては BIOS の設定で、VMwarePlayer についてはゲストのバーチャルマシンの CPU の設定で有効にできます。

Fedora 26 に KVM をインストールする

KVM を使うとはいえ、qemu や libvirt も組み合わせて使う必要があるので以下のパッケージを入れておきます。
# dnf install -y qemu-kvm virt-manager virt-install

更に、バーチャルマシンを入れ子にして使う場合のパフォーマンスを上げるため、カーネルモジュールの Nested KVM を有効にします。

以下のコマンドで現在の Nested KVM の設定を確認できます。
# cat /sys/module/kvm_intel/parameters/nested 
N
N(無効)になっているので、これを Y(有効)にしていきます。
設定ファイル /etc/modprobe.d/qemu-system-x86.conf に "options kvm_intel nested=1" を追記します。
設定ファイルを読み込むため、一度カーネルモジュールを外して再度読み込みます。カーネルモジュールは modprobe コマンドでロード/アンロードすることができます。
# echo "options kvm_intel nested=1" >> /etc/modprobe.d/qemu-system-x86.conf
# modprobe -r kvm_intel 
# modprobe kvm_intel 
カーネルモジュール kvm_intel を再ロードしたら、Nested KVM の設定を確認してみます。
# cat /sys/module/kvm_intel/parameters/nested 
Y
Y(有効)になりました。

virt-manager でバーチャルマシンを管理する

これは Android エミュレーターを使う話ではなく、普通にバーチャルマシンとして他の OS を使う話になります。

KVM でのバーチャルマシンの管理には、libvirt で提供される virt-manager を使うと便利です。
virt-manager を実行するユーザーを libvirt グループに所属させておくと、su 権限なしで実行できるそうなので、グループに所属させておきます。
# gpasswd -a momokan libvirt

あとは virt-manager コマンドを叩けば virt-manager を起動できます。
$ virt-manager 

Android エミュレーターを起動する

KVM を有効にして Android エミュレーターを動かすには、Android エミュレーターに KVM を有効化するオプションを渡す必要があります。
昔の Android Studio では Android エミュレーターを起動する際にこのオプションを指定できたようなのですが、現在の AVD Manager には設定項目が見当たりません。なので、一度 AVD Manager で作った Android エミュレーターを、Android SDK の emulator コマンドで起動します。
$ emulator -avd Pixel_API_27 -qemu -m 1024 -enable-kvm &
Pixel_API_27 というのが私が作った Android エミュレーターの名前です。-enable-kvm オプションを指定することで、KVM を有効にして起動することができます。
ちなみに -m オプションは端末のメモリ量(MB)です。ついでに指定しておいたもので KVM の有効化とは関係ありません。

  Linux  コメント (0) 2018/05/10 18:58:37


公開範囲:
プロフィール HN: ももかん
ゲーム作ったり雑談書いたり・・・していた時期が私にもありました。
カレンダー
<<2024, 12>>
1234567
891011121314
15161718192021
22232425262728
2930311234