Arch Linuxを実行していますが、virt-manager
でQEMU/KVMを使用しようとして問題が発生しています。同様のgnome-boxes
を使用しているときに、同様の根本的な問題が私の問題に対処する可能性があります。
このエラーは、ドライバーopencl-amdgpu-pro-orcaに関連していました。 この回答 は、エラーの原因の背景を詳しく説明しています。これが私が問題を解決しようとした方法です:
Sudo systemctl edit libvirtd
を実行します。libvirtd
サービスのディレクトリ内に保存され、override.conf
になる一時ファイルを作成します。[Service]
Environment="LD_LIBRARY_PATH=/usr/lib"
libvirtd
をSudo systemctl restart libvirtd
で再起動します。virt-manager
を開きます。エラーは存在しないはずです。それがもともとあった質問の残りは以下に詳述されています。
Virt-managerを開くと、QEMU/KVMで接続が正常に確立されているように見え、新しいVMを作成するオプションが表示されます。そうしようとすると、次のエラーが発生します。
警告:KVMは使用できません。これは、KVMパッケージがインストールされていないか、KVMカーネルモジュールがロードされていません。仮想マシンのパフォーマンスが低下している可能性があります。
エラーを再現すると、journalctl -f
はこれを返します。
Oct 14 22:23:00 okcomputer libvirtd[35615]: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap
Oct 14 22:23:00 okcomputer libvirtd[35615]: Failed to probe capabilities for /usr/bin/qemu-system-x86_64: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap
これはかなりありふれた問題であり、私は広範囲にわたって調査してきました。私は最初にArch Wikiをフォローし、KVM、QEMU、libvirtのページをこの順番で読みました。
LC_ALL=C lscpu | grep Virtualization
出力:LC_ALL=C lscpu | grep Virtualization
仮想化サポートは私のBIOSで有効になっています-VT-xとVT-dの両方。
zgrep CONFIG_KVM /proc/config.gz
を実行すると、以下が出力されます。CONFIG_KVM_GUEST=y
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_AMD_SEV=y
CONFIG_KVM_MMU_AUDIT=y
lsmod | grep kvm
はこれを出力します:
kvm_intel 311296 0
kvm 778240 1 kvm_intel
irqbypass 16384 1 kvm
kvm_intel
がゼロに設定されているようですが、次の行の最後に記載されています。明確にするために、カーネルモジュールの動作には特に詳しくありませんが、私が知っている限り、何も返さないSudo modprobe kvm_intel
を使用してモジュールをロードすることにしました。確実にSudo modprobe kvm
を実行することは同じです。
ebtables
とdnsmasq
の両方がインストールされ、最新の状態であることを確認しました。/etc/polkit-1/rules.d/50-libvirt.rules
を作成してファイルに追加しました:/* Allow users in kvm group to manage the libvirt
daemon without authentication */
polkit.addRule(function(action, subject) {
if (action.id == "org.libvirt.unix.manage" &&
subject.isInGroup("kvm")) {
return polkit.Result.YES;
}
});
kvm
グループ(およびlibvirt
、オンラインでどこかで見たと思いますか?)にuseradd
を介して追加しました。これはgroups <username>
を実行して確認できます。wheel kvm libvirt <username>
次に、libvirtd
およびvirtlogd
サービスを有効にして開始し、再起動しました。
次に、virt-manager
に加えてvirsh
が機能するかどうかをテストしました。 virsh
は以下を出力します:
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh #
先ほど触れたように、これは一見広範囲にわたる問題ですが、多くのStack Exchangeの回答に従うと、まったく同じ結果になります。
私は以下をテストしました:
KVMは使用できません。 KVMパッケージがインストールされていないか、KVMカーネルモジュールがロードされていません
Wikiによると、私はkvm_intel
カーネルモジュールをすでにロードしています。
同じアドバイスが this answer。 で提供されています
libvirtd
サービスを有効にして開始しました。他の数え切れないほどの記事と回答が同様のアドバイスを提供しています。
ビデオ関連のパッケージが関連しているかどうかはわかりませんが、プロプライエタリドライバーは過去に問題があることが判明しています。
要求に応じて、必要な追加仕様を提供します。
あなたの問題は:opencl-amdgpu-pro-orca
。
独自のlibgbm.so.1
デフォルトのAURの最新バージョンでもその記号がありません。最初に検索パスに配置されます。
したがって、これらのドライバーを無効にするか、この機能を含む修正済み/更新済みバージョンを取得/コンパイルしようとするか、またはlibvirtd servcieのlib検索パスのみを無効にしてみます(LD_LIBRARY_PATH =/usr/lib環境変数を追加します)サービスの起動手順に)。
たとえば、そのような問題を分析する方法:
ldd /usr/lib/libvirglrenderer.so.1
ldd /usr/lib/libvirglrenderer.so.1|awk '$3!=""{print $3}'|while read file; do objdump -TC -j.text $file|grep gbm_bo_unmap && echo $file; done
LD_LIBRARY_PATH=/usr/lib ldd /usr/lib/libvirglrenderer.so.1|awk '$3!=""{print $3}'|while read file; do objdump -TC -j.text $file|grep gbm_bo_unmap && echo $file; done
あなたのjournalctl出力は以下を示します:
Oct 14 22:23:00 okcomputer libvirtd[35615]: Failed to probe capabilities for /usr/bin/qemu-system-x86_64: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing: /usr/bin/qemu-system-x86_64: symbol lookup error: /usr/lib/libvirglrenderer.so.1: undefined symbol: gbm_bo_unmap
/usr/bin/qemu-system-x86_64 -help
を実行してみてください。同じエラーが表示される可能性があります。これらのundefined symbol
エラーは、インストールされているqemuのバージョンが、ビルドされた参照ライブラリのバージョンと一致しない場合に発生します。
Archの詳細はわかりませんが、Fedoraでは関連パッケージはvirglrenderer
と呼ばれています。おそらくアップグレードする必要があります
これがKVM is not available
として現れる理由は、KVM仕事に。
まあ、私はこれを "解決"して、プロプライエタリドライバーを完全に削除しました。私はパススルーでGPUをVMに送信する予定なので、それらは不要になると思います-うまくいけば。
奇妙な状況です...