Re: [ANNOUNCE] OSS Proxy using CUSE

From: H. Peter Anvin
Date: Thu Aug 28 2008 - 19:38:42 EST


Greg KH wrote:

Hm, why? It's a "fake" serial port as it is just a pass-through to the
USB device. No flow control or line settings work on the device, so the
kernel driver just silently eats them. But there is old, closed source
software that wants to talk to a serial port, so the kernel driver
remains. With this code, we could then use the more modern libusb code
instead.

I guess you could hook it up through a pty, and somehow create
/dev/pilot/ for it as well, that is an idea to consider.


Why? Because there is a lot of complexity in the tty layer, and there is no point in replicating the entire tty layer with all its ioctls through a fragile user-space emulator. For cases like this, a pty is easier (your daemon opens /dev/ptmx, and then symlinks the appropriate pty to /dev/pilot) and works better.

The big problem with using ptys for serial port emulation is that they currently don't handle BREAK at all.

For this type of USB device, that's not an issue :)

Indeed. It would be nice to fix, because it would make implementing serial ports as ptys+userspace a much more capable replacement. It's not trivial, though, because the interpretation of the BREAK has to be done when received, not when sent, which means supporting a 257th value in the underlying buffer setup.

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/