1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
user-level: 0.963
graphic: 0.958
register: 0.952
semantic: 0.950
permissions: 0.949
debug: 0.946
assembly: 0.943
virtual: 0.940
PID: 0.934
performance: 0.932
device: 0.930
mistranslation: 0.927
vnc: 0.926
network: 0.922
socket: 0.919
kernel: 0.917
arm: 0.915
architecture: 0.914
boot: 0.910
ppc: 0.905
risc-v: 0.898
KVM: 0.892
files: 0.890
peripherals: 0.888
i386: 0.887
hypervisor: 0.876
VMM: 0.863
TCG: 0.855
x86: 0.834
KVM guest VM does not reattach a throughpassed USB printer from Host after switching printer off and on
Host OS: Gentoo, all packages built 2014-10-01
qemu version 2.1.0-r1
Linux kernel 3.14.14 x86_64 Intel(R) Core(TM) i3-3220T CPU @ 2.80GHz GenuineIntel GNU/Linux
Guest VM: Debian 7 (Wheezy) Linux 3.2.0 686
Start command:
/usr/bin/qemu-system-i386 -enable-kvm -name wheezy -k de -serial null -parallel null -hda /var/kvm/wheezy.kvm-img -daemonize -net nic,macaddr=02:00:00:00:01:31 -net tap,ifname=tap3,script=no,downscript=no -m 512 -pidfile /var/run/kvm/wheezy.pid -usb -usbdevice tablet -runas myuser -vnc 127.0.0.1:3 -usbdevice host:04e8:3242
Problem:
USB printer pass-through from KVM host to guest vm only works if I start the qemu kvm when the USB printer (vendor/product ID 04e8:3242) is switched on and therefore shown in lsusb on the host. Then it is available in the started VM.
But when I switch the usb printer attached to the host off, it disappears in lsusb both on the host and the VM (as expected) but when I switch the USB printer on again, it is shown on the host and also on the QEMU Monitor (Crtl Alt Shift 2 -> info usbhost), but in the VM lsusb does not show it again- so USB pass-through / hot plugging does not work. It worked with a previous Version of qemu (1.0 or something).
That is very annoying, because every time I want to print something, I need to shutdown the VM, start the printer, and then start the VM (which runs cups as printer server).
But after printing, I do not want the printer to keep running, so I switch it off.
This is a very annoying bug, and it is still not solved after six months, last versions tested with the bug:
KVM host qemu version 2.2.1
KVM host Linux version 3.14.37
Please fix this.
This is a very annoying bug, and it is still not solved after 2.7 years.
Last versions tested and affected by this bug:
KVM host qemu version 2.9.0
KVM host Linux version 4.9.6 x86_64
Please fix this.
I guess switching the printer off and on again is like attaching a new USB device to your host (so it only shows up in the host, of course, and not in the guest). Have you already tried to do a new "device_add usb-host,..." in the QEMU monitor to attach it to the guest again while the VM is running?
Thanks Thomas for Your suggestion. Unfortunately I cannot achieve the reconnection:
KVM runs with following parameters:
-usb -device usb-host,vendorid=0x04e8,productid=0x3242,id=drucker -monitor unix:qemu-monitor-socket,server,nowait
With the Unix socket, I can now pipe commands to the qemu monitor. This info command works:
echo 'info status' | socat - unix-connect:/qemu-monitor-socket
QEMU 4.2.0 monitor - type 'help' for more information
(qemu) info status
VM status: running
What I have is this:
- disconnect USB printer (Product Samsung ML-1510_700)
- stop KVM
- connect USB printer
- start KVM
echo 'info usb' | socat - unix-connect:/qemu-monitor-socket
QEMU 4.2.0 monitor - type 'help' for more information
(qemu) info usb
Device 0.1, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet
Device 0.2, Port 2, Speed 12 Mb/s, Product QEMU USB Hub
Device 0.3, Port 2.1, Speed 12 Mb/s, Product Samsung ML-1510_700, ID: drucker
Printer works.
- disconnect printer
echo 'info usb' | socat - unix-connect:/qemu-monitor-socket
QEMU 4.2.0 monitor - type 'help' for more information
(qemu) info usb
Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet
Device 0.3, Port 2, Speed 12 Mb/s, Product QEMU USB Hub
Device 0.4, Port 2.1, Speed 12 Mb/s, Product Samsung ML-1510_700, ID: drucker
USB Info still shows the printer, allthough it is disconnected.
Remove device from KVM:
echo 'device_del drucker' | socat - unix-connect:/qemu-monitor-socket
Printer is removed from the device list:
info usbdrucker' | socat - unix-connect:/qemu-monitor-socket
QEMU 4.2.0 monitor - type 'help' for more information
(qemu) info usb
Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet
Device 0.3, Port 2, Speed 12 Mb/s, Product QEMU USB Hub
-connect printer
printer is not shown:
echo 'info usb' | socat - unix-connect:/qemu-monitor-socket
QEMU 4.2.0 monitor - type 'help' for more information
(qemu) info usb
Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet
Device 0.3, Port 2, Speed 12 Mb/s, Product QEMU USB Hub
Add printer device:
echo 'device_add usb-host,vendorid=0x04e8,productid=0x3242,id=drucker ' | socat - unix-connect:/qemu-monitor-socket
QEMU 4.2.0 monitor - type 'help' for more information
(qemu) device_add usb-host,vendorid=0x04e8,productid=0x3242,id=drucker
echo 'info usb' | socat - unix-connect:/qemu-monitor-socket
QEMU 4.2.0 monitor - type 'help' for more information
(qemu) info usb
Device 0.2, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet
Device 0.3, Port 2, Speed 12 Mb/s, Product QEMU USB Hub
Device 0.0, Port 2.2, Speed 1.5 Mb/s, Product USB Host Device, ID: drucker
Device is shown, but not like when KVM is started with connected printer: Speed only 1.5 Mb/s, no vendor and product info.
Printer does _not_ work.
This is an automated cleanup. This bug report has been moved to QEMU's
new bug tracker on gitlab.com and thus gets marked as 'expired' now.
Please continue with the discussion here:
https://gitlab.com/qemu-project/qemu/-/issues/110
|