Перенаправление USB-устройства на виртуальную машину с помощью virt-manager не работает

Перенаправление USB-устройства на виртуальную машину с помощью virt-manager не работает

У меня есть рабочая станция Fedora, на которой запущена виртуальная машина Ubuntu 16.04 (гипервизор KVM). Я хотел бы перенаправить USB-устройство на виртуальную машину, но при выборе «Виртуальная машина | Перенаправить USB-устройство» из virt-manager я получаю следующую ошибку:

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. Обновление до Fedora 34, которая идет с spice-gtk 0.39-2

решение1

Решение для меня было создать файлы /etc/udev/rules.d/50-spice.rules, а затем добавить <allow_any>yes</allow_any>в <defaults>раздел в /usr/share/polkit-1/actions/org.spice-space.lowlevelusbaccess.policy. После изменения файл выглядит на моей машине так:

<?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

симоН

Связанный контент