Re: Print Queues and KVM/virt-manager virtual Windows machines

2018-06-13 Thread Stefan Monnier
> Which strikes me as a bug, not a feature. I'm not familiar with the USB
> specification but it seems to me that sharing USB ports, speakers,
> microphones, network ports, etc. should all be possible. While one host, the
> hypervisor, may control the actual port, others should be able to
> communicate with it via a virtual port that the hypervisor provides.

Virtualization can only be done based on higher-level knowledge of
the protocol.

But yes: you should be able to "pass" this particular USB device to one
of your virtual machines.

> The problem there is that many (all?) printer manufacturers provide Windows
> programs that offer more features than the CUPS drivers provide.

And these will typically use ad-hoc proprietary protocols :-(


Stefan



Re: Print Queues and KVM/virt-manager virtual Windows machines

2018-06-11 Thread Gary Dale

On 2018-06-10 04:48 PM, Reco wrote:

Hi.

On Sun, Jun 10, 2018 at 03:21:45PM -0400, Gary Dale wrote:

I have printers attached via USB to my Debian/Stretch server and also one
that also has an ethernet connection. The problem I'm having is that the
virtual machines seem to grab exclusive access to the printers, so I can
print from my Linux (Debian/Buster) workstation.

QEMU USB redirection (whenever native QEMU or that impressive trick with
usbip virt-manager does) is implemented that way. You can provide a single
host with any USB device, but the access is exclusive.
Which strikes me as a bug, not a feature. I'm not familiar with the USB 
specification but it seems to me that sharing USB ports, speakers, 
microphones, network ports, etc. should all be possible. While one host, 
the hypervisor, may control the actual port, others should be able to 
communicate with it via a virtual port that the hypervisor provides.




The printers show in the CUPS web interface and also in the print dialogues
but CUPS reports the printers aren't communicating when I try to print to
them.

Of course it works that way. CUPS stores access parameters for any
configured printer, but checks if it's accessible only at printing time.



I can print to the one that has a network connector, but only through that
port.

And that is also working exactly the way it's intended. IPP is designed
for concurrent access, USB does not.



Is there any way to be able to share a USB printer with a virtual machine?

Configure CUPS to provide an access to a printer via conventional
tcp:631 (i.e. network). Use network access to CUPS from all your virtual
machines. They gave you full-fledged print server with a network
capability, you might as well use it the way it was intended.
The problem there is that many (all?) printer manufacturers provide 
Windows programs that offer more features than the CUPS drivers provide. 
For example, the HP software allows access to self-calibration routines. 
However it insists that the printer be connected via a USB cable and 
won't install if it's not. The CUPS driver for my Epson Printer doesn't 
allow me to print to CDs...


Also, installing a shared CUPS printer under Windows has always been a 
bit painful. Windows likes to use its protocols and no one else's.




Re: Print Queues and KVM/virt-manager virtual Windows machines

2018-06-10 Thread Reco
Hi.

On Sun, Jun 10, 2018 at 03:21:45PM -0400, Gary Dale wrote:
> I have printers attached via USB to my Debian/Stretch server and also one
> that also has an ethernet connection. The problem I'm having is that the
> virtual machines seem to grab exclusive access to the printers, so I can
> print from my Linux (Debian/Buster) workstation.

QEMU USB redirection (whenever native QEMU or that impressive trick with
usbip virt-manager does) is implemented that way. You can provide a single
host with any USB device, but the access is exclusive.


> The printers show in the CUPS web interface and also in the print dialogues
> but CUPS reports the printers aren't communicating when I try to print to
> them.

Of course it works that way. CUPS stores access parameters for any
configured printer, but checks if it's accessible only at printing time.


> I can print to the one that has a network connector, but only through that
> port.

And that is also working exactly the way it's intended. IPP is designed
for concurrent access, USB does not.


> Is there any way to be able to share a USB printer with a virtual machine?

Configure CUPS to provide an access to a printer via conventional
tcp:631 (i.e. network). Use network access to CUPS from all your virtual
machines. They gave you full-fledged print server with a network
capability, you might as well use it the way it was intended.

Reco