Linux Kernel Modules
for parallel & serial link cables






Last update: April the 28th, 2004
 

I Introduction

This project is a part of the TiLP project...

If you are searching a driver for the new TI's USB cable (aka SilverLink cable), see the LPG...

There was already a Linux kernel module for handling the link cables such as the home-made parallel, the home-made serial cable and the Black-link cable.
This module, named 'tidev' was available for the 2.0 & 2.2 kernel on the ticalc.org site, Unix section of the file archives.
Nevertheless, this module was not very portable and is now old/obsolete.

Then, I have decided to develop my own Linux modules from scratch and based on a different way: I do not use low-level I/O instructions for handling the protocol but I use the hardware abstraction layer (when available) for doing this.

For this, I have developed 2 kernel modules:
- one for the home-made parallel link cable: the 'tipar' kernel module,
- the other one for the home-made serial link and/or BlackLink cable: the 'tiser' module.

These modules work on 2.4 and 2.6 kernels.

They have devfs (Device FileSystem) support, a new management method of the /dev directory and its entries which have been introduced in the 2.4.x kernels.
Devfs is still experimental (even in 2.4.7 kernels) but works fine on my machines. If you want enable it, read the documentation carefully. Your machine may not restart...
 

II The home-made parallel link cable

This module is finished and has been submitted to the Linux Kernel Mailing List for approval. It has been included in kernel 2.4.21 and 2.5.43.
It works fine with applications (such as TiLP, GtkTiEmu, ...) which use the libticables (via the 'tidev' layer of the libticables).

tipar kernel module, version 1.19: download it here.
 

III The home-made serial link & the BlackLink cables

This module is finished and has been submitted to the Linux Kernel Mailing List for approval. I think that it will not be included in the kernel for some technical reasons.
At the time being, I do not use any hardware abstraction layer for this module (raw access).
It works fine with applications (such as TiLP, GtkTiEmu, ...) which use the libticables (via the 'tidev' layer of the libticables).

tiser kernel module, version 1.20: download it here.
 
Note: this module is not intended to be used with the GrayLink. The GrayLink don't need a such driver (RS232).


IV Status

- All modules are finished !

- I requested official major numbers for these devices to John Cagle and I finally got them... These majors are shared among tipar/tiser/tiusb. As a consequence, you can only load one of these modules at a time.
 

V To do...

Submit tiser to the kernel tree. This may require some amount of work (use line disciplines)...
 

V Kernel documentation

A complete tarball which contains:
- Kernel Module Programming Guide (html)
- Linux Kernel Internals (pdf)
- Linux Kernel Module Programming (pdf) 

The world famous O'Reilly press editor just released a book on kernel programming : 'Linux Device Drivers'.
It's available as an e-book (pdf) but it's better to buy the paper book... 
Well, it's more up-to-date than the previous tarball.

---
Romain Liévin (roms), developer, <roms@tilp.info>
Julien Blache (jb), Debian packager, <jb@jblache.org>