Redirecionar o dispositivo USB para uma máquina virtual com o virt-manager não funciona

Redirecionar o dispositivo USB para uma máquina virtual com o virt-manager não funciona

Eu tenho uma estação de trabalho Fedora executando uma máquina virtual Ubuntu 16.04 (hipervisor KVM). Gostaria de redirecionar um dispositivo USB para a VM, mas ao selecionar "Máquina Virtual | Redirecionar dispositivo USB" no virt-manager, recebo o seguinte erro:

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

A janela de erro possui uma seção "Detalhes" que diz apenas "Erro de redirecionamento de USB".

Aqui está o que tentei até agora, sem sucesso:

  1. Como sugeridoaqui, criei um arquivo /etc/udev/rules.d/50-spice.rules com o seguinte conteúdo, criei um grupo `spice` e adicionei meu usuário a este grupo

    SUBSYSTEM=="usb", GROUP="spice", MODE="0660"
    SUBSYSTEM=="usb_device", GROUP="spice", MODE="0660"
    
  2. Spice-gtk rebaixado da versão mais recente do Fedora 33 (0.39-1) para 0.38-3.

  3. Selinux desativado

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

  5. Atualizado para o Fedora 34 que vem com o spice-gtk 0.39-2

Responder1

A solução para mim foi criar os arquivos /etc/udev/rules.d/50-spice.rules e adicioná-los <allow_any>yes</allow_any>na <defaults>seção /usr/share/polkit-1/actions/org.spice-space.lowlevelusbaccess. política. Após a modificação, o arquivo fica assim na minha máquina:

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

Responder2

Mais correto deveria ser: (depende da distribuição do Linux):

arquivo: /etc/polkit-default-privs/local ou /etc/polkit-default-privs.local

adicione ao arquivo a linha (ou gere o arquivo/diretório): org.spice-space.lowlevelusbaccess yes:no:yes

após esta execução: /sbin/set_polkit_default_privs

se opensuse então, além disso:

no arquivo /etc/permissions.local adicione a linha: /usr/bin/spice-client-glib-usb-acl-helper root:root 4755 após esta execução: chkstat --system --set

simoN

informação relacionada