Qemu libusb всегда перестал работать с “Операцией, не разрешенной”

Я пытаюсь пройти через USB-устройства через qemu KVM и получаю следующую ошибку:

libusb: ошибка [_get_usbfs_fd] libusb не могла открыть USB-устройство/dev/bus/usb/001/009: Операция, не разрешенная

Я сделал следующий udev (/etc/udev/rules.d/50-qemuusb.rules) правилом:

ПОДСИСТЕМА == "usb|usb_device", ATTRS {idVendor} == "04f2", РЕЖИМ = "0666"

Сначала я думал, что это не работало правильно, но когда я проверил, это, конечно, было. ls-l в/dev/bus/usb/001 сообщает об этом:

$ lmfaoown@Lmfaoown:/dev/bus/usb/001 ls-l
общий 0
crw-rw-r - 1 корень базируется 189, 0 17 сентября 18:33 001
crw-rw-r - 1 корень базируется 189, 1 сентября 17 18:33 002
crw-rw-r - 1 корень базируется 189, 2 сентября 17 18:33 003
crw-rw-r - 1 корень базируется 189, 3 сентября 17 18:33 004
crw-rw-r - 1 корень базируется 189, 4 сентября 17 18:33 005
crw-rw-r - 1 корень базируется 189, 6 сентября 17 18:33 007
корень crw-rw-rw-1 базируется 189, 8 сентября 17 18:42 009

Вы видите, что для 009 у всех есть R/W, все же он все еще бросает ошибку.

Программа, которая регистрирует эту ошибку, является QEMU в libvirt (/vars/log/libvirt/qemu).

Кто-либо знает, делаю ли я что-то не так со своими полномочиями? Я попробовал chowning USB к dialout с моим пользователем, являющимся участником, включая libvirt-qemu быть членом его, я попробовал установку MODE к 777, все с тем же результатом. Я действительно знаю, что udev имеет некоторый эффект как, после того как я удаляю правило, QEMU бросает это:

libusb:error [op_open] libusb не мог открыть USB-устройство/dev/bus/usb/001/003: Разрешение отклонено.
libusb:error [op_open] libusb требует доступа для записи к узлам USB-устройства.

0
задан 17 September 2018 в 17:03

1 ответ

Я видел такие проблемы, и они часто происходят из-за apparmor отказов. Вы могли бы сообщить о своем dmesg здесь, если и который 'Отклоняет Apparmor´, он содержит для соответствия им.

Другие и я внесли несколько изменений в профиль apparmor в восходящем направлении так, чтобы работы по умолчанию, но это только доступно в более поздних версиях.

Ниже Вы найдете новый раздел об этом и фиксации в восходящем потоке libvirt.

2df320609ac # For hostdev access. The actual devices will be added dynamically
2df320609ac /sys/bus/usb/devices/ r,
f88a3d9b0c7 /sys/devices/**/usb[0-9]*/** r,
bf3a4140877 # libusb needs udev data about usb devices (~equal to content of lsusb -v)
bf3a4140877 /run/udev/data/c16[6,7]* r,
bf3a4140877 /run/udev/data/c18[0,8,9]* r,
d4d50bcc799 /run/udev/data/+usb* r,

Можно добавить, в чем Вы нуждаетесь к Вашему /etc/apparmor.d/abstractions/libvirt-qemu вернуть это к Вашей установке.

Существует много других изменений, которые влияют на динамическое создание правил для Вашего гостя. Таким образом, если вышеупомянутое не достаточно, Вам, возможно, придется попробовать более новую версию libvirt/qemu, что означает более новый релиз Ubuntu, если это получает Вас движение.

P.S. Я регистрирую это как ответ, даже Вы там - возможности, это не Ваш случай. Но признаки, у Вас есть соответствие точно, так по крайней мере, другие, могли бы найти ответ, в котором они нуждаются здесь.

0
ответ дан 27 October 2019 в 23:08

Другие вопросы по тегам:

Похожие вопросы: