Ideal Reality

興味の赴くままに

virt-manager(libvirt)で自分でビルドしたQEMUを使用する

僕のサーバーではKVM上のWindows用にIntel 760p SSDを積んでいるのですが、SSDのバグがあるみたいでそのままではPCIパススルーすることができず、QEMUのソースコードを書き換えなきゃいけなかった。

なので、QEMUのビルド、インストール、virt-manager経由での実行までの方法をここに残しておきます。

SELinux有効化されたCentOS 8上で行っていますが、他のLinuxでも同じようにできると思います。

Contents
スポンサーリンク

必要なパッケージ

"Development Tools"はもちろん必要です。あとはpython・gtk2-devel・spice-server-devel・usbredir-develが必要です。

なので、CentOS 8だと

sudo dnf install python36
sudo dnf install gtk2-devel
sudo dnf -–enablerepo=PowerTools install spice-server-devel usbredir-devel

となります。

QEMU

ダウンロード

Download QEMU - QEMU

ここから最新版のソースコードをダウンロードして使います。

現在の最新版は4.2.0であり、ダウンロードリンクがhttps://download.qemu.org/qemu-4.2.0.tar.xzなので、

curl -O https://download.qemu.org/qemu-4.2.0.tar.xz
tar xvJf qemu-4.2.0.tar.xz
cd qemu-4.2.0

これでダウンロードできます。wgetはcurl -Oで代用できるので知っておくと便利。

ビルド・インストール

./configure --target-list=x86_64-softmmu --enable-kvm --enable-spice --enable-usb-redir
make -j4
sudo make install

今回KVMで使うだけなので、targetをx86_64に限定しました。spiceはvirt-manager上での画面表示に、usb-redirは仮想マシンでUSBを使いたい時に必要となります。

SELinux

SELinuxを無効化してる場合はしなくていいです。

/usr/local/bin/qemu-system-x86_64にインストールされるのですが、このファイルがSELinuxによりlibvirtからの実行をブロックされてしまうのでコンテキストを変更します。

sudo chcon -t qemu_exec_t /usr/local/bin/qemu-system-x86_64
スポンサーリンク

virt-manager

CentOSの標準ではEmulatorは/usr/libexec/qemu-kvmになっています。これを変更するにはXMLを直接書き換える必要があります。virt-managerでXML編集できない場合は virsh edit [仮想マシン名] と実行するとXMLを編集できます。

まずXMLの編集を有効にして、

あとは、XMLのemulatorの部分を/usr/local/bin/qemu-system-x86_64に書き換えてApplyしてください。

あと、rhelと書いてあるmachineはCentOS標準のものでしか使えないので変更する必要があります。

例えば、上の画像のような状態ならば、ここをq35に変更してApplyすればq35の中で使える最新版が選択されます。

その他、ここに使えるマシン一覧は/usr/local/bin/qemu-system-x86_64 -M helpで見れるので、適宜この中から選んでください。

Emulatorの欄が変わったはず。あとは起動できれば完了です。

スポンサーリンク

コメント

投稿されたコメントはありません

名前

メールアドレス(任意)

コメント

関連する投稿
NO IMAGE

QEMU(KVM)でNVMe SSDをPCIパススルーして使用する

NO IMAGE

Raspberry PiでKVMを動かす (旧版)

OVMFをビルドする

Raspberry PiでKVMを動かす

NO IMAGE

QEMUでブリッジネットワークを使用する