virt-manager を使用して USB デバイスを仮想マシンにリダイレクトしても機能しない

virt-manager を使用して USB デバイスを仮想マシンにリダイレクトしても機能しない

Ubuntu 16.04 仮想マシン (KVM ハイパーバイザー) を実行している Fedora ワークステーションがあります。USB デバイスを VM にリダイレクトしたいのですが、virt-manager から「仮想マシン | USB デバイスのリダイレクト」を選択すると、次のエラーが表示されます。

spice-client-error-quark: Could not redirect <USB device name> at 1-4:
Error setting USB device node ACL: 'Not authorized' (0)

エラー ウィンドウには、「USB リダイレクト エラー」とだけ表示される「詳細」セクションがあります。

これまでに試してみたが、成功しなかったことは次のとおりです。

  1. 提案通りここ、次の内容の/etc/udev/rules.d/50-spice.rulesファイルを作成し、`spice`グループを作成して、このグループにユーザーを追加しました。

    SUBSYSTEM=="usb", GROUP="spice", MODE="0660"
    SUBSYSTEM=="usb_device", GROUP="spice", MODE="0660"
    
  2. spice-gtk を Fedora 33 の最新バージョン (0.39-1) から 0.38-3 にダウングレードしました。

  3. selinux を無効にしました

  4. sudo chmod 4755 /usr/libexec/spice-gtk-x86_64/spice-client-glib-usb-acl-helper

  5. spice-gtk 0.39-2 が付属する Fedora 34 にアップグレードしました

答え1

私の場合の解決策は、/etc/udev/rules.d/50-spice.rules ファイルを作成し、 /usr/share/polkit-1/actions/org.spice-space.lowlevelusbaccess.policy のセクション<allow_any>yes</allow_any>の下に追加するというものでした<defaults>。変更後、私のマシン上のファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
          "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
          "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>

  <vendor>The Spice Project</vendor>
  <vendor_url>http://spice-space.org/</vendor_url>
  <icon_name>spice</icon_name>

  <action id="org.spice-space.lowlevelusbaccess">
    <description>Low level USB device access</description>
    <message>Privileges are required for low level USB device access (for usb device pass through).</message>
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

</policyconfig>

答え2

より正確なのは次のようになります: (Linux ディストリビューションによって異なります):

ファイル: /etc/polkit-default-privs/local または /etc/polkit-default-privs.local

ファイルに次の行を追加します(またはファイル/ディレクトリを生成します):org.spice-space.lowlevelusbaccess yes:no:yes

これを実行した後: /sbin/set_polkit_default_privs

opensuse の場合はさらに次のようになります:

/etc/permissions.local ファイルに次の行を追加します: /usr/bin/spice-client-glib-usb-acl-helper root:root 4755 その後、chkstat --system --set を実行します。

シモ

関連情報