Re: [ANNOUNCE] OSS Proxy using CUSE

H. Peter Anvin
2008-08-28T23:38:41Z

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