libvirt エミュレータの変更: 権限が拒否されました。

libvirt エミュレータの変更: 権限が拒否されました。

コンパイルされたQemuバイナリを使用しようとしています。これ私のオペレーティングシステムであるDebianに付属しているQemuのバージョンがSpiceのOpenGLアクセラレーションをサポートしていないようです。正常にコンパイルした後、<emulator>タグを/usr/local/binにある新しいQemu実行可能ファイルのパスに設定しようとしましたが、次のエラーが発生しました。

error: internal error: Failed to probe QEMU binary with QMP: libvirt: error : cannot execute binary /usr/local/bin/qemu-2.12.1/x86_64-softmmu/qemu-system-x86_64: Permission denied

私のvirsh編集設定ファイルの「エミュレータ」セクションは次のとおりです。

<emulator>/usr/bin/kvm</emulator>

ファイルの権限と所有権を変更して実行が許可されているかどうかを確認しましたが、chmod a+x何も機能しないようです。

QemuのOpenGLアクセラレーションを使用する他の方法があれば教えてください。

私は現在、統合GPUを使用しているIntel Core i5-8400で、「テスト」リポジトリのvirt-manager、libvirt-daemon、およびqemu-kvmと一緒にDebian Stretchを使用しています。 「libvirglrenderer」を介してOpenGL 3Dアクセラレーションを使用できるようにQemuをコンパイルしました。

ベストアンサー1

Debian Busterで同じ問題を解決しました。 Apparmorは私のコンパイルされたqemuバイナリへのアクセスを拒否します。次のコマンドを使用して、システムで衣服が有効になっていることを確認できます。

sudo aa-status

出力に次の行が含まれている場合、衣類は確実に有効になり、コンパイルされたバイナリへのアクセスを許可するように設定する必要があります。

...
22 profiles are in enforce mode.
...
   /usr/sbin/libvirtd
...
3 processes are in enforce mode.
   /usr/sbin/libvirtd (1098)
...

qemu バイナリを実行するには、libvirt にアパレル権限を追加します。たとえば、/etc/apparmor.d/usr.sbin.libvirtdconfig.txtの最後のシンボルの前に次の行を置くだけです。'}'設定が終わったら、次のようになります。

# ... skipped lines
  /usr/bin/kvm rmix,
  /usr/local/bin/qemu-2.12.1/x86_64-softmmu/qemu-system-x86_64 rmix,
}

おそらく、qemuに同じ服装権限を追加する必要があります/etc/apparmor.d/abstractions/libvirt-qemu

  /usr/bin/kvm rmix,
  /usr/local/bin/qemu-2.12.1/x86_64-softmmu/qemu-system-x86_64 rmix,

reload apparmorルールセットを使用できますsudo systemctl reload apparmor。衣類ルールの構文の説明(例:ここ

おすすめ記事