Ошибка в QEMU при использовании evdev passthrough: No such file or directory
- AJIekceu4
- 01.08.2020
- 3 457
- 3
- 1
- 0
- 1
- Содержание статьи
Вступление
В данной статье рассмотрим как можно исправить ошибку, возникающую при использовании evdev passthrough, который позволяет использовать одну клавиатуру и/или мышку для доступа как к хосту, так и к виртуальной машине без установки какого-либо стороннего софта, вроде synergy.
Выглядит ошибка таким вот образом:
Error starting domain: internal error: process exited while connecting to monitor: 2020-08-01T16:54:12.576122Z qemu-system-x86_64: -object input-linux,id=kbd1,evdev=/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd,grab_all=on,repeat=on: Could not open '/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd': No such file or directory
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 111, in tmpcb
callback(*args, **kwargs)
File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 66, in newfn
ret = fn(self, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/object/domain.py", line 1279, in startup
self._backend.create()
File "/usr/lib/python3/dist-packages/libvirt.py", line 1234, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirt.libvirtError: internal error: process exited while connecting to monitor: 2020-08-01T16:54:12.576122Z qemu-system-x86_64: -object input-linux,id=kbd1,evdev=/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd,grab_all=on,repeat=on: Could not open '/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd': No such file or directory
Исправляем ошибку
Для того, чтобы исправить эту ошибку, необходимо внести следующие изменения в файл настроек qemu. На примере Linux Mint, мы будем вносить изменения в файл /etc/libvirt/qemu.conf
Открываем данный файл любым текстовым редактором и в самый низ добавляем такие вот настройки:
cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc","/dev/hpet",
"/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd",
"/dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-mouse"
]
/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd
и /dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-mouse
- это в нашем примере клавиатура и мышка соотвественно, которые уже указаны в настройках виртуальной машины ранее (для активации evdev passthrough). После внесения этих правок в конфиг, необходимо выключить виртуальные машины и перезапустить службу libvirtd
, сделать это можно командой:
sudo service libvirtd restart
После этого можно попробовать запустить виртуальную машину и надеяться, что ошибка уйдет.
Добавить комментарий