Tuesday, December 30, 2008

Debian Purity, iMacs & the usbserial problem

I'm moving my ham-oriented computing (digimodes, logging, etc.) to a 333 MHz purple Apple iMac. A beautiful older machine with plenty of zip for these uses. Since it is PowerPC based with only 384 MB RAM, my Linux choices are restricted. Happily (I thought), Debian would do the trick. One of Debian's virtues is that they provide Linux for many less common machine architectures.

All is well and good. I've got my USB-attached sound system working. (A story for another time.) I set up the build environment for Hamlib rig control and managed to compile the latest stuff from Sourceforge CVS. Fldigi and Xlog compile, too. So what remains?

I need to connect the iMac to my TenTec Orion's serial port. No problem, just move the 4-port Keyspan USB-serial box from my main x86 computer (running Ubuntu) to the Debian iMac. Surprise - the Keyspan's LEDs don't light. The Keyspan driver module doesn't load. Wait, the Keyspan driver module (part of Linux kernel) does not exist!

Cut to the chase: The Keyspan usbserial driver for my device has been deemed "impure" by the Debian group. This driver passes all the legal and policy hurdles for Fedora and Ubuntu, but Debian seems to have a "one drop" rule. Any hint of restriction on a software module means it's not going to be in a Debian release. Apparently, the Keyspan driver uses code that carries a phrase like "only for use on Keyspan products".

(It is possible to get the driver source and recompile the kernel to include it, but this would take time that I don't want to spend.)

My solution? Use a different USB-serial device. I happen to have one based on the FTDI chip and driver, which is supported on Debian (plug and play). This one-port gadget has no manufacturer's name on it, but I recall buying it at Staples, possibly under the Belkin name.

One problem with USB devices and Linux is that you can't easily tell if a particular device is supported, because the Linux drivers support particular chipsets, and the vendor's packaging rarely tells you what chipset is being used. At least one on-line vendor, USBgear, does tell you. I have no experience with them, but they do offer a number of 4 port units in the $70-90 range.

Debian's "purity" philosophy (similar to GNU's?) is very strict. They have a point, but flexibility is good, too. This idea of "freedom" is going to cost me $80 and several hours of head-scratching. For me, that will be the price of PPC support.


Anonymous said...

Hello, nice to share your experience.
While it is indeed sometime a problem for users, Debian tries to stick to it's "social contract"

and I think it is a great thing to do.

The cheap way around your problem would be to build your own kernel from www.kernel.org sources. It's really easy to do so in Debian.


Cheers, and bravo for choosing the best Operating System of the known universe ;-)

Martin Ewing said...

Building your own kernel is good for the soul -- maybe. It leads to problems, though, when there are kernel-dependent updates to be applied from the distros.

All in all, it was worth it to me to get a Debian supported usb serial device to avoid having to have a custom kernel.