Здравствуйте уважаемые! Ubuntu server + KVM
Гостевая система windows 7
Подключение usb порта на лету работает так:
#virsh attach-device PRINT-SERVER hostdev-04b8:002a.xml
Содержимое файла hostdev-03f0:0212.xml
<hostdev mode='subsystem' type='usb' managed='yes'>
<source startupPolicy='optional'>
<vendor id='0x04b8'/>
<product id='0x002a'/>
</source>
</hostdev>
Отключение соответственно делается командой …detauch…
Теперь сам вопрос. Как автоматизировать процесс, чтобы при включении принтера usb порт подключался в гостевой системе автоматически, и при выключении принтера отключался.
Я нагуглил, что это можно сделать через правило UDEV Таким образом:
ACTION=="add", \
SUBSYSTEM=="usb", \
ENV{ID_VENDOR_ID}=="03f0", \
ENV{ID_MODEL_ID}=="0212", \
RUN+="/usr/bin/virsh attach-device PRINT-SERVER /etc/libvirt/qemu/hostdev-04b8:002a.xml"
ACTION=="remove", \
SUBSYSTEM=="usb", \
ENV{ID_VENDOR_ID}=="03f0", \
ENV{ID_MODEL_ID}=="0212", \
RUN+="/usr/bin/virsh detach-device PRINT-SERVER /etc/libvirt/qemu/hostdev-04b8:002a.xml"
Таким образом, при первом включении и выключении принтера все также работает, но при последующем включении перестает работать.
Вот выхлоп syslog
May 10 22:52:41 HOME-SERVER kernel: [ 6342.128544] usb 2-4: new high-speed USB device number 8 using ehci-pci
May 10 22:52:41 HOME-SERVER kernel: [ 6342.290003] usb 2-4: New USB device found, idVendor=04b8, idProduct=002a
May 10 22:52:41 HOME-SERVER kernel: [ 6342.290010] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
May 10 22:52:41 HOME-SERVER kernel: [ 6342.290015] usb 2-4: Product: USB2.0 Printer (Hi-speed)
May 10 22:52:41 HOME-SERVER kernel: [ 6342.290019] usb 2-4: Manufacturer: EPSON
May 10 22:52:41 HOME-SERVER kernel: [ 6342.290022] usb 2-4: SerialNumber: 504B4E4B3231363909
May 10 22:52:41 HOME-SERVER kernel: [ 6342.294383] usblp 2-4:1.0: usblp1: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x04B8 pid 0x002A
May 10 22:52:42 HOME-SERVER kernel: [ 6342.602030] audit: type=1400 audit(1557514362.181:45): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="libvirt-ed50980e-cb12-46a6-a7ed-a0199a862f06" pid=3652 comm="apparmor_parser"
May 10 22:52:42 HOME-SERVER libvirtd[1630]: 2019-05-10 18:52:42.190+0000: 1757: error : qemuMonitorJSONCheckError:392 : internal error: unable to execute QEMU command 'device_add': failed to find host usb device 2:8
May 10 22:52:42 HOME-SERVER kernel: [ 6342.892272] audit: type=1400 audit(1557514362.472:46): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="libvirt-ed50980e-cb12-46a6-a7ed-a0199a862f06" pid=3655 comm="apparmor_parser"
May 10 22:52:42 HOME-SERVER systemd-udevd[3645]: Process '/usr/bin/virsh attach-device PRINT-SERVER /etc/libvirt/qemu/hostdev-04b8:002a.xml' failed with exit code 1.
В конце появляется ошибка failed with exit code 1. Помогите выявить проблему. Я не такой уж спец. Разбираюсь по мере сил.