Messages in this thread | | | Date | Thu, 28 Aug 2008 16:38:15 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [ANNOUNCE] OSS Proxy using CUSE |
| |
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
| |