Posted by khk

IEEE-1394 Support for EPSON Scanners in Linux

Update for SuSE 7.3 User’s

I just tried to run the IEEE-1394 interface with SuSE’s standard 2.4.10-4GB kernel and it worked. There is no need to compile or install anything but the kernel RPM (which already comes with the modules). Just do the

/sbin/modprobe ohci1394
/sbin/modprobe ieee1394
/sbin/modprobe sbp2

and the scanner will be recognized the next time you start any of the SANE frontends. As usual, you have to chmod the /dev/sgX device file that is associated with the scanner.

… and back to the regularly scheduled program …

The high-end scanners from EPSON come with the standard USB and SCSI interfaces, but in addition to these they also offer connectivity via the IEEE-1394 interface. This bus system offers high throughput with the ease of hot plugging capabilities and are therefore faster than a USB connection and easier to use than the SCSI interface. … at least from the hardware point of view, it still takes a little of tweaking to get the software part working.

The scanners use the Serial Bus Protocol v2 (SBP-2) to “talk” to the host computer. This basically encapsulates the SCSI commands, and therefore makes it very easy to add an IEEE-1394 interface to SCSI devices: Once everything is in place on the Linux side the scanner is actuall reported as a SCSI device.

The latest 2.4.0-testX kernels already come with IEEE-1394 support, for the stable 2.2.x series this has to be added manually. It is however still a good idea to update the IEEE-1394 driver of the 2.4.0-testX kernels because the driver is still being developed.

Information about how to add or update this driver can be found on the official Linux1394 web site at http://Linux1394.sourceforge.net. Just follow the “Getting Started” link to learn about the actual installation and configuration.

Once this is in place, the SBP-2 driver has to be added to the system. At this time this driver is not yet part of the standard kernel distribution, but will probably be added soon. So if you find files with the “sbp2” in their names, chances are that you don’t have to add this driver manually. The driver can be downloaded from http://firewire.zawa.com/sbp2. Make sure that you get the latest driver. Install this driver according to the README file, which is part of the distribution.

Once the SBP-2 driver is installed and loaded the scanner should show up after a rescan of the SCSI bus (this is also described in the SBP-2 README file).

To make the scanner useable in SANE add a line containing the following information to the epson.conf configuration file:

scsi EPSON

The rescan command has to be run everytime the scanner is attached or turned on. Eventually this should be taken care of by the hotplugging support in the Linux kernel, which can already start programs once a USB device is plugged in, but this does not yet work for IEEE_1394 devices.

Thanks to James Goodwin for adding my patches (or the spirit of my patches 🙂 to his driver. Without his work and his ideas I would not have figured out how to change the SBP-2 driver so fast.

Thanks also to EPSON for providing me the FireWire interface card for the scanner. Without this hardware it would have been imposible to debug the driver.