I've been getting a lot of requests lately to see if Linux supports the
USB to serial device from Silicon Laboratories called the CP2101 chip.
It turns out that the company is claiming Linux support, yet they are
only shipping a binary driver for Red Hat Linux 9.0.
In talking with the company, they insist that they will not release the
source code to this module, and they claim that they are not infringing
on any rights by not doing so. I claim that this is not true, as to
write a usb to serial driver for Linux you have to use the
drivers/usb/serial/usb-serial.h header file which is specifically
licensed under the GPL v2. This file contains inline functions and
structures that all usb-serial drivers need to use in order to work
properly.
In short, there's no way you can write a Linux usb-serial driver, that
uses the usbserial interface, without it being a derived work of other,
GPL only code.
So, they are in violation, so what. Well, I can't do much about this
(due to my employer's rules about suing companies). But I can do my
best to spread the word that the CP2101 device is not supported on
Linux, and should be avoided at all costs by anyone considering such a
device in a future design.
If people are looking for a good usb to serial chip that is supported on
Linux, Windows, and OS-X, there's the PL2303 device from Prolific, and
the FTDI-SIO chip, and the MCT-U232 chip. All of these work very well
on Linux, and are fully supported by all distros. I think they even
might be cheaper than the CP2101 device too :)
Oh, and just for fun,
here
is the Linux driver that
SiLabs is distributing, if anyone wants to poke around in it. The
tarball contains 2 binary drivers, one of them a version of the
usbserial.c file (which plainly is licensed under the GPL) and a
mcci_usb.o binary driver. Have fun with it, but don't blame me for any
badness that might happen to your box for running it, no one has any way
of knowing exactly what this driver is doing.
So, in conclusion, please stay away from Silicon Laboratories devices,
if you want to run Linux, as they are obviously not supporting Linux in
any way.
posted Thu, 18 Nov 2004 in [/linux] |
|
My Linux Stuff RSS |
|
||