(epub)
1 Intro
1.1 Thanks
1.2 Legal stuff
1.3 Meta info: What Where How
1.4 Completeness: How complete is this faq?
1.5 Contributing to the FAQ
2 What is Sane?
2.1 Intro
2.2 What is a SANE frontend ?
2.3 What is a SANE backend ?
2.4 Is my-favorite-scanner supported by SANE ?
2.5 Why is my-favorite-scanner NOT supported by SANE ?
2.6 My scanner is "TWAIN Compatible". Why isn't SANE "TWAIN compatible" ?
2.7 Is there support from scanner-vendors?
2.8 The backend for my-favorite-scanner is available, but for a different type.Can I use a USB<->PARALLEL / SCSI<->PARALLEL convertor ?
2.9 Is there any plan to add SANE support for my-favorite-unsupported-scanner ?
2.10 Can I connect more than one scanner to a single system? Can I use them both at the same time?
2.11 How can I help ?
2.12 How can I access a SANE backend from Windows throught the network ?
2.13 How can I access a scanner connected to a Windows box from a SANE frontend throught the network ?
2.14 Mailing-list, IRC
2.15 What are all these "Formulardaten" sent to this list from kundenserver.de?
2.16 Is there a quick step-by-step procedure or a How-To?
2.17 This all sounds scary! Do I have any other options?
3 Buying a scanner
3.1 What scanner should I buy?
3.2 Which HP scanners are supported?
3.3 Are all Epson scanners supported?
3.4 What about ADF-scanners?
4 How do I install
4.1 How do I get SANE?
4.2 OK, I downloaded the sources. What's next?
4.3 Why do I have to compile everything? Why are there no binary distributions?
4.4 I use redhat 8.0 and I keep my system updated, and network scanning suddenly stopped working (device busy)
4.5 Where is everything?
4.6 Xsane: make stops with /bin/sh: no: command not found
4.7 I can't compile SANE on my-favorite-OS. What can I do ?
4.8 Can I use xsane with GIMP 2?
4.9 ERROR: SANE is needed for compiling sane-frontends
4.10 The xsane-config-script refuses to make a GIMP-plugin
4.11 Errors including SCSI-headers.
4.12 Compling Sane aborts with xscanimage.c:63: parse error before `GParam'
4.13 I want to do a clean installation. How do I get rid of all the older versions?
4.14 I want only one backend. Must I compile the others?
5 It doesn't work
5.1 It does not work; basic problem searching.
5.2 I compiled SANE, but my scanner doesn't show in the device list or no Device selection dialog appears.
5.3 Permissions: As root it works, but not for ordinary people
5.4 Sane hangs or crashes when I start a frontend for sane, what can I do?
5.5 Scanimage gives a message "Invallid argument"
5.6 I changed the dll.conf or other configuration files but nothing has changed
5.7 I need more technical information for Linux
6 Scanner specifics
6.1 HOW TO do my scanner
6.2 I need more information on HP scanners.
6.3 Snapscan problems
6.4 I can't get my USB snapscan to work. Where can I find more info?
6.5 Microtek problems
6.6 It gives a line: "model 0x53 not supported" (or other number)
6.7 Epson
6.8 How to install the Epson Cx3200 scanner device without recompiling the whole kernel.
6.9 UMAX problems
6.10 After system boot, my scanner makes a fast loud clicking noise
6.11 I can't get the scanner to work with the SCSI-interface that comes by default with this scanner
6.12 Will there be a support for the UMAX-parallel-port/UMAX-USB-scanners?
6.13 Does SANE and the umax backend work on LinuxPPC / big endian machine ?
6.14 I am using an AM53C974 based scsi card with a umax scanner, the system freezes when I start a scan, what can I do?
7 . SCSI problems
7.1 What SCSI-card should I buy?
7.2 What about the SCSI-card I got with my scanner?
7.3 AM53c/974 problems (o.a. Tekram DC390, DawiControl 2974)
7.4 SCSI kernel/modules blues
7.5 Linux 2.4-kernel problems or Mandrake 8.0
7.6 SCSI bus problems: it works sometimes/almost never/partially
7.7 I'm using IDE over SCSI and I keep getting IO-error under xsane.
7.8 My scanner was off during reboot. Do I have to boot again to get my scanner to work?
8 Paralel port scanners
8.1 Where can I find more information on paralel port scanners?
8.2 My scanner does SCSI over the parallel port. How do i set this up?
8.3 Any other hints if it doesn't work?
8.4 What is the difference between sane-find-scanner and scanimage -L?
9 USB Problems
9.1 Is there a how-to or some general information on USB-scanners?
9.2 How can I use a USB scanner with Linux 2.6?
9.3 Should I use "libusb" or the scanner.o module?
9.4 What module should I load in Linux for my scanner?
9.5 How can I avoid having to 'modprobe scanner' after each boot?
9.6 Should I make a link /dev/scanner -> /dev/usbscanner
9.7 On my Linux 2.4.16-kernel, the scanner causes a system-freeze
9.8 Using the "alternate" uhci kernel driver, scanning works but is much slower than it was before.
9.9 USB hardware problems.
10 Network-scanning
10.1 Is there a "howto" for saned?
10.2 It doesn't work; can you give me some hints?
10.3 Xinetd on RedHat reports: access by user@(null) rejected.
10.4 Network scanning: after some time Xsane (gimp-plugin, xsacnimae etc) crashes.
10.5 Is there documentation how to use SANE on a server with Windows clients?
10.6 Saned doesn't work from inetd, but it works from command line, with a Samsung
11 I can make a scan! Great, what's next?
11.1 Do you have some scanning-tips for me?
11.2 Jpeg, png, pnm and so-on. What does that mean?
11.3 Many options in scanimage are inactive. Can I activate them?
11.4 It used to work, but after some changes in setup I keep getting wrong color/gamma/brightness etc.
11.5 The backend supports only 8 and 12 bits but my scanner can use a color depth of 24 bits!
11.6 Xsane does not support my favorite fileformat. What now?
11.7 I need a multi-page scan and xsane only produces single-page scans
11.8 Everything works, except the FAX-option
11.9 Tell me about Resolution, Gamma, Brightness and Contrast
11.10 When scanning repeated patterns, I get strange (other) patterns
11.11 Are there any OCR-packages availlable?
11.12 Can SANE help archive my pictures, documents etc..

NOTICE : the information in this FAQ is old. The latests update was 2008. I keep it available for those who are still interested.

1. Intro

This FAQ is intended to relieve the SANE-developers mailing list of some questions that are asked relatively often. The original FAQ was created by Nicolas de Peslouan. This is a continuation of that FAQ. It is primarily targeted at users, not developers.

Please keep sending corrections and additions to me. ljm@xs4all.nl If your message seems to get lost completely, see spamfilter.html for the reason why this might be

If you're responsible of a part of the code and people ask you the same questions over and over again: drop me a line. If you answer a question on the mailing list with the remark that it is a faqish-question, I might take the hint. There may be some time between your message and the FAQ-update; I will try to search the mailing list at least once a month with the keyword "faq".

Bear in mind that, I am only a simple FAQ-maintainer, not an expert on all common problems. If things do not work:

Read the installation doc.

Read the doc on sane

Read the doc that came with your backend/frontend that seems to cause the problems

Read this FAQ

1.1. Thanks

I am not the author of this faq. I see myself more as a collector. As an example: I shamelessly copied the original FAQ by Nicolas. Therefore, many thanks go to the people that actually answer the questions, among others: Andreas Rick Abel Deuring Bernd Schroeder, Bill Pool, Daniel Naughton Douglas Gilbert, Henning Meier-Geinitz, Karl Heinz Kremer, Marcel Pol, for most of the parport part, Matthew Duggan, M.B.W.D. Buitenhuis, Nicolas de Peslouan, Nick Lamb, Oliver Neukum, Oliver Rauch, Davide Giunchi Steve Sheriff, Timothy Little, and all those who maintain backends.

1.2. Legal stuff

Copyright ljm and others. You may copy this, as long as no fee is charged and the names of the contributors and the maintainers are mentioned.

This FAQ is provided "as-is" without any warranties, expressed or implied. While some (not even all!) effort has been taken to ensure the information in this faq is correct, neither the contributors, authors or collector/maintainer can assume any responsibility for errors, ommisions or damages resulting from the use of any information from this FAQ. In case of legal problems, only Dutch law is applicable.

All personal information, including e-mail addresses, is provided for the use in the context of SANE and/or scanners only.

1.3. Meta info: What Where How

The SANE-faq is a digest of problems and questions related to the installation and usage of SANE. It provides little programming information. Many of the questions appeared in the SANE-mailing list (and were answered), others come from different FAQs, newsgroups or mailinglist I visited. There is even some information I knew myself!

The latest (most recent) version can be found at: http:/dullaart.website/sane Note that the information in this FAQ is old; it has not been updated since 2007 (except to add this warning).

This FAQ is created using the vi-editor and in3xml

1.4. Completeness: How complete is this faq?

Not. These are a Few Answered Questions, not all Frequently Answered Questions. Please continue sending additions/and corrections, eventhough my feed-back is not always what it ought to be.

1.5. Contributing to the FAQ

After a long vacation, I will try to rewrite the part about scanning as root only, since many questions apeared on the list about this. Also I have seen a lot of problems with kernel upgrades.

If you have suggestions on what there should be in the FAQ, mail me.

2. What is Sane?

2.1. Intro

SANE stand for Scanner Access Now Easy. SANE is an API (Application Programming Interface) designed to provide access to scanners and other image retrieval hardware. See http://www.sane-project.org/intro.html for more details.

SANE also provides a standard for interaction of applications. The definition of the standard can be found at http://www.sane-project.org/html/ or in the SANE package as doc/sane.tex. If you have Tex installed `make ps' will give you a postscript-version.

2.2. What is a SANE frontend ?

A SANE frontend is an application program that uses one or more SANE backends to access a scanner or camera. See http://www.sane-project.org/sane-frontends.html for a list of currently available frontends.

2.3. What is a SANE backend ?

A SANE backend is a driver that handles requests coming from a frontend and translates them to low level requests before sending them to a scanner. The backend is also responsible for retrieving the scanned image from the scanner, and converting it to the correct format so that the frontend can handle it. Some backends support more than one scanner. To have your favorite scanner supported, you need to have a backend for this scanner. See http://www.sane-project.org/sane-backends.html for a list of backends (and supported scanners).

2.4. Is my-favorite-scanner supported by SANE ?

First of all, see http://www.sane-project.org/sane-supported-devices.html for a list of supported scanners. Note that some scanners are supported by a different backend than the one expected. (Manufacturer is not always the same as seller).

If you cannot find your scanner in one of the lists, try the search engine. http://www.sane-project.org/cgi-bin/driver.pl The search engine will also list unsupported scanners, scanners that are supported only with an external backend etc.

If your scanner is not in this list but comes from a manufacturer that build already supported scanners of the same type (SCSI, PARALLEL, USB, ...), try it anyway. If you have some success with this, please report it to sane-devel@lists.alioth.debian.org ! (Read the manpage for the specific backend for help on how to enable extra debug output). Your scanner may be partially supported. (Only black/white, only 300 dpi, only 24 bits, ...).

WARNING : Testing a backend with an unsupported scanner may cause physical damages to the scanner. Read the documentation for more info, and if you want to try, keep one hand on the on/off switch :).

2.5. Why is my-favorite-scanner NOT supported by SANE ?

Probably because the manufacturer is NOT willing to give the programming specifications for this scanner. Some manufacturers are really thinking that their dirty and CPU greedy protocols have to stay secret... may be to avoid other starting laughing at their work! (not my words, just quoting..)

Other reasons may include: Nobody else has this scanner. Nobody wants to write a driver until now.

2.6. My scanner is "TWAIN Compatible". Why isn't SANE "TWAIN compatible" ?

This doesn't mean anything ! A scanner is NOT TWAIN compatible. The Windows driver provided with the scanner is probably TWAIN compatible, so that TWAIN compatible Windows applications can use them. The only way to have a scanner become TWAIN compatible under other OS would be to have a driver for this scanner that speaks TWAIN with the applications. But, there is no TWAIN compatible application outside the Windows and Mac world. SANE developers have chosen to use the SANE API instead of TWAIN for scanner access. See http://www.sane-project.org/intro.html for a word about this. You can read a TWAIN FAQ, if you want, at http://www.twain.org/faq.htm

There was a discussion between the TWAIN Working Group and some SANE-people. For more information, see: http://www.twain.org/docs/twain_20_unix.htm (Note the date) Technical issues ( needed/wanted changes for the TWAIN interface) may be resolved in the V2.0 specs of SANE

There are some more SANE-TWAIN interfaces for Windows and other platforms: http://www.sane-project.org/sane-frontends.html

2.7. Is there support from scanner-vendors?

Vendors react differently to SANE. Some vendors cooperate with SANE developpers by giving the specifications of their scannersi, some with a non-disclosure agreement. Examples are UMAX for their SCSI-scanners, Epson.

HP is working on SANE-drivers for their scanners.

Mustek is quite helpfull concerning their USB scanners.

Brother-users may find http://solutions.brother.com/linux/sol/printer/linux/sane_drivers.html usefull.

Note that this list of vendors is not complete. If you know about vendors that are helpfull, drop a mail.

Some other vendors actively ignore anything that is not Windows thus limiting the sales of their scanners.

2.8. The backend for my-favorite-scanner is available, but for a different type.Can I use a USB<->PARALLEL / SCSI<->PARALLEL convertor ?

Nobody has reported any success with this. Even if the hardware look the same, the protocol used to exchange data between your computer and the scanner DOES look different.

2.9. Is there any plan to add SANE support for my-favorite-unsupported-scanner ?

Depending on the available documentation, there might be someone already working on a given scanner. See the status in or http://www.sane-project.org/lists/sane-backends-external.html Watch the sane-devel mailing list.

2.10. Can I connect more than one scanner to a single system? Can I use them both at the same time?

Yes.

On SCSI systems you can connect multple scanners to the same SCSI bus (up to 7 on an normal SCSI bus) and you can use more than one SCSI bus for the scanners.

The USB scanner driver in Linux 2.4.* supports upto 16 devices. In 2.5.* you should be able to use upto 256 scanners with devfs, but nobody has yet tested that. If you use libusb instead of the scanner driver, the number of scanners is only limited by the restrictions of the USB.

SANE is limited to 100 simultaneous USB scanners currently. If this isn't enough, you can increase this value in source code.

Most backends support more than a single scanner; you should verify this. If you want to connect more than one scanner of the same type, ask the mailinglist.

Experiences vary: more than one USB scanner seems to work without problems. More than one scanner on the same SCSI bus slows down the scanning if used simultaneously.

2.11. How can I help ?

In several ways :

You can start bothering the manufacturers for the specs. One more letter is never a loss of time! You can start writing a backend. To avoid duplicate job, ask on the sane-devel mailing list before you start. You can test and report any success / troubles with the backends / frontends, new operating systems. You could keep a log of installations and send it to me ( ljm @ xs4all . nl) Read the documentation (READMEs, man pages, this FAQ etc.) and check for mistakes (including spelling and bad grammar or wording), ask questions if something is unclear and add new documentation.

2.12. How can I access a SANE backend from Windows throught the network ?

The most usable TWAIN source seems to be: http://sanetwain.ozuzo.net/

Also, you can use sanecgi which wraps the text based frontend (scanimage) into a cgi perl script. For a running demo, try http://www.boutell.com/sanecgi/

Oliver Rauch made a Windows-version of Xsane. http://www.xsane.org

2.13. How can I access a scanner connected to a Windows box from a SANE frontend throught the network ?

TWAIN is not designed to allow such intelligent behavior.

However, SANE backends also run on Windows. So in should be possible to start a saned on windows and connect to it via another system running a SANE frontend. (Give me a mail if you've done this; also please take notes if you are trying to do this).

2.14. Mailing-list, IRC

There is a sane developers mailinglist. The sane-people are very nice and will help with almost anything. Keep in mind though, that they're not paid to do this. So be sure to read the documentation. And do not polute the mailinglist with diminuitive statements, even if you have been trying all day (or night).

If you ask a question, be as specific as possible. If your question is related to a specific backend, mention the backend in the subject. If your question might be scanner or backend related, mention the brand and type un the title. If it's an install-problem, put "install" or "compile" in the title. Always mention the versions that you use: versions of the backend, frontend, kernel or OS-level. The output of

scanimage --version should give most of the information. For more information: see http://www.sane-project.org/mailing-lists.html

YOU CANNOT POST TO THE MAILINGLIST IF YOU HAVE NOT SUBSCRIBED TO IT!! (well, you can, but you'll be giving the list administrators a lot of extra work, so it's better to subscribe).

Do not just "reply" to messages in the list. Sane-devel does NOT set the Reply-To: header back to the mailing list. That means, when responding to an email with the "reply" button (or key), you will send to the author of the email only, not to the list. As usually the list should get the responses, so please use "list-reply", "group-reply" or "Reply all" whatever your email client provides.

If you use procmail and process list mail separately, you can easily add a reply-to header yourself. Then all mail clients will behave as you expect without the need to change how the list itself works.

:0 * ^List-Id:.*sane-devel.www.mostang.com | formail -a "Reply-To: sane-devel@www.lists.alioth.debian.org" \ | rcvstore +Lists/SANE Jochen Eisinger has a search-engine over the mailinglist. http://lists.alioth.debian.org/mailman/listinfo/sane-devel Go to the bottom of the page, enter your email address and press "Edit Options". Enter your password and press "unsubscribe". The link is mentioned twice in every single sane-devel mail (header and signature). An explanation on how to unsubscribe is also sent to everyone who subscribes and in the monthly reminders.

There's a #sane irc channel at irc.freenode.org. You might get some information there. Best time is afternoon, evening (CET) and weekends.

2.15. What are all these "Formulardaten" sent to this list from kundenserver.de?

These are the result of the form that is used to report unsupported scanners. The form can be found at http://www.meier-geinitz.de/tinc?key=rDoQ7lrj&formname;=adddev If you are not maintaning backends or otherwise directly involved in the SANE project, don't bother with these. If you want to know anyway, read http://lists.alioth.debian.org/pipermail/sane-devel/2007-February/018647.html

2.16. Is there a quick step-by-step procedure or a How-To?

For Linux users: http://tldp.org/HOWTO/Scanner-HOWTO/index.html

If you want to set-up a SCSI-scanner with GIMP from scratch, follow http://www.xs4all.nl/~ljm/SANE/howto.html (A bit dated, but the basic steps are there.)

If you have an Epson perfection 1670 scanner have a look at http://www.commercialventvac.com/~jeffs/epson1670andFedora.html

2.17. This all sounds scary! Do I have any other options?

It's not as bad as it looks; just follow the steps in installation

If you're running Linux, your distribution might have a binary package available. If you stick to scanners that are supported this might save most of the effort. I found that nowadays most distributions work out-of-the-box if your scanner is supported.

There is also a commercial-grade scanner program available called VueScan. It's made by Hamrick Software. Available for Linux and Windows. Some prefer it for scanning slides and negatives, especially large amounts. http://www.hamrick.com

Finally, you could stick to your Windows and the software that is supplied with your scanner. The Gimp is also available for Windows.

3. Buying a scanner

3.1. What scanner should I buy?

Many advices have been given on which scanner to buy. I will not recomend a specific scanner because the best scanner for your situation depends on your requirements, your budget and/or local availability.

There seem to be some general criteria:

Do you just want to scan or do you want to work on the backends as well. If you just want to scan: take a SCSI-scanner or USB-scanner that is supported. I recomend to buy a brand that has made programmingspecs available. If you want to work on the backend, take a scanner with sufficient documentation (or with vendor contact).

What do you want to scan: just images or transparancies, film etc? For film-scanners you'll need 2700 dpi.

What are your requirements for the images: just 'nice pictures' or photoquality? For photoquality you'll need at least 1200 dpi if you want to do more than just copy. Ofcourse you'll also need a printer to match that quality.

For a first try of SANE, you could buy a cheap one that is supported. Some prefer USB-scanners because the hardware is less critical and they are easier to set-up. As always, it's a tradeoff: The more expensive the scanner technology, the more likely you are to get accurate scans. The cheaper the technology, the more likely you are to do scans at home. Somewhere between the two extremes a solution that works for you price wise and image quality wise.

Take the SANE compatability list with you when you are going to the shop. Show the list to the vendors.

3.2. Which HP scanners are supported?

Have a look at: http://www.kirchgessner.net/sanehpfaq.html

3.3. Are all Epson scanners supported?

Epson had an Epson Scanner language, to which all older Epson scanners conformed.

The Perfection 1250 is supported by the Plustek backend.

Most Epson scanners are supported however, and people who use them are pleased with the results.

3.4. What about ADF-scanners?

Many ADF-scanners work with relatively little problems. Just to give you an idea for performance:

fujitsu fi-4120:

speed

25 pages/min @ 150dpi

feeder

50 pages

price

under USD 1000

4. How do I install

4.1. How do I get SANE?

Depending on your computer knowledge, you'd better download the sources for SANE or a prebuilt binary.

For Fedora, there are different RPM's. The RPM's are usually on the distribution CD and may have already been installed if you used a standard install. Try typing

xsane If it starts, SANE is already installed. If SANE is not yet installed, or if you need a more recent version or if you have another reason, download the sources.

Up-to-date SANE sources and (more or less) up-to-date binaries for several platform are available at http://www.sane-project.org/source.html Please, try to use a mirror.

Download the recent versions of sane-backends, sane-frontends and xsane. Xsane is not mandatory, but it is a convenient frontend.

4.2. OK, I downloaded the sources. What's next?

Untar the stuff:

 tar -xvzf sane-backends*.tgz
 tar -xvzf sane-frontends*.tgz
 tar -xvzf xsane-*.tgz

Look at the readme-files. They contain information that is allways more current than this FAQ.

Go to the sane-backends directory and type

 ./configure

At the end of the configure, there may be a warning that SANE is already installed. That means that a possible conflict between the pre-installed version and the one you're about to compile may arise. Unless you know what you are doing, remove the old version. (

 rpm -e sane xsane

on RPM-based systems). Type make Enjoy the compile, especially all the warnings ;-). The warnings are qualified as "Must be checked but mostly harmless". If you want to see some more warnings try ./configure --enable-warnings

Su to root (you weren't compiling all the stuff as root I hope? If you were: read some books about security). Type make install.

Go to the sane-frontends directory and repeat the process:

 ./configure
 make

su to root and

 make install

And the same for Xsane.

Next make sure your scanner is connected and on and run:

 sane-find-scanner

If everything went well, You should find your scanner on the screen. The only thing sane-find-scanner does is to send a SCSI inquiry command to all SCSI devices and put out information about all devices of type "scanner" and "processor".

For USB scanners, do a

 cat /proc/bus/usb/devices

If your scanner is not there, something is wrong with your connection (is ir plugged-in, is the scanner on?) or with your kernel configuration. Next run

scanimage -L Your scanner should be there too. If it is not: it is probably not supported. In some cases, the backend is commented out in /etc/sane.d/dll.conf by someone. Make sure that the required backend is available. So next thing is to type:

 xsane &

4.3. Why do I have to compile everything? Why are there no binary distributions?

Sane is not platform-dependend. This means that a lot of binaries are possible:

RPM's for Linux RedHat, SuSe etc.

LPP's for AIX

Packages for Solaris

etcetera.

And this all for every processor the OS runs on and version of the OS. That is just too many. Having said that, the download-page contains some links to binaries for popular operatingsystems (at the bottom). If you made or found another binary distribution send us an URL.

Most Linux distributions add a compiled version to their distribution or allow you to download it. Look at your favourite distributer's web-site.

4.4. I use redhat 8.0 and I keep my system updated, and network scanning suddenly stopped working (device busy)

Please upgrade to a more recent distro.

Redhat does not keep all the binaries current on their updates.redhat.com site.

If you run into this problem, un-install the SANE-RPM's and compile them from source. In this way, you'll be sure that all files are correct.

For the moment, there are updated binaries on http://hvdkooij.xs4all.nl/software.rpm.en.cms The latest versions of sane-backends solve the device busy problem. The rpm with override your /etc/sane.d/sane.conf file, so you'll need to copy the /etc/sane.d/sane.conf.rpmsave to /etc/sane.d/sane.conf.

4.5. Where is everything?

If you installed the SANE-sources from Mostang and compiled & installed them, SANE sits under /usr/local If you installed aan RPM, you'll find SANE under /usr

The reason for this difference is, that /usr seems to be reserved for packages from the distribution and /usr/local for all local additions.

4.6. Xsane: make stops with /bin/sh: no: command not found

The full message looks like:

 file=./`echo cs | sed 's,.*/,,'`.gmo \
   && rm -f $file && PATH=../src:$PATH no -o $file cs.po
 /bin/sh: no: command not found
 make: *** [cs.gmo] Error 127

There is a problem with SANE and NLS (Natural Language Support) on your system. Re-run the configure with NLS disabled:

 ./configure --disable-nls

Next, clean-up and recompile:

 make clean
 make

Xsane will work normally without NLS support.

This should be solved in 0.93.

4.7. I can't compile SANE on my-favorite-OS. What can I do ?

First of all, have you checked that SANE is available for your platform in the supported platforms list? http://www.sane-project.org/sane-support.html You'd better try the latest available version.

You may need to download and/or build some external programs or libraries to compile some parts of SANE. You'd better use the latest versions of those external programs/libraries, unless the README file request a particular version.

On some platforms, you may need to use a particular version of make or of the C compiler (the GNU-version If anyone succeeded without GNU make give me (ljm) a mail).

Xsane has been ported to Windows.

When you succeed in compiling sane on a currently unmentioned OS, please send a note to the mailinglist. Also send a note to the mailinglist if you compiled a newer SANE version than mentioned in the platforms list or if you use a different compiler. Generally every report about anything but Linux/i386 is very welcome.

4.8. Can I use xsane with GIMP 2?

Yes, as long as you have a recent version. If you don't, you should upgrade.

4.9. ERROR: SANE is needed for compiling sane-frontends

The config-script for the front-ends complains "ERROR: SANE is needed for compiling sane-frontends" It may be necessary to put /usr/local/lib in /etc/ld.so.conf if it's not searched by default. Don't forget to run ldconfig (as root) afterwards. You may use

LD_LIBRARY_PATH=/usr/local/lib ./configure

instead (if you are not root on your system). There is a comment about this in INSTALL.

Note that default RedHat 6.2 installations do not have /usr/local/lib in /etc/ld.so.conf

4.10. The xsane-config-script refuses to make a GIMP-plugin

During the .fixed ./configure you will probably see messages like:

 checking for gimp-config... no
 checking for gimptool... no
 checking for libgimp/gimp.h... no
 checking for libgimp/gimpfeatures.h... no
 *** Could not run GIMP test program, checking why...
...
 * - GIMP plugin  deactivated

Most distributions split library packages into two parts: the normal one containing the libraries and the -dev (or devel) version containing headers and tools like gimp-config Install the libgimp-dev (or devel) package.

4.11. Errors including SCSI-headers.

On a normal distribution, SCSI-headers may be different from what you have in your kernel sources. Copying the SCSI-headers to your include-dir should solve this problem.

 cp -a /usr/src/linux/include/scsi /usr/include

4.12. Compling Sane aborts with xscanimage.c:63: parse error before `GParam'

From GIMP 1.1.25 on, type definitions in GIMP have been changed. Edit xscanimage.c and search the line with

 #include <libgimp/gimp.h>

Above this line insert a line with:

#define GIMP_ENABLE_COMPAT_CRUFT

Edit xsane.h in the same way.

Recompile and think about getting a more recent version of SANE.

4.13. I want to do a clean installation. How do I get rid of all the older versions?

Since SANE 1.0.5 there is a make uninstall which removes SANE completely. However it only removes from the current prefix, so if the old SANE is located in /usr and you use the standard SANE sources, it won't be removed. Configure will warn about old versions at different locations if it can find them.

There is no filelist for older versions, and there are more places where you can install sane. The following will remove most ofthe sane-files:

 find /usr -name "*sane*" -type f -print -exec rm {} \;
 find /usr -name "*sane*" -type d -print -exec rmdir {} \;

Some caution is needed: this removes anything that looks like sane. This may include other applications, files or the tgz of your new version, as I found out myself :-(

Alternatively remove the following directories:

- /usr/(local)/lib/sane - /usr/(local)/lib/libsane* - /usr/(local)/include/sane - /usr/(local)/etc/sane.d - /usr/(local)/share/sane* - /usr/(local)/bin/scanimage - /usr/(local)/bin/xscanimage - /usr/(local)/bin/xsane - /usr/(local)/share/sane/xsane

This may leave some files for natural language support ( xsane.mo and possibly sane-umax.mo and sane-pnm.mo ). Use find to find them.

4.14. I want only one backend. Must I compile the others?

You can set an environment variable to limit the number of backends, e.g.:

 export BACKENDS="net mustek mustek_usb"
 ./configure

This will limit the backends to net, mustek and mustek_usb. You'll need to know the names of the backends that you want.

5. It doesn't work

5.1. It does not work; basic problem searching.

OK. Don't panic.

Henning Meier-Geinitz has made a program called sane-troubleshoot. It can be found at http://www.meier-geinitz.de/sane/sts/ Though not yet finnished, it may guide you to the problem you're having.

Otherwise try the following:

First thing to do is get the latest version of sane and the backend. Sane develops relatively fast, and it might be that your problem is already fixed.

Check the boot-messages ( /var/log/messages ); there should be some lines indicating your scanner; something like:

Vendor: AGFA Model: SnapScan Rev: 1.40, Type: Scanner ANSI SCSI revision: 02)

If not: go to the SCSI-section in this FAQ

Run a

 sane-find-scanner

If you have a SCSI or USB scanner, the scanner should be listed. If not: go to the SCSI or USB-section of this FAQ.

If you're using a SCSI-scanner do a

sgcheck

Or run the following script:

 #!/bin/bash
 for dev in /dev/sg* ; do
 echo "__________________"
 echo "$dev:"
 scsiinfo $dev
 done

If your scanner is not there, you have a SCSI-problem. alternatively, you might use

 cat /proc/scsi/scsi

do as root:

scanimage -L

this will give the list of scanners that is recognised. On Linux-systems, the kernel-modules are loaded automatically when they are needed. If you know what modules you need, you might load them using insmod If not, run scanimage -l tiwce.

5.2. I compiled SANE, but my scanner doesn't show in the device list or no Device selection dialog appears.

Depending on your platform/scanner, you will need time for a coffee, a pizza or an extra month of holiday :

We already told that, but ensure your scanner is in the supported scanner list. If your scanner is SCSI: Check that the SCSI card is supported by your OS. You may need to rebuild your kernel to add generic SCSI support.

Your SCSI card often display SCSI device on startup. If not, check cables and terminators.

Some operating system display available SCSI device on startup. Again, if not, check cables and terminators.

Check if your SCSI-module is correctly loaded (lsmod). If you installed a binary-package, check if /usr/local/lib is in /etc/ld.so.conf Make sure that the path to the sane libs (default: /usr/local/lib/sane ) is NOT listed in /etc/ld.so.conf repair the links from /usr(/local)/lib/libsane* -> sane/libsane-dll* and call ldconfig the same problem may occur when LD_LIBRARY_PATH includes the path to the sane libs. The path to the link libsane.so.1

/usr(/local)/lib has to be listed in the /etc/ld.so.conf or dynamically linked frontends will not be able to load the sane libs. Note that a default RedHat 6.2 ld.so.conf does not contain /usr/local/lib which is the default path for SANE-installations. Try setenv SANE_DEBUG_BACKENDNAME=255 for debug-messages. Also export SANE_DEBUG_DLL=255 may be good to look if the backend is loaded at all. If it is not mentioned in the debug log it may not be in dll.conf or commented out (e.g. mustek_pp). You may not understand all the messages, on the other hand you could recognise your mistake/the problem.

Ask in the sane-devel mailing list. If you changed the library-setup, especially /etc/ld.so.conf, you need to run ldconfig

5.3. Permissions: As root it works, but not for ordinary people

Anyone scanning must have read and write permissions on the scanner-device. Do a

 scanimage -L

This will give you the name of the device. For example:

 [ljm@ronsard ~]$ scanimage -L
 device `umax:/dev/sgd' is a UMAX     Astra 1220S      flatbed scanner
 [ljm@ronsard ~]$

The /dev/sgd is the name of the device. The easiest is to give everybody access chmod a+rw /dev/sgd You might also allow only a limited group. Some systems have addtional security build in. This might stop SANE from working. Look at the security log files.

In some cases, the permission of the scanner may be set and reset at login-time. Look for your scanner in the file /etc/security/console.perms and comment-out those lines. For users of the device filesystem: edit /etc/devfs/perms which is used to set the device permission in the dev file system. In this file you'll find the folowing line:

 REGISTER ^sg[^/]* PERMISSIONS root.root 0600

As the next line insert the following text:

 REGISTER ^sg4 PERMISSIONS root.scanner 0660

or any other sg-number your scanner uses.

For most parallel port scanners you not only need read/write access to the device, you also have to be root (or your application needs to be setuid root). The reason for this is that the backend must control the actual parallel port via I/O ports. This is necessary for all Linuces (linuxes?) 2.1 and above.

An exception might be the backends that use the libieee1284.

For USB-scanner: have a look at the USB-section.

5.4. Sane hangs or crashes when I start a frontend for sane, what can I do?

Sometimes the backends that are not used make problems. Edit /usr/(local)/etc/sane.d/dll.conf and comment out everything but the backend used.

5.5. Scanimage gives a message "Invallid argument"

"Invalid argument" is what scanimage says when almost anything goes wrong. It does it if the device file is missing, or already open, or the kernel driver is missing, or the scanner responds with something it shouldn't, or not at all.

If the complete message looks like:

 scanimage: open of device /dev/usbscanner0 failed: Invalid argument

You seem to have specified a UNIX device name, or filename instead of selecting the SANE scanner or image acquisition device you want to use. As an example, you might want epson:/dev/sg0 or hp:/dev/usbscanner0 If any supported devices are installed in your system, you should be able to see a list with scanimage --list The specification for the -d option should be:

-d, --device-name=DEVICE use a given scanner device The format of DEVICE is backendname:devicefile (e.g. umax:/dev/scanner ).

5.6. I changed the dll.conf or other configuration files but nothing has changed

When trying to get things working, you may have made several installation tries. Therefore there may be different versions of the configuration files. You may have made the changes to the configuration file that is not in use.

You can verify this with:

 find /usr /etc -name dll.conf -print

If more than one dll.conf in a SANE driretory shows up, you have multiple installations.

5.7. I need more technical information for Linux

See: http://www.sane-project.org/README.linux

6. Scanner specifics

6.1. HOW TO do my scanner

Many scanners have small howto's or FAQ's. Always try them. The fact, that a scanner is included in this list does not mean that I think the scanner specific howto or FAQ is insufficient or that the backend is buggy. It just means I got questions, and most came from the mailinglist,

Also, look at the USB, SCSI and paralell-port sections. Your problem might not be so scanner specific as you thought..

6.2. I need more information on HP scanners.

Take a look at: http://www.kirchgessner.net/sanehpfaq.html

6.3. Snapscan problems

There is a lot of development work going on. A separate testing-group has been formed.

Some hints:

Do not have a /dev/scanner link if your using USB. It just confuses to much of the current code.

Make a symbolic link from /dev/usb/scanner0 to /dev/usbscanner (if your scanner is really at scanner0).

Make sure you have modified your snapscan.conf file and have /dev/usbscanner listed in it.

Do not run scanimage from the backend directory (it will use the wrong snapscan.conf file).

run scanimage with -d snapscan:/dev/usbscanner

Try to recompile SANE with the LATEST backend (dates are inside the files) downloaded from Part of the problem is that the device name /dev/usbscanner is hardcoded in parts of the scapscan USB driver. http://sourceforge.net/projects/snapscan

If you use Mandrake, Edit /etc/sane.d/dll.conf, and double check that there is a line containing snapscan (NOT SnapScan !)

6.4. I can't get my USB snapscan to work. Where can I find more info?

http://www.ginko.de/user/oschwartz/snapscan

6.5. Microtek problems

6.6. It gives a line: "model 0x53 not supported" (or other number)

Try the latest version. If that doesn't work: set 'option dump 2' in the microtek2.conf file and post the contents of the inquiry block to the mailing-list (indicated by [inquiryresult] ). This will help to determine which backend should handle this model.

6.7. Epson

6.8. How to install the Epson Cx3200 scanner device without recompiling the whole kernel.

The present scanner module doesn't like multiple interfaces on the same device. A patch that allow accepting devices with more than one interface was accepted by the Linux USB maintainer so it will most likely fixed in one of the next kernel versions. But you probably don't have that kernel yet. So you have to do the following:

Make a backup of /usr/src/<kernelversion>/drivers/usb/scanner.c and /lib/modules/<kernelversion>/kernel/drivers/usb/scanner.o

Become root or su and edit /usr/src/<kernelversion>/drivers/usb/scanner.c as follows:

find the lines:

 if (dev->config[0].bNumInterfaces != 1) {

 info("probe_scanner: Only one device interface is supported.");

 return NULL;

 }

and make the lines inactive as shown below.

 /* if (dev->config[0].bNumInterfaces != 1) {

 * info("probe_scanner: Only one device interface is supported.");

 * return NULL;

 * }

 */

After this create a new directory to a place of your choice i.e: /usr/src/modules

Copy /usr/src/<kernelversion>/drivers/usb/scanner.c and /usr/src/<kernelversion>/drivers/usb/scanner.h to the above mentioned directory.

Then compile a new module as follows (kernelversions 2.4.x):

 gcc -DMODULE -D__KERNEL__ -I/usr/src/linux/include -include /usr/src/linux/include/linux/modversions.h -c scanner.c

this will result in a scanner.o file. Copy this file to /lib/modules/<kernelversion>/kernel/drivers/usb Do a rmmod scanner as root. (might not be necessary if no scanner device was loaded) If the modules are compressed and look like scanner.o.gz ,remove the original file and create with gnozip or ark a new archive file called scanner.o.gz (yes, same as above) and add the scanner.o to it.

After this is finished insert the new module with:

modprobe scanner vendor=0x04b8 product=0x0802

This should be enough to get the scanner up.

You can select the scanner of choice in this case a Epson perfection 1200U.

6.9. UMAX problems

As I have an UMAX myself, there are many questions about the UMAX. Please send in logs of your experiences with other scanners.

6.10. After system boot, my scanner makes a fast loud clicking noise

TURN OFF THE SCANNER!!! QUICK!!

Leaving it on will seriously damage your scanner.

6.11. I can't get the scanner to work with the SCSI-interface that comes by default with this scanner

Don't use that card. Get a good SCSI-card for scanning.If you want to buy a new one, Oliver suggested a symbios logic 53c8xx.

If you really want to try: the UDS-IS11 is a DTC3181E-card based on the NCR5380-chip. On linux you may have the chance to get it work with the recent g_NCR5380-driver. The card does not have IRQ/DMA.

Try the following option for kernel:

 dtc 3181e=0x280,255

or

 dtc3181e=0x280,255

or use the following command:

 insmod g_NCR5380 ncr_irq=255 ncr_addr=0x280 dtc_3181e=1

or

 insmod g_NCR5380 ncr_irq=255 ncr_addr=0x280 dtc3181e=1

(some have reported with an underscore, but someone else without; I have no way to check which is correct for which version of kernel)

6.12. Will there be a support for the UMAX-parallel-port/UMAX-USB-scanners?

UMAX published their SCSI-protocol for scanners. However they have not so far published parallel port and USB protocols. Without the protocol documentation development will not be done.

The UMAX parallel port backend is part of SANE 1.0.6: http://umax1220p.sourceforge.net/ There is also a project for the UMAX ASTRA 1200u USB scanner: http://umax1220u-sane.sourceforge.net/

The Astra 2200W does work when connected via SCSI. It could work with SCSI-via-USB-driver and connected via USB, but that is not tested.

6.13. Does SANE and the umax backend work on LinuxPPC / big endian machine ?

There are people using the sane-umax on a LinuxPPC (big endian) machine. Other people write that they can not scan on a LinuxPPC. It looks like this is a problem with the driver of the scsi card. The "MESH" SCSI card is reported to work. The NCR53C94 SCSI card seems not to work.

6.14. I am using an AM53C974 based scsi card with a umax scanner, the system freezes when I start a scan, what can I do?

Try the recent driver for the scsi card, take a look at:

http://www.garloff.de/kurt/linux/dc390/index.html

7. . SCSI problems

First read "man sane-scsi"!!! This gives the answer to many questions you might have.

7.1. What SCSI-card should I buy?

Generaly speaking: any "good" SCSI-card that is supported by your operatingsystem and the SG-drivers should work. Some SCSI cards have a history of problems that have not been resolved:

The cards that come with the scanner are often not complete SCSI-cards. Symbios Logic with Sym53C400A BusLogic cards

7.2. What about the SCSI-card I got with my scanner?

Most scanners give a just barely functional SCSI-card with their scanner. See the UMAX-section of this FAQ for hints on getting their SCSI-card to work. For the card you get with HP scanjets, see http://www.kirchgessner.net/pub/sane/53c416.txt

7.3. AM53c/974 problems (o.a. Tekram DC390, DawiControl 2974)

Tekram DC390 cards have caused some problems in the past. Use the newest version for the tmscsim.o, at least version 2.0f

 insmod tmscsim.o

If you have an old kernel, you may try

 insmod AM53C974.o

instead of the tmscsim-module. Note that the Nikon coolscan and LS-series will crash the machine with this module. On the otherhand, the DawiControl 2974 seems to need the tmscsim.o module. Be sure to use a recent version.

7.4. SCSI kernel/modules blues

On Linux, your kernel needs to recognise SCSI, either in the kernel or as modules. If you're using modules, you'll need to add the following lines in one of the boot-files:

 insmod the_driver_for_my_card
 insmod sg

Note that some distributions of LinuxPPC seem to come without the sg modules or without the source for the correct version of the modules. In that case you'll need to download the source for a new kernel. There have been reports that SCSI over IDE causes trouble. Remove the ide-scsi module if you can

 rmmod ide-scsi

On Solaris, use the sg-drivers. Please read the README.solaris that came with Sane.

7.5. Linux 2.4-kernel problems or Mandrake 8.0

The sg-driver changed in the 2.4 Linux-kernel. This may cause some problems.

Abel Deuring wrote:

The SG driver changed. But the guilty one is me; I used a too short timeout value for the new SG driver. In sane-backends-1.0.4/sanei/sanei_scsi.c, look for a line like

      req->sgdata.sg3.hdr.timeout = 10000;

(line 1892 for Sane 1.0.4), and change it to

      req->sgdata.sg3.hdr.timeout = 1000 * 10 * 60;

This patch may be forgotten in the Mandrake 8.0 distribution.

7.6. SCSI bus problems: it works sometimes/almost never/partially

Check the following:

Is the scsi bus terminated correct on both ends of the bus,

How long is the scsi bus (all scsi cables on both sides of the card together)? (max 1.5 meter)

Does every SCSI-device on the bus have a unique id? Check this by making a list of all devices and their SCSI-id.

Is the driver for your scsi controller up to date?

Is disconnect/reconnect disabled (this is a setup for your SCSI-card). Sometimes a configuration may work with the manufacturer's software under Windows, but not with SANE. In those cases, the cabling may be the problem because Windows may use a lower data-transfer range.

7.7. I'm using IDE over SCSI and I keep getting IO-error under xsane.

The IDE via SCSI driver seems to create problems. Please advise the mailing list.

7.8. My scanner was off during reboot. Do I have to boot again to get my scanner to work?

Fortunately, Linux provides a simple mechanism to probe a SCSI device on demand. Suppose you have a scanner connected to SCSI bus 1 (which is the second SCSI-bus) and the scanner has a SCSI id of 5. When the system is up and running and the scanner is turned on, you can issue the command:

 echo "scsi add-single-device 1 0 5 0" > /proc/scsi/scsi
 #                            ^   ^
 #                            |   |
 #                 SSCI-bus --+   +-----  SCSI-id

and the kernel will probe and recognize your scanner This needs to be done as root. (The first zero stands for the first SCSI-channel on your adapter and the last one for the LUN)

Another method (if you're using modules and if the scanner is the only device on the bus) is to unload the modules (SCSI-card and SG) and reload them.

Take a look at scsidev, a utility that comes with Debian distributions. http://www.garloff.de/kurt/linux/scsidev/ SuSe nowadays comes with a script rescan-scsi-bus.sh. And finaly, Oliver Rauch has a tool available. See http://www.rauch-domain.de

8. Paralel port scanners

8.1. Where can I find more information on paralel port scanners?

Try the backend for your specific scanner.

Some scanners do SCSI over the parallel port. See http://www.torque.net/parport/ppscsi.html and http://www.buzzard.me.uk/jonathan/scanners.html

8.2. My scanner does SCSI over the parallel port. How do i set this up?

First a hardware note: the cable that comes with your scanner (or should come with your scanner) is not just a printer-cable.

Look at http://cyberelk.net/tim/parport/ppscsi.html for the software and the status. The rest of this answer used to be correct for the 2.4 kernel.

It has the latest bugfixes, and it should apply to just about any kernel. There is a version of the patch available at: ftp://people.redhat.com/twaugh/patches/linux24/linux-ppscsi.patch while there is also a cvs patch by Tim Waugh against the latest 2.4 kernel and happens to include the ppscsi modules, which you can find at: http://people.redhat.com/twaugh/ftp/patches/patch-cvs-tmw.gz A patch like these needs to be applied to the kernelsource in /usr/src/linux.

You can copy it there and do:

patch -p1 < ppSCSI.patch

where ppSCSI.patch is the name of the patch. Then you can do make config, make menuconfig or make xconfig, whichever suits you. The best thing is to build both ppscsi and the specific module you need, as modules. Besides these modules, you also need two scsi-modules; scsi support (scsi_mod) and scsi generic support (sg). The parport modules might come in handy too, allthough it should work fine without them.

After building the kernel and modules, installing them and rebooting, the modules should be loadable. Turn on your scanner, and load the modules.

 insmod scsi_mod
 insmod sg
 insmod parport
 insmod parport_pc
 insmod ppscsi

For a HP scanner (epst).

 insmod epst

For a microtec:

 insmod onscsi

The kernel should recognize it now, which can be checked with

 cat /proc/scsi/scsi

You should see something like :

    Attached devices:
    Host: scsi0 Channel: 00 Id: 00 Lun: 00
      Vendor:          Model: Scanner 300A4    Rev: 3.00
      Type:   Scanner                          ANSI SCSI revision: 02

or with the Sane utility

 sane-find-scanner

If these tools list the scanner, then the kernel can communicate with it. After that, it's up for the backend to support the scanner. If the kernel doesn't recognize the scanner, the best thing is to ask for help at the mailinglist at http://www.torque.net/parport

8.3. Any other hints if it doesn't work?

http://penguin-breeder.org/sane/mustek_pp has a section "troubelshooting" that might be helpfull.

8.4. What is the difference between sane-find-scanner and scanimage -L?

The only thing sane-find-scanner does is to send a SCSI inquiry command to all SCSI devices and put out information about all devices of type "scanner" and "processor". It will find any SCSI scanner, even those who are not supported. If you cannot find your scanner, it is probably a connection or kernel/module problem.

scanimage -L will only find scanners supported by a backend. If it doesn't find a scanner that is supported there may be a configuration problem.

9. USB Problems

9.1. Is there a how-to or some general information on USB-scanners?

See http://www.zianet.com/k5di/usb/usb-scanner.txt

9.2. How can I use a USB scanner with Linux 2.6?

With Linux 2.4.* you could either use the kernel scanner module or libusb to access USB scanners. In Linux 2.6.4 the kernel scanner module was removed. Therefore with this and later kernels libusb must be used. While SANE automatically uses libusb when the library and its header file were present during the build of sane-backends, setting permissions will require some attention.

The device files used by libusb are located in /proc/bus/usb/ (e.g. /proc/bus/usb/001/003 ). The exact file name can be found out by running sane-find-scanner which would print libusb:001:003 in this case. While setting permissions with e.g. chmod +rw proc/bus/usb/001/003 seems to work, this change is not permanent. The permissions will be reset when the scanner is replugged or Linux is rebooted.

One solution to set permissions on-the-fly are the Linux hot-plug tools that should come with any current distribution. SANE itsself comes with a hotplug script and related documentation in the tools/hotplug/ directory. Please refer to the README in that directory for the details. You might also wish to browse through the documentation for the Plustek; it has quite a nice section on how to set-up your USB access.

/usr/share/doc/sane-backends-*/plustek/Plustek-USB.txt

9.3. Should I use "libusb" or the scanner.o module?

It is recomended that you use libusb. Most backends now support it. Libusb is a normal library libusb.so in /usr/lib or so, which allows low-level access to usb devices from user-space applications. This library is automatically used when the permissions in /proc/bus/usb/0*/* allow you to access the device. You'll need the usbfb mounted to /proc/bus/usb and the permissions must allow your user to access the device.

Note that RedHat calls the usbfs usbdevfs. They are however the same.

9.4. What module should I load in Linux for my scanner?

Basically, a Linux must recognise the USB. This means you should load the module ohci, uhci or usb/uhci (for USB 1.1) or ehci (for usb 2.0). Note that this applies to Linux kernel 2.2 and 2.4 only.

There are three kernel drivers for USB scanners available. The drivers are not interchangeable. If it works with one driver it won't work with any other driver.

1. The generic usbscanner driver

This driver supports a multitude of scanners. Loaded as a module it can be made to recognise any USB scanner with two or three USB-endpoints. That doesn't mean that it will work with every type of scanner.

Available: 2.4 kernels and backport to 2.2; obsolete for 2.6.

Usage: The driver implements a genuine USB device. A backend must be aware of the difference to scsi.

Scanners: many.

Known issues: It will recognise some scanners it can't drive

2. The microtek driver

This driver will recognise a few scanners made by the company it is named for. It's tested only with the X6.

Available: Linux 2.4-kernels. The backport doesn't work.

Usage: To SANE the scanners appear to be scsi devices. The scsi buffer must be limited to 32K SANE 1.0.3 should work out of the box, if the buffer is shrunk.

Scanners: X6 and perhaps some other microtek scanners

Known issues: C6 crashes.

3. The usbscsiscanner driver

This driver will work for the HP 5300C only.

Available: As a patch to the 2.4 kernels. The patch must be extracted from the linux-usb-devel mailing list's archive.

Usage: The scanner appears to be a scsi device. The avision backend must be hacked to recognise it.

Scanners: HP 5300C

Known issues: As yet none, as it has been tested only once

After this, you'll probably want to do a:

modprobe scanner

9.5. How can I avoid having to 'modprobe scanner' after each boot?

There are three soliutions:

Compile scanner.o into the kernel, not as a module. load scanner.o unconditionally from the init scripts, for example from /etc/rc.d/rc.local

install the hotplug utilities and compile USB support as modules Debian users can put

scanner in

/etc/modules

to load at start-up

9.6. Should I make a link /dev/scanner -> /dev/usbscanner

No. All the SCSI-backends will try to access /dev/scanner. They will send SCSI-commands which may not be apprpriate for your USB-scanner.

9.7. On my Linux 2.4.16-kernel, the scanner causes a system-freeze

There's a bug in the kernel USB scanner driver that may freeze your system. Update to kernel version 2.4.17.

9.8. Using the "alternate" uhci kernel driver, scanning works but is much slower than it was before.

Several people have noticed severe performance degredation with the latest uhci (JE) drivers. The alternative module named "usb-uhci" (also included in the standard kernel distribution, option CONFIG_USB_UHCI) does not show this effect and allows much faster scans.

9.9. USB hardware problems.

Some people have reported problems when the scanner is connected through an USB hub, or using an nForce USB card. In all cases, faulty hardware seemd to be the problem. And in many cases, the hardware seemed to function on Windows systems (at least for a while).

10. Network-scanning

10.1. Is there a "howto" for saned?

For Linux-systems, look at http://www.penguin-breeder.org/sane/saned/

10.2. It doesn't work; can you give me some hints?

Try to make a local scan on the server where the scanner is. If you do not have a graphical environment (like X) there, use scanimage. In the saned-configuration file net.conf, you must add the name of the server where the scanner lives. saned.conf: add host name that is allowed to scan Be sure that the inetd starts up the correct saned. Also, be sure that the UID that runs saned is allowed to make a scan.

10.3. Xinetd on RedHat reports: access by user@(null) rejected.

You'll need a file /etc/xinetd.d/sane to start-up the daemon with the following contents:

 # default: off
 # description: The sane server accepts requests for network
 access to a local\
 #       scanner via the local network.
 service sane
 {
         port                    = 6566
         socket_type             = stream
         wait                    = no
         user                    = saned
         group                   = saned
         server                  = /usr/local/sbin/saned
 }

In /etc/services you need an entry:

   sane      6566/tcp

10.4. Network scanning: after some time Xsane (gimp-plugin, xsacnimae etc) crashes.

When you use a network connection to a scanner server and you start xsane and do not do anything for some time xsane crashes when you change anything.

This happens because the network connection is terminated after some time of inactivity. This does happen with all frontends when you use network scanning.

10.5. Is there documentation how to use SANE on a server with Windows clients?

For the Unix side:

man saned

man sane-net

http://www.penguin-breeder.org/?page=sane-net

For the Windows side: or http://www.xsane.org/.

10.6. Saned doesn't work from inetd, but it works from command line, with a Samsung

The "mfpport" Samsung's proprietary module always print some information on STDERR and this prevent the correctly run of saned from inetd. So you need to create a wrapper that run saned and put on /dev/null, or a logfile, the STDERR, here it's how:

create /usr/sbin/saned_wrapper:

 #!/bin/sh
 #
 # Call saned with stderr redirected, to avoid strange crash
 exec /usr/sbin/saned 2> /var/log/saned.log

 chmod 755 /usr/sbin/saned_wrapper

then add to /etc/inetd.conf this line:

 sane-port stream tcp nowait root.saned /usr/sbin/saned_wrapper

and do a /etc/init.d/inetd restart Check your binary path before copy/paste the line above.

11. I can make a scan! Great, what's next?

11.1. Do you have some scanning-tips for me?

There are many sites that provide information. Try, for example: http://www.scantips.com

11.2. Jpeg, png, pnm and so-on. What does that mean?

These are file-formats.

JPEG

Joined Photographic Experts Group

is a compressed file format. The compression is lossy, which means that the more you compress, the more quality you loose. It is good for relatively small files with true-color. Very popular.

PNG

Portable Network Graphics

This fileformat supports indexed color, grayscale and compression. It also supports an alpha-channel. Not all viewers seem to support this fileformat.

PNM

Portable aNyMap

It's a bitmap with minimal header.

PS

PostScript

This is a printer-language. Every serious printshop supports it. You can view Postscript-files with Gohstscript.

RAW

Raw data.

Lots of bits & bytes.

TIFF

Tagged Immage File Format

Basically a bitmap-format. Supports 1, 4, 8 or 24 bits colors. Supports some form of compression, but creates relatively large files. Ideal for images you want to export to other programs.

11.3. Many options in scanimage are inactive. Can I activate them?

This may depend on:

Your backend. Your backend (and most of the time your scanner) may not support these options. Read the backend-doc. Your scanning-mode. For example: bightness is disabled in line-art mode.

11.4. It used to work, but after some changes in setup I keep getting wrong color/gamma/brightness etc.

The settings for xscanimage are kept in an rc-file. If you delete this file, you can start from scratch, which is often better than the situation you're in now. The file is ~/.sane/xscanimage/backend:device.rc

11.5. The backend supports only 8 and 12 bits but my scanner can use a color depth of 24 bits!

The first two values are bits per color whereas the last one (24) is bits per pixel. So in reality 8 bits per color is 24 bits per pixel and 12 bits per color corresponds to 36 bits per pixel.

11.6. Xsane does not support my favorite fileformat. What now?

You can use Xsane as a plugin for GIMP. Gimp supports many additonal fileformats.

For other fileformats, you'll need to find a converter like http://www.imagemagick.org/

11.7. I need a multi-page scan and xsane only produces single-page scans

The easiest way to get multi-page files from your scans is:

make a new directory

scan your pages to that directory using the automatic counter from the frontend. Call the first page 0001.png

use Imagemagick's "convert" as follows:

 convert 0001.png 0002.png ... out.pdf

You now have a multi-page PDF document.

11.8. Everything works, except the FAX-option

Make sure you have a working FAX-setup. Xsane does not talk directly to the fax-modem, but uses external commands for faxing.

You can modify the setup under:

Preferences

Setup

FAX options

11.9. Tell me about Resolution, Gamma, Brightness and Contrast

Resolution is the number of pixels per length. If you have 100 DPI (Dots Per Inch) resolution and you scan a surface of 1" x 1", you'll have 10 000 pixels. The higher your resolution, the better the image (generally) and the larger your files.

Gamma correction is done to compensate non-linearity in monitors, printers and scanners.

Brightness is defined by the Commission Internationale de L'Eclairage (CIE) as the attribute of a visual sensation according to which an area appears to emit more or less light. The brighter an image, the more white it looks.

Contrast is the sharp-ness of an image.

How do they work? The brightness controls the general feeling of brightness of he image. If you feel that the midtones are too dark, try adding some gamma-correction If the midtones are to light try a gamma corection If you want less midtones add some contrast.

You can find more information in the colorspace-FAQ by Charles A. Poynton. http://www.poynton.com/ColorFAQ.html

11.10. When scanning repeated patterns, I get strange (other) patterns

This might be the Moire-effect. Moire is caused by the interaction of the half-tone pattern in the document and the sampling of either the scanner or the scaler. The frequency of the pattern is the difference between the frequency of the halftone on the page and the sample frequency of the scaled resolution.

A solution would be to scan at a higher resolution (but then: weren't you already at the highest resolution of your scanner? ;-) and pass it though an anti aliasing filter.

11.11. Are there any OCR-packages availlable?

Both xsane and QuiteInsane are frontends that allow you to use an OCR package.

At Sourceforge, there is project jocr, also called gocr. http://jocr.sourceforge.net It seems to be quite usable, though my own experiences were not so good.

An other package is Clara http://freshmeat.net/projects/claraocr/ I was impressed by the recognition, though there are still some problems to be resolved. At the moment, this is the package of my choice. It requires a lot of training effort! However, nothing new came out since 2005.

There are many more packages, especially if you include the commercial ones.

The G(J)OCR project page also has links to five other free OCR packages: http://jocr.sourceforge.net/links.html , none of which I have tested.

11.12. Can SANE help archive my pictures, documents etc..

Yes it can. You can create digital copies of existing documents. But archival of documents in digital form requires maintenance. For example: most cd-writables are guaranteed only for a limmited period of time (5, 10 years depending on the quality). After some time you'll need to re-copy.

Another problem is the readability: If you stored on 8-inch floppy disks, you'll have a hard time rereading then nowadays.

The safest way to store your digital images (documents ...) is to have sevral copies. If one fails, you'll have the other copies to rebuild one. Use lots of error-correcting codes etc.

complete PDF
Complete EPUB
One page

1_intro PDF

(pdf) (epub) (1 page)
1 Intro
2 What is Sane?
3 Buying a scanner
4 How do I install
6 Scanner specifics
7 . SCSI problems
8 Paralel port scanners
9 USB Problems
10 Network-scanning
11 I can make a scan! Great, what's next?

NOTICE : the information in this FAQ is old. The latests update was 2008. I keep it available for those who are still interested.

1. Intro

This FAQ is intended to relieve the SANE-developers mailing list of some questions that are asked relatively often. The original FAQ was created by Nicolas de Peslouan. This is a continuation of that FAQ. It is primarily targeted at users, not developers.

Please keep sending corrections and additions to me. ljm@xs4all.nl If your message seems to get lost completely, see spamfilter.html for the reason why this might be

If you're responsible of a part of the code and people ask you the same questions over and over again: drop me a line. If you answer a question on the mailing list with the remark that it is a faqish-question, I might take the hint. There may be some time between your message and the FAQ-update; I will try to search the mailing list at least once a month with the keyword "faq".

Bear in mind that, I am only a simple FAQ-maintainer, not an expert on all common problems. If things do not work:

Read the installation doc.

Read the doc on sane

Read the doc that came with your backend/frontend that seems to cause the problems

Read this FAQ

1.1. Thanks

I am not the author of this faq. I see myself more as a collector. As an example: I shamelessly copied the original FAQ by Nicolas. Therefore, many thanks go to the people that actually answer the questions, among others: Andreas Rick Abel Deuring Bernd Schroeder, Bill Pool, Daniel Naughton Douglas Gilbert, Henning Meier-Geinitz, Karl Heinz Kremer, Marcel Pol, for most of the parport part, Matthew Duggan, M.B.W.D. Buitenhuis, Nicolas de Peslouan, Nick Lamb, Oliver Neukum, Oliver Rauch, Davide Giunchi Steve Sheriff, Timothy Little, and all those who maintain backends.

1.2. Legal stuff

Copyright ljm and others. You may copy this, as long as no fee is charged and the names of the contributors and the maintainers are mentioned.

This FAQ is provided "as-is" without any warranties, expressed or implied. While some (not even all!) effort has been taken to ensure the information in this faq is correct, neither the contributors, authors or collector/maintainer can assume any responsibility for errors, ommisions or damages resulting from the use of any information from this FAQ. In case of legal problems, only Dutch law is applicable.

All personal information, including e-mail addresses, is provided for the use in the context of SANE and/or scanners only.

1.3. Meta info: What Where How

The SANE-faq is a digest of problems and questions related to the installation and usage of SANE. It provides little programming information. Many of the questions appeared in the SANE-mailing list (and were answered), others come from different FAQs, newsgroups or mailinglist I visited. There is even some information I knew myself!

The latest (most recent) version can be found at: http:/dullaart.website/sane Note that the information in this FAQ is old; it has not been updated since 2007 (except to add this warning).

This FAQ is created using the vi-editor and in3xml

1.4. Completeness: How complete is this faq?

Not. These are a Few Answered Questions, not all Frequently Answered Questions. Please continue sending additions/and corrections, eventhough my feed-back is not always what it ought to be.

1.5. Contributing to the FAQ

After a long vacation, I will try to rewrite the part about scanning as root only, since many questions apeared on the list about this. Also I have seen a lot of problems with kernel upgrades.

If you have suggestions on what there should be in the FAQ, mail me.

complete PDF
Complete EPUB
One page

2_what_is_sane PDF

(pdf) (epub) (1 page)
1 Intro
2 What is Sane?
3 Buying a scanner
4 How do I install
6 Scanner specifics
7 . SCSI problems
8 Paralel port scanners
9 USB Problems
10 Network-scanning
11 I can make a scan! Great, what's next?

2. What is Sane?

2.1. Intro

SANE stand for Scanner Access Now Easy. SANE is an API (Application Programming Interface) designed to provide access to scanners and other image retrieval hardware. See http://www.sane-project.org/intro.html for more details.

SANE also provides a standard for interaction of applications. The definition of the standard can be found at http://www.sane-project.org/html/ or in the SANE package as doc/sane.tex. If you have Tex installed `make ps' will give you a postscript-version.

2.2. What is a SANE frontend ?

A SANE frontend is an application program that uses one or more SANE backends to access a scanner or camera. See http://www.sane-project.org/sane-frontends.html for a list of currently available frontends.

2.3. What is a SANE backend ?

A SANE backend is a driver that handles requests coming from a frontend and translates them to low level requests before sending them to a scanner. The backend is also responsible for retrieving the scanned image from the scanner, and converting it to the correct format so that the frontend can handle it. Some backends support more than one scanner. To have your favorite scanner supported, you need to have a backend for this scanner. See http://www.sane-project.org/sane-backends.html for a list of backends (and supported scanners).

2.4. Is my-favorite-scanner supported by SANE ?

First of all, see http://www.sane-project.org/sane-supported-devices.html for a list of supported scanners. Note that some scanners are supported by a different backend than the one expected. (Manufacturer is not always the same as seller).

If you cannot find your scanner in one of the lists, try the search engine. http://www.sane-project.org/cgi-bin/driver.pl The search engine will also list unsupported scanners, scanners that are supported only with an external backend etc.

If your scanner is not in this list but comes from a manufacturer that build already supported scanners of the same type (SCSI, PARALLEL, USB, ...), try it anyway. If you have some success with this, please report it to sane-devel@lists.alioth.debian.org ! (Read the manpage for the specific backend for help on how to enable extra debug output). Your scanner may be partially supported. (Only black/white, only 300 dpi, only 24 bits, ...).

WARNING : Testing a backend with an unsupported scanner may cause physical damages to the scanner. Read the documentation for more info, and if you want to try, keep one hand on the on/off switch :).

2.5. Why is my-favorite-scanner NOT supported by SANE ?

Probably because the manufacturer is NOT willing to give the programming specifications for this scanner. Some manufacturers are really thinking that their dirty and CPU greedy protocols have to stay secret... may be to avoid other starting laughing at their work! (not my words, just quoting..)

Other reasons may include: Nobody else has this scanner. Nobody wants to write a driver until now.

2.6. My scanner is "TWAIN Compatible". Why isn't SANE "TWAIN compatible" ?

This doesn't mean anything ! A scanner is NOT TWAIN compatible. The Windows driver provided with the scanner is probably TWAIN compatible, so that TWAIN compatible Windows applications can use them. The only way to have a scanner become TWAIN compatible under other OS would be to have a driver for this scanner that speaks TWAIN with the applications. But, there is no TWAIN compatible application outside the Windows and Mac world. SANE developers have chosen to use the SANE API instead of TWAIN for scanner access. See http://www.sane-project.org/intro.html for a word about this. You can read a TWAIN FAQ, if you want, at http://www.twain.org/faq.htm

There was a discussion between the TWAIN Working Group and some SANE-people. For more information, see: http://www.twain.org/docs/twain_20_unix.htm (Note the date) Technical issues ( needed/wanted changes for the TWAIN interface) may be resolved in the V2.0 specs of SANE

There are some more SANE-TWAIN interfaces for Windows and other platforms: http://www.sane-project.org/sane-frontends.html

2.7. Is there support from scanner-vendors?

Vendors react differently to SANE. Some vendors cooperate with SANE developpers by giving the specifications of their scannersi, some with a non-disclosure agreement. Examples are UMAX for their SCSI-scanners, Epson.

HP is working on SANE-drivers for their scanners.

Mustek is quite helpfull concerning their USB scanners.

Brother-users may find http://solutions.brother.com/linux/sol/printer/linux/sane_drivers.html usefull.

Note that this list of vendors is not complete. If you know about vendors that are helpfull, drop a mail.

Some other vendors actively ignore anything that is not Windows thus limiting the sales of their scanners.

2.8. The backend for my-favorite-scanner is available, but for a different type.Can I use a USB<->PARALLEL / SCSI<->PARALLEL convertor ?

Nobody has reported any success with this. Even if the hardware look the same, the protocol used to exchange data between your computer and the scanner DOES look different.

2.9. Is there any plan to add SANE support for my-favorite-unsupported-scanner ?

Depending on the available documentation, there might be someone already working on a given scanner. See the status in or http://www.sane-project.org/lists/sane-backends-external.html Watch the sane-devel mailing list.

2.10. Can I connect more than one scanner to a single system? Can I use them both at the same time?

Yes.

On SCSI systems you can connect multple scanners to the same SCSI bus (up to 7 on an normal SCSI bus) and you can use more than one SCSI bus for the scanners.

The USB scanner driver in Linux 2.4.* supports upto 16 devices. In 2.5.* you should be able to use upto 256 scanners with devfs, but nobody has yet tested that. If you use libusb instead of the scanner driver, the number of scanners is only limited by the restrictions of the USB.

SANE is limited to 100 simultaneous USB scanners currently. If this isn't enough, you can increase this value in source code.

Most backends support more than a single scanner; you should verify this. If you want to connect more than one scanner of the same type, ask the mailinglist.

Experiences vary: more than one USB scanner seems to work without problems. More than one scanner on the same SCSI bus slows down the scanning if used simultaneously.

2.11. How can I help ?

In several ways :

You can start bothering the manufacturers for the specs. One more letter is never a loss of time! You can start writing a backend. To avoid duplicate job, ask on the sane-devel mailing list before you start. You can test and report any success / troubles with the backends / frontends, new operating systems. You could keep a log of installations and send it to me ( ljm @ xs4all . nl) Read the documentation (READMEs, man pages, this FAQ etc.) and check for mistakes (including spelling and bad grammar or wording), ask questions if something is unclear and add new documentation.

2.12. How can I access a SANE backend from Windows throught the network ?

The most usable TWAIN source seems to be: http://sanetwain.ozuzo.net/

Also, you can use sanecgi which wraps the text based frontend (scanimage) into a cgi perl script. For a running demo, try http://www.boutell.com/sanecgi/

Oliver Rauch made a Windows-version of Xsane. http://www.xsane.org

2.13. How can I access a scanner connected to a Windows box from a SANE frontend throught the network ?

TWAIN is not designed to allow such intelligent behavior.

However, SANE backends also run on Windows. So in should be possible to start a saned on windows and connect to it via another system running a SANE frontend. (Give me a mail if you've done this; also please take notes if you are trying to do this).

2.14. Mailing-list, IRC

There is a sane developers mailinglist. The sane-people are very nice and will help with almost anything. Keep in mind though, that they're not paid to do this. So be sure to read the documentation. And do not polute the mailinglist with diminuitive statements, even if you have been trying all day (or night).

If you ask a question, be as specific as possible. If your question is related to a specific backend, mention the backend in the subject. If your question might be scanner or backend related, mention the brand and type un the title. If it's an install-problem, put "install" or "compile" in the title. Always mention the versions that you use: versions of the backend, frontend, kernel or OS-level. The output of

scanimage --version should give most of the information. For more information: see http://www.sane-project.org/mailing-lists.html

YOU CANNOT POST TO THE MAILINGLIST IF YOU HAVE NOT SUBSCRIBED TO IT!! (well, you can, but you'll be giving the list administrators a lot of extra work, so it's better to subscribe).

Do not just "reply" to messages in the list. Sane-devel does NOT set the Reply-To: header back to the mailing list. That means, when responding to an email with the "reply" button (or key), you will send to the author of the email only, not to the list. As usually the list should get the responses, so please use "list-reply", "group-reply" or "Reply all" whatever your email client provides.

If you use procmail and process list mail separately, you can easily add a reply-to header yourself. Then all mail clients will behave as you expect without the need to change how the list itself works.

:0 * ^List-Id:.*sane-devel.www.mostang.com | formail -a "Reply-To: sane-devel@www.lists.alioth.debian.org" \ | rcvstore +Lists/SANE Jochen Eisinger has a search-engine over the mailinglist. http://lists.alioth.debian.org/mailman/listinfo/sane-devel Go to the bottom of the page, enter your email address and press "Edit Options". Enter your password and press "unsubscribe". The link is mentioned twice in every single sane-devel mail (header and signature). An explanation on how to unsubscribe is also sent to everyone who subscribes and in the monthly reminders.

There's a #sane irc channel at irc.freenode.org. You might get some information there. Best time is afternoon, evening (CET) and weekends.

2.15. What are all these "Formulardaten" sent to this list from kundenserver.de?

These are the result of the form that is used to report unsupported scanners. The form can be found at http://www.meier-geinitz.de/tinc?key=rDoQ7lrj&formname;=adddev If you are not maintaning backends or otherwise directly involved in the SANE project, don't bother with these. If you want to know anyway, read http://lists.alioth.debian.org/pipermail/sane-devel/2007-February/018647.html

2.16. Is there a quick step-by-step procedure or a How-To?

For Linux users: http://tldp.org/HOWTO/Scanner-HOWTO/index.html

If you want to set-up a SCSI-scanner with GIMP from scratch, follow http://www.xs4all.nl/~ljm/SANE/howto.html (A bit dated, but the basic steps are there.)

If you have an Epson perfection 1670 scanner have a look at http://www.commercialventvac.com/~jeffs/epson1670andFedora.html

2.17. This all sounds scary! Do I have any other options?

It's not as bad as it looks; just follow the steps in installation

If you're running Linux, your distribution might have a binary package available. If you stick to scanners that are supported this might save most of the effort. I found that nowadays most distributions work out-of-the-box if your scanner is supported.

There is also a commercial-grade scanner program available called VueScan. It's made by Hamrick Software. Available for Linux and Windows. Some prefer it for scanning slides and negatives, especially large amounts. http://www.hamrick.com

Finally, you could stick to your Windows and the software that is supplied with your scanner. The Gimp is also available for Windows.

3. Buying a scanner

3.1. What scanner should I buy?

Many advices have been given on which scanner to buy. I will not recomend a specific scanner because the best scanner for your situation depends on your requirements, your budget and/or local availability.

There seem to be some general criteria:

Do you just want to scan or do you want to work on the backends as well. If you just want to scan: take a SCSI-scanner or USB-scanner that is supported. I recomend to buy a brand that has made programmingspecs available. If you want to work on the backend, take a scanner with sufficient documentation (or with vendor contact).

What do you want to scan: just images or transparancies, film etc? For film-scanners you'll need 2700 dpi.

What are your requirements for the images: just 'nice pictures' or photoquality? For photoquality you'll need at least 1200 dpi if you want to do more than just copy. Ofcourse you'll also need a printer to match that quality.

For a first try of SANE, you could buy a cheap one that is supported. Some prefer USB-scanners because the hardware is less critical and they are easier to set-up. As always, it's a tradeoff: The more expensive the scanner technology, the more likely you are to get accurate scans. The cheaper the technology, the more likely you are to do scans at home. Somewhere between the two extremes a solution that works for you price wise and image quality wise.

Take the SANE compatability list with you when you are going to the shop. Show the list to the vendors.

3.2. Which HP scanners are supported?

Have a look at: http://www.kirchgessner.net/sanehpfaq.html

3.3. Are all Epson scanners supported?

Epson had an Epson Scanner language, to which all older Epson scanners conformed.

The Perfection 1250 is supported by the Plustek backend.

Most Epson scanners are supported however, and people who use them are pleased with the results.

3.4. What about ADF-scanners?

Many ADF-scanners work with relatively little problems. Just to give you an idea for performance:

fujitsu fi-4120:

speed

25 pages/min @ 150dpi

feeder

50 pages

price

under USD 1000

4. How do I install

4.1. How do I get SANE?

Depending on your computer knowledge, you'd better download the sources for SANE or a prebuilt binary.

For Fedora, there are different RPM's. The RPM's are usually on the distribution CD and may have already been installed if you used a standard install. Try typing

xsane If it starts, SANE is already installed. If SANE is not yet installed, or if you need a more recent version or if you have another reason, download the sources.

Up-to-date SANE sources and (more or less) up-to-date binaries for several platform are available at http://www.sane-project.org/source.html Please, try to use a mirror.

Download the recent versions of sane-backends, sane-frontends and xsane. Xsane is not mandatory, but it is a convenient frontend.

4.2. OK, I downloaded the sources. What's next?

Untar the stuff:

 tar -xvzf sane-backends*.tgz
 tar -xvzf sane-frontends*.tgz
 tar -xvzf xsane-*.tgz

Look at the readme-files. They contain information that is allways more current than this FAQ.

Go to the sane-backends directory and type

 ./configure

At the end of the configure, there may be a warning that SANE is already installed. That means that a possible conflict between the pre-installed version and the one you're about to compile may arise. Unless you know what you are doing, remove the old version. (

 rpm -e sane xsane

on RPM-based systems). Type make Enjoy the compile, especially all the warnings ;-). The warnings are qualified as "Must be checked but mostly harmless". If you want to see some more warnings try ./configure --enable-warnings

Su to root (you weren't compiling all the stuff as root I hope? If you were: read some books about security). Type make install.

Go to the sane-frontends directory and repeat the process:

 ./configure
 make

su to root and

 make install

And the same for Xsane.

Next make sure your scanner is connected and on and run:

 sane-find-scanner

If everything went well, You should find your scanner on the screen. The only thing sane-find-scanner does is to send a SCSI inquiry command to all SCSI devices and put out information about all devices of type "scanner" and "processor".

For USB scanners, do a

 cat /proc/bus/usb/devices

If your scanner is not there, something is wrong with your connection (is ir plugged-in, is the scanner on?) or with your kernel configuration. Next run

scanimage -L Your scanner should be there too. If it is not: it is probably not supported. In some cases, the backend is commented out in /etc/sane.d/dll.conf by someone. Make sure that the required backend is available. So next thing is to type:

 xsane &

4.3. Why do I have to compile everything? Why are there no binary distributions?

Sane is not platform-dependend. This means that a lot of binaries are possible:

RPM's for Linux RedHat, SuSe etc.

LPP's for AIX

Packages for Solaris

etcetera.

And this all for every processor the OS runs on and version of the OS. That is just too many. Having said that, the download-page contains some links to binaries for popular operatingsystems (at the bottom). If you made or found another binary distribution send us an URL.

Most Linux distributions add a compiled version to their distribution or allow you to download it. Look at your favourite distributer's web-site.

4.4. I use redhat 8.0 and I keep my system updated, and network scanning suddenly stopped working (device busy)

Please upgrade to a more recent distro.

Redhat does not keep all the binaries current on their updates.redhat.com site.

If you run into this problem, un-install the SANE-RPM's and compile them from source. In this way, you'll be sure that all files are correct.

For the moment, there are updated binaries on http://hvdkooij.xs4all.nl/software.rpm.en.cms The latest versions of sane-backends solve the device busy problem. The rpm with override your /etc/sane.d/sane.conf file, so you'll need to copy the /etc/sane.d/sane.conf.rpmsave to /etc/sane.d/sane.conf.

4.5. Where is everything?

If you installed the SANE-sources from Mostang and compiled & installed them, SANE sits under /usr/local If you installed aan RPM, you'll find SANE under /usr

The reason for this difference is, that /usr seems to be reserved for packages from the distribution and /usr/local for all local additions.

4.6. Xsane: make stops with /bin/sh: no: command not found

The full message looks like:

 file=./`echo cs | sed 's,.*/,,'`.gmo \
   && rm -f $file && PATH=../src:$PATH no -o $file cs.po
 /bin/sh: no: command not found
 make: *** [cs.gmo] Error 127

There is a problem with SANE and NLS (Natural Language Support) on your system. Re-run the configure with NLS disabled:

 ./configure --disable-nls

Next, clean-up and recompile:

 make clean
 make

Xsane will work normally without NLS support.

This should be solved in 0.93.

4.7. I can't compile SANE on my-favorite-OS. What can I do ?

First of all, have you checked that SANE is available for your platform in the supported platforms list? http://www.sane-project.org/sane-support.html You'd better try the latest available version.

You may need to download and/or build some external programs or libraries to compile some parts of SANE. You'd better use the latest versions of those external programs/libraries, unless the README file request a particular version.

On some platforms, you may need to use a particular version of make or of the C compiler (the GNU-version If anyone succeeded without GNU make give me (ljm) a mail).

Xsane has been ported to Windows.

When you succeed in compiling sane on a currently unmentioned OS, please send a note to the mailinglist. Also send a note to the mailinglist if you compiled a newer SANE version than mentioned in the platforms list or if you use a different compiler. Generally every report about anything but Linux/i386 is very welcome.

4.8. Can I use xsane with GIMP 2?

Yes, as long as you have a recent version. If you don't, you should upgrade.

4.9. ERROR: SANE is needed for compiling sane-frontends

The config-script for the front-ends complains "ERROR: SANE is needed for compiling sane-frontends" It may be necessary to put /usr/local/lib in /etc/ld.so.conf if it's not searched by default. Don't forget to run ldconfig (as root) afterwards. You may use

LD_LIBRARY_PATH=/usr/local/lib ./configure

instead (if you are not root on your system). There is a comment about this in INSTALL.

Note that default RedHat 6.2 installations do not have /usr/local/lib in /etc/ld.so.conf

4.10. The xsane-config-script refuses to make a GIMP-plugin

During the .fixed ./configure you will probably see messages like:

 checking for gimp-config... no
 checking for gimptool... no
 checking for libgimp/gimp.h... no
 checking for libgimp/gimpfeatures.h... no
 *** Could not run GIMP test program, checking why...
...
 * - GIMP plugin  deactivated

Most distributions split library packages into two parts: the normal one containing the libraries and the -dev (or devel) version containing headers and tools like gimp-config Install the libgimp-dev (or devel) package.

4.11. Errors including SCSI-headers.

On a normal distribution, SCSI-headers may be different from what you have in your kernel sources. Copying the SCSI-headers to your include-dir should solve this problem.

 cp -a /usr/src/linux/include/scsi /usr/include

4.12. Compling Sane aborts with xscanimage.c:63: parse error before `GParam'

From GIMP 1.1.25 on, type definitions in GIMP have been changed. Edit xscanimage.c and search the line with

 #include <libgimp/gimp.h>

Above this line insert a line with:

#define GIMP_ENABLE_COMPAT_CRUFT

Edit xsane.h in the same way.

Recompile and think about getting a more recent version of SANE.

4.13. I want to do a clean installation. How do I get rid of all the older versions?

Since SANE 1.0.5 there is a make uninstall which removes SANE completely. However it only removes from the current prefix, so if the old SANE is located in /usr and you use the standard SANE sources, it won't be removed. Configure will warn about old versions at different locations if it can find them.

There is no filelist for older versions, and there are more places where you can install sane. The following will remove most ofthe sane-files:

 find /usr -name "*sane*" -type f -print -exec rm {} \;
 find /usr -name "*sane*" -type d -print -exec rmdir {} \;

Some caution is needed: this removes anything that looks like sane. This may include other applications, files or the tgz of your new version, as I found out myself :-(

Alternatively remove the following directories:

- /usr/(local)/lib/sane - /usr/(local)/lib/libsane* - /usr/(local)/include/sane - /usr/(local)/etc/sane.d - /usr/(local)/share/sane* - /usr/(local)/bin/scanimage - /usr/(local)/bin/xscanimage - /usr/(local)/bin/xsane - /usr/(local)/share/sane/xsane

This may leave some files for natural language support ( xsane.mo and possibly sane-umax.mo and sane-pnm.mo ). Use find to find them.

4.14. I want only one backend. Must I compile the others?

You can set an environment variable to limit the number of backends, e.g.:

 export BACKENDS="net mustek mustek_usb"
 ./configure

This will limit the backends to net, mustek and mustek_usb. You'll need to know the names of the backends that you want.

6. Scanner specifics

6.1. HOW TO do my scanner

Many scanners have small howto's or FAQ's. Always try them. The fact, that a scanner is included in this list does not mean that I think the scanner specific howto or FAQ is insufficient or that the backend is buggy. It just means I got questions, and most came from the mailinglist,

Also, look at the USB, SCSI and paralell-port sections. Your problem might not be so scanner specific as you thought..

6.2. I need more information on HP scanners.

Take a look at: http://www.kirchgessner.net/sanehpfaq.html

6.3. Snapscan problems

There is a lot of development work going on. A separate testing-group has been formed.

Some hints:

Do not have a /dev/scanner link if your using USB. It just confuses to much of the current code.

Make a symbolic link from /dev/usb/scanner0 to /dev/usbscanner (if your scanner is really at scanner0).

Make sure you have modified your snapscan.conf file and have /dev/usbscanner listed in it.

Do not run scanimage from the backend directory (it will use the wrong snapscan.conf file).

run scanimage with -d snapscan:/dev/usbscanner

Try to recompile SANE with the LATEST backend (dates are inside the files) downloaded from Part of the problem is that the device name /dev/usbscanner is hardcoded in parts of the scapscan USB driver. http://sourceforge.net/projects/snapscan

If you use Mandrake, Edit /etc/sane.d/dll.conf, and double check that there is a line containing snapscan (NOT SnapScan !)

6.4. I can't get my USB snapscan to work. Where can I find more info?

http://www.ginko.de/user/oschwartz/snapscan

6.5. Microtek problems

6.6. It gives a line: "model 0x53 not supported" (or other number)

Try the latest version. If that doesn't work: set 'option dump 2' in the microtek2.conf file and post the contents of the inquiry block to the mailing-list (indicated by [inquiryresult] ). This will help to determine which backend should handle this model.

6.7. Epson

6.8. How to install the Epson Cx3200 scanner device without recompiling the whole kernel.

The present scanner module doesn't like multiple interfaces on the same device. A patch that allow accepting devices with more than one interface was accepted by the Linux USB maintainer so it will most likely fixed in one of the next kernel versions. But you probably don't have that kernel yet. So you have to do the following:

Make a backup of /usr/src/<kernelversion>/drivers/usb/scanner.c and /lib/modules/<kernelversion>/kernel/drivers/usb/scanner.o

Become root or su and edit /usr/src/<kernelversion>/drivers/usb/scanner.c as follows:

find the lines:

 if (dev->config[0].bNumInterfaces != 1) {

 info("probe_scanner: Only one device interface is supported.");

 return NULL;

 }

and make the lines inactive as shown below.

 /* if (dev->config[0].bNumInterfaces != 1) {

 * info("probe_scanner: Only one device interface is supported.");

 * return NULL;

 * }

 */

After this create a new directory to a place of your choice i.e: /usr/src/modules

Copy /usr/src/<kernelversion>/drivers/usb/scanner.c and /usr/src/<kernelversion>/drivers/usb/scanner.h to the above mentioned directory.

Then compile a new module as follows (kernelversions 2.4.x):

 gcc -DMODULE -D__KERNEL__ -I/usr/src/linux/include -include /usr/src/linux/include/linux/modversions.h -c scanner.c

this will result in a scanner.o file. Copy this file to /lib/modules/<kernelversion>/kernel/drivers/usb Do a rmmod scanner as root. (might not be necessary if no scanner device was loaded) If the modules are compressed and look like scanner.o.gz ,remove the original file and create with gnozip or ark a new archive file called scanner.o.gz (yes, same as above) and add the scanner.o to it.

After this is finished insert the new module with:

modprobe scanner vendor=0x04b8 product=0x0802

This should be enough to get the scanner up.

You can select the scanner of choice in this case a Epson perfection 1200U.

6.9. UMAX problems

As I have an UMAX myself, there are many questions about the UMAX. Please send in logs of your experiences with other scanners.

6.10. After system boot, my scanner makes a fast loud clicking noise

TURN OFF THE SCANNER!!! QUICK!!

Leaving it on will seriously damage your scanner.

6.11. I can't get the scanner to work with the SCSI-interface that comes by default with this scanner

Don't use that card. Get a good SCSI-card for scanning.If you want to buy a new one, Oliver suggested a symbios logic 53c8xx.

If you really want to try: the UDS-IS11 is a DTC3181E-card based on the NCR5380-chip. On linux you may have the chance to get it work with the recent g_NCR5380-driver. The card does not have IRQ/DMA.

Try the following option for kernel:

 dtc 3181e=0x280,255

or

 dtc3181e=0x280,255

or use the following command:

 insmod g_NCR5380 ncr_irq=255 ncr_addr=0x280 dtc_3181e=1

or

 insmod g_NCR5380 ncr_irq=255 ncr_addr=0x280 dtc3181e=1

(some have reported with an underscore, but someone else without; I have no way to check which is correct for which version of kernel)

6.12. Will there be a support for the UMAX-parallel-port/UMAX-USB-scanners?

UMAX published their SCSI-protocol for scanners. However they have not so far published parallel port and USB protocols. Without the protocol documentation development will not be done.

The UMAX parallel port backend is part of SANE 1.0.6: http://umax1220p.sourceforge.net/ There is also a project for the UMAX ASTRA 1200u USB scanner: http://umax1220u-sane.sourceforge.net/

The Astra 2200W does work when connected via SCSI. It could work with SCSI-via-USB-driver and connected via USB, but that is not tested.

6.13. Does SANE and the umax backend work on LinuxPPC / big endian machine ?

There are people using the sane-umax on a LinuxPPC (big endian) machine. Other people write that they can not scan on a LinuxPPC. It looks like this is a problem with the driver of the scsi card. The "MESH" SCSI card is reported to work. The NCR53C94 SCSI card seems not to work.

6.14. I am using an AM53C974 based scsi card with a umax scanner, the system freezes when I start a scan, what can I do?

Try the recent driver for the scsi card, take a look at:

http://www.garloff.de/kurt/linux/dc390/index.html

7. . SCSI problems

First read "man sane-scsi"!!! This gives the answer to many questions you might have.

7.1. What SCSI-card should I buy?

Generaly speaking: any "good" SCSI-card that is supported by your operatingsystem and the SG-drivers should work. Some SCSI cards have a history of problems that have not been resolved:

The cards that come with the scanner are often not complete SCSI-cards. Symbios Logic with Sym53C400A BusLogic cards

7.2. What about the SCSI-card I got with my scanner?

Most scanners give a just barely functional SCSI-card with their scanner. See the UMAX-section of this FAQ for hints on getting their SCSI-card to work. For the card you get with HP scanjets, see http://www.kirchgessner.net/pub/sane/53c416.txt

7.3. AM53c/974 problems (o.a. Tekram DC390, DawiControl 2974)

Tekram DC390 cards have caused some problems in the past. Use the newest version for the tmscsim.o, at least version 2.0f

 insmod tmscsim.o

If you have an old kernel, you may try

 insmod AM53C974.o

instead of the tmscsim-module. Note that the Nikon coolscan and LS-series will crash the machine with this module. On the otherhand, the DawiControl 2974 seems to need the tmscsim.o module. Be sure to use a recent version.

7.4. SCSI kernel/modules blues

On Linux, your kernel needs to recognise SCSI, either in the kernel or as modules. If you're using modules, you'll need to add the following lines in one of the boot-files:

 insmod the_driver_for_my_card
 insmod sg

Note that some distributions of LinuxPPC seem to come without the sg modules or without the source for the correct version of the modules. In that case you'll need to download the source for a new kernel. There have been reports that SCSI over IDE causes trouble. Remove the ide-scsi module if you can

 rmmod ide-scsi

On Solaris, use the sg-drivers. Please read the README.solaris that came with Sane.

7.5. Linux 2.4-kernel problems or Mandrake 8.0

The sg-driver changed in the 2.4 Linux-kernel. This may cause some problems.

Abel Deuring wrote:

The SG driver changed. But the guilty one is me; I used a too short timeout value for the new SG driver. In sane-backends-1.0.4/sanei/sanei_scsi.c, look for a line like

      req->sgdata.sg3.hdr.timeout = 10000;

(line 1892 for Sane 1.0.4), and change it to

      req->sgdata.sg3.hdr.timeout = 1000 * 10 * 60;

This patch may be forgotten in the Mandrake 8.0 distribution.

7.6. SCSI bus problems: it works sometimes/almost never/partially

Check the following:

Is the scsi bus terminated correct on both ends of the bus,

How long is the scsi bus (all scsi cables on both sides of the card together)? (max 1.5 meter)

Does every SCSI-device on the bus have a unique id? Check this by making a list of all devices and their SCSI-id.

Is the driver for your scsi controller up to date?

Is disconnect/reconnect disabled (this is a setup for your SCSI-card). Sometimes a configuration may work with the manufacturer's software under Windows, but not with SANE. In those cases, the cabling may be the problem because Windows may use a lower data-transfer range.

7.7. I'm using IDE over SCSI and I keep getting IO-error under xsane.

The IDE via SCSI driver seems to create problems. Please advise the mailing list.

7.8. My scanner was off during reboot. Do I have to boot again to get my scanner to work?

Fortunately, Linux provides a simple mechanism to probe a SCSI device on demand. Suppose you have a scanner connected to SCSI bus 1 (which is the second SCSI-bus) and the scanner has a SCSI id of 5. When the system is up and running and the scanner is turned on, you can issue the command:

 echo "scsi add-single-device 1 0 5 0" > /proc/scsi/scsi
 #                            ^   ^
 #                            |   |
 #                 SSCI-bus --+   +-----  SCSI-id

and the kernel will probe and recognize your scanner This needs to be done as root. (The first zero stands for the first SCSI-channel on your adapter and the last one for the LUN)

Another method (if you're using modules and if the scanner is the only device on the bus) is to unload the modules (SCSI-card and SG) and reload them.

Take a look at scsidev, a utility that comes with Debian distributions. http://www.garloff.de/kurt/linux/scsidev/ SuSe nowadays comes with a script rescan-scsi-bus.sh. And finaly, Oliver Rauch has a tool available. See http://www.rauch-domain.de

8. Paralel port scanners

8.1. Where can I find more information on paralel port scanners?

Try the backend for your specific scanner.

Some scanners do SCSI over the parallel port. See http://www.torque.net/parport/ppscsi.html and http://www.buzzard.me.uk/jonathan/scanners.html

8.2. My scanner does SCSI over the parallel port. How do i set this up?

First a hardware note: the cable that comes with your scanner (or should come with your scanner) is not just a printer-cable.

Look at http://cyberelk.net/tim/parport/ppscsi.html for the software and the status. The rest of this answer used to be correct for the 2.4 kernel.

It has the latest bugfixes, and it should apply to just about any kernel. There is a version of the patch available at: ftp://people.redhat.com/twaugh/patches/linux24/linux-ppscsi.patch while there is also a cvs patch by Tim Waugh against the latest 2.4 kernel and happens to include the ppscsi modules, which you can find at: http://people.redhat.com/twaugh/ftp/patches/patch-cvs-tmw.gz A patch like these needs to be applied to the kernelsource in /usr/src/linux.

You can copy it there and do:

patch -p1 < ppSCSI.patch

where ppSCSI.patch is the name of the patch. Then you can do make config, make menuconfig or make xconfig, whichever suits you. The best thing is to build both ppscsi and the specific module you need, as modules. Besides these modules, you also need two scsi-modules; scsi support (scsi_mod) and scsi generic support (sg). The parport modules might come in handy too, allthough it should work fine without them.

After building the kernel and modules, installing them and rebooting, the modules should be loadable. Turn on your scanner, and load the modules.

 insmod scsi_mod
 insmod sg
 insmod parport
 insmod parport_pc
 insmod ppscsi

For a HP scanner (epst).

 insmod epst

For a microtec:

 insmod onscsi

The kernel should recognize it now, which can be checked with

 cat /proc/scsi/scsi

You should see something like :

    Attached devices:
    Host: scsi0 Channel: 00 Id: 00 Lun: 00
      Vendor:          Model: Scanner 300A4    Rev: 3.00
      Type:   Scanner                          ANSI SCSI revision: 02

or with the Sane utility

 sane-find-scanner

If these tools list the scanner, then the kernel can communicate with it. After that, it's up for the backend to support the scanner. If the kernel doesn't recognize the scanner, the best thing is to ask for help at the mailinglist at http://www.torque.net/parport

8.3. Any other hints if it doesn't work?

http://penguin-breeder.org/sane/mustek_pp has a section "troubelshooting" that might be helpfull.

8.4. What is the difference between sane-find-scanner and scanimage -L?

The only thing sane-find-scanner does is to send a SCSI inquiry command to all SCSI devices and put out information about all devices of type "scanner" and "processor". It will find any SCSI scanner, even those who are not supported. If you cannot find your scanner, it is probably a connection or kernel/module problem.

scanimage -L will only find scanners supported by a backend. If it doesn't find a scanner that is supported there may be a configuration problem.

9. USB Problems

9.1. Is there a how-to or some general information on USB-scanners?

See http://www.zianet.com/k5di/usb/usb-scanner.txt

9.2. How can I use a USB scanner with Linux 2.6?

With Linux 2.4.* you could either use the kernel scanner module or libusb to access USB scanners. In Linux 2.6.4 the kernel scanner module was removed. Therefore with this and later kernels libusb must be used. While SANE automatically uses libusb when the library and its header file were present during the build of sane-backends, setting permissions will require some attention.

The device files used by libusb are located in /proc/bus/usb/ (e.g. /proc/bus/usb/001/003 ). The exact file name can be found out by running sane-find-scanner which would print libusb:001:003 in this case. While setting permissions with e.g. chmod +rw proc/bus/usb/001/003 seems to work, this change is not permanent. The permissions will be reset when the scanner is replugged or Linux is rebooted.

One solution to set permissions on-the-fly are the Linux hot-plug tools that should come with any current distribution. SANE itsself comes with a hotplug script and related documentation in the tools/hotplug/ directory. Please refer to the README in that directory for the details. You might also wish to browse through the documentation for the Plustek; it has quite a nice section on how to set-up your USB access.

/usr/share/doc/sane-backends-*/plustek/Plustek-USB.txt

9.3. Should I use "libusb" or the scanner.o module?

It is recomended that you use libusb. Most backends now support it. Libusb is a normal library libusb.so in /usr/lib or so, which allows low-level access to usb devices from user-space applications. This library is automatically used when the permissions in /proc/bus/usb/0*/* allow you to access the device. You'll need the usbfb mounted to /proc/bus/usb and the permissions must allow your user to access the device.

Note that RedHat calls the usbfs usbdevfs. They are however the same.

9.4. What module should I load in Linux for my scanner?

Basically, a Linux must recognise the USB. This means you should load the module ohci, uhci or usb/uhci (for USB 1.1) or ehci (for usb 2.0). Note that this applies to Linux kernel 2.2 and 2.4 only.

There are three kernel drivers for USB scanners available. The drivers are not interchangeable. If it works with one driver it won't work with any other driver.

1. The generic usbscanner driver

This driver supports a multitude of scanners. Loaded as a module it can be made to recognise any USB scanner with two or three USB-endpoints. That doesn't mean that it will work with every type of scanner.

Available: 2.4 kernels and backport to 2.2; obsolete for 2.6.

Usage: The driver implements a genuine USB device. A backend must be aware of the difference to scsi.

Scanners: many.

Known issues: It will recognise some scanners it can't drive

2. The microtek driver

This driver will recognise a few scanners made by the company it is named for. It's tested only with the X6.

Available: Linux 2.4-kernels. The backport doesn't work.

Usage: To SANE the scanners appear to be scsi devices. The scsi buffer must be limited to 32K SANE 1.0.3 should work out of the box, if the buffer is shrunk.

Scanners: X6 and perhaps some other microtek scanners

Known issues: C6 crashes.

3. The usbscsiscanner driver

This driver will work for the HP 5300C only.

Available: As a patch to the 2.4 kernels. The patch must be extracted from the linux-usb-devel mailing list's archive.

Usage: The scanner appears to be a scsi device. The avision backend must be hacked to recognise it.

Scanners: HP 5300C

Known issues: As yet none, as it has been tested only once

After this, you'll probably want to do a:

modprobe scanner

9.5. How can I avoid having to 'modprobe scanner' after each boot?

There are three soliutions:

Compile scanner.o into the kernel, not as a module. load scanner.o unconditionally from the init scripts, for example from /etc/rc.d/rc.local

install the hotplug utilities and compile USB support as modules Debian users can put

scanner in

/etc/modules

to load at start-up

9.6. Should I make a link /dev/scanner -> /dev/usbscanner

No. All the SCSI-backends will try to access /dev/scanner. They will send SCSI-commands which may not be apprpriate for your USB-scanner.

9.7. On my Linux 2.4.16-kernel, the scanner causes a system-freeze

There's a bug in the kernel USB scanner driver that may freeze your system. Update to kernel version 2.4.17.

9.8. Using the "alternate" uhci kernel driver, scanning works but is much slower than it was before.

Several people have noticed severe performance degredation with the latest uhci (JE) drivers. The alternative module named "usb-uhci" (also included in the standard kernel distribution, option CONFIG_USB_UHCI) does not show this effect and allows much faster scans.

9.9. USB hardware problems.

Some people have reported problems when the scanner is connected through an USB hub, or using an nForce USB card. In all cases, faulty hardware seemd to be the problem. And in many cases, the hardware seemed to function on Windows systems (at least for a while).

complete PDF
Complete EPUB
One page

10_network PDF

(pdf) (epub) (1 page)
1 Intro
2 What is Sane?
3 Buying a scanner
4 How do I install
6 Scanner specifics
7 . SCSI problems
8 Paralel port scanners
9 USB Problems
10 Network-scanning
11 I can make a scan! Great, what's next?

10. Network-scanning

10.1. Is there a "howto" for saned?

For Linux-systems, look at http://www.penguin-breeder.org/sane/saned/

10.2. It doesn't work; can you give me some hints?

Try to make a local scan on the server where the scanner is. If you do not have a graphical environment (like X) there, use scanimage. In the saned-configuration file net.conf, you must add the name of the server where the scanner lives. saned.conf: add host name that is allowed to scan Be sure that the inetd starts up the correct saned. Also, be sure that the UID that runs saned is allowed to make a scan.

10.3. Xinetd on RedHat reports: access by user@(null) rejected.

You'll need a file /etc/xinetd.d/sane to start-up the daemon with the following contents:

 # default: off
 # description: The sane server accepts requests for network
 access to a local\
 #       scanner via the local network.
 service sane
 {
         port                    = 6566
         socket_type             = stream
         wait                    = no
         user                    = saned
         group                   = saned
         server                  = /usr/local/sbin/saned
 }

In /etc/services you need an entry:

   sane      6566/tcp

10.4. Network scanning: after some time Xsane (gimp-plugin, xsacnimae etc) crashes.

When you use a network connection to a scanner server and you start xsane and do not do anything for some time xsane crashes when you change anything.

This happens because the network connection is terminated after some time of inactivity. This does happen with all frontends when you use network scanning.

10.5. Is there documentation how to use SANE on a server with Windows clients?

For the Unix side:

man saned

man sane-net

http://www.penguin-breeder.org/?page=sane-net

For the Windows side: or http://www.xsane.org/.

10.6. Saned doesn't work from inetd, but it works from command line, with a Samsung

The "mfpport" Samsung's proprietary module always print some information on STDERR and this prevent the correctly run of saned from inetd. So you need to create a wrapper that run saned and put on /dev/null, or a logfile, the STDERR, here it's how:

create /usr/sbin/saned_wrapper:

 #!/bin/sh
 #
 # Call saned with stderr redirected, to avoid strange crash
 exec /usr/sbin/saned 2> /var/log/saned.log

 chmod 755 /usr/sbin/saned_wrapper

then add to /etc/inetd.conf this line:

 sane-port stream tcp nowait root.saned /usr/sbin/saned_wrapper

and do a /etc/init.d/inetd restart Check your binary path before copy/paste the line above.

11. I can make a scan! Great, what's next?

11.1. Do you have some scanning-tips for me?

There are many sites that provide information. Try, for example: http://www.scantips.com

11.2. Jpeg, png, pnm and so-on. What does that mean?

These are file-formats.

JPEG

Joined Photographic Experts Group

is a compressed file format. The compression is lossy, which means that the more you compress, the more quality you loose. It is good for relatively small files with true-color. Very popular.

PNG

Portable Network Graphics

This fileformat supports indexed color, grayscale and compression. It also supports an alpha-channel. Not all viewers seem to support this fileformat.

PNM

Portable aNyMap

It's a bitmap with minimal header.

PS

PostScript

This is a printer-language. Every serious printshop supports it. You can view Postscript-files with Gohstscript.

RAW

Raw data.

Lots of bits & bytes.

TIFF

Tagged Immage File Format

Basically a bitmap-format. Supports 1, 4, 8 or 24 bits colors. Supports some form of compression, but creates relatively large files. Ideal for images you want to export to other programs.

11.3. Many options in scanimage are inactive. Can I activate them?

This may depend on:

Your backend. Your backend (and most of the time your scanner) may not support these options. Read the backend-doc. Your scanning-mode. For example: bightness is disabled in line-art mode.

11.4. It used to work, but after some changes in setup I keep getting wrong color/gamma/brightness etc.

The settings for xscanimage are kept in an rc-file. If you delete this file, you can start from scratch, which is often better than the situation you're in now. The file is ~/.sane/xscanimage/backend:device.rc

11.5. The backend supports only 8 and 12 bits but my scanner can use a color depth of 24 bits!

The first two values are bits per color whereas the last one (24) is bits per pixel. So in reality 8 bits per color is 24 bits per pixel and 12 bits per color corresponds to 36 bits per pixel.

11.6. Xsane does not support my favorite fileformat. What now?

You can use Xsane as a plugin for GIMP. Gimp supports many additonal fileformats.

For other fileformats, you'll need to find a converter like http://www.imagemagick.org/

11.7. I need a multi-page scan and xsane only produces single-page scans

The easiest way to get multi-page files from your scans is:

make a new directory

scan your pages to that directory using the automatic counter from the frontend. Call the first page 0001.png

use Imagemagick's "convert" as follows:

 convert 0001.png 0002.png ... out.pdf

You now have a multi-page PDF document.

11.8. Everything works, except the FAX-option

Make sure you have a working FAX-setup. Xsane does not talk directly to the fax-modem, but uses external commands for faxing.

You can modify the setup under:

Preferences

Setup

FAX options

11.9. Tell me about Resolution, Gamma, Brightness and Contrast

Resolution is the number of pixels per length. If you have 100 DPI (Dots Per Inch) resolution and you scan a surface of 1" x 1", you'll have 10 000 pixels. The higher your resolution, the better the image (generally) and the larger your files.

Gamma correction is done to compensate non-linearity in monitors, printers and scanners.

Brightness is defined by the Commission Internationale de L'Eclairage (CIE) as the attribute of a visual sensation according to which an area appears to emit more or less light. The brighter an image, the more white it looks.

Contrast is the sharp-ness of an image.

How do they work? The brightness controls the general feeling of brightness of he image. If you feel that the midtones are too dark, try adding some gamma-correction If the midtones are to light try a gamma corection If you want less midtones add some contrast.

You can find more information in the colorspace-FAQ by Charles A. Poynton. http://www.poynton.com/ColorFAQ.html

11.10. When scanning repeated patterns, I get strange (other) patterns

This might be the Moire-effect. Moire is caused by the interaction of the half-tone pattern in the document and the sampling of either the scanner or the scaler. The frequency of the pattern is the difference between the frequency of the halftone on the page and the sample frequency of the scaled resolution.

A solution would be to scan at a higher resolution (but then: weren't you already at the highest resolution of your scanner? ;-) and pass it though an anti aliasing filter.

11.11. Are there any OCR-packages availlable?

Both xsane and QuiteInsane are frontends that allow you to use an OCR package.

At Sourceforge, there is project jocr, also called gocr. http://jocr.sourceforge.net It seems to be quite usable, though my own experiences were not so good.

An other package is Clara http://freshmeat.net/projects/claraocr/ I was impressed by the recognition, though there are still some problems to be resolved. At the moment, this is the package of my choice. It requires a lot of training effort! However, nothing new came out since 2005.

There are many more packages, especially if you include the commercial ones.

The G(J)OCR project page also has links to five other free OCR packages: http://jocr.sourceforge.net/links.html , none of which I have tested.

11.12. Can SANE help archive my pictures, documents etc..

Yes it can. You can create digital copies of existing documents. But archival of documents in digital form requires maintenance. For example: most cd-writables are guaranteed only for a limmited period of time (5, 10 years depending on the quality). After some time you'll need to re-copy.

Another problem is the readability: If you stored on 8-inch floppy disks, you'll have a hard time rereading then nowadays.

The safest way to store your digital images (documents ...) is to have sevral copies. If one fails, you'll have the other copies to rebuild one. Use lots of error-correcting codes etc.

5. It doesn't work

5.1. It does not work; basic problem searching.

OK. Don't panic.

Henning Meier-Geinitz has made a program called sane-troubleshoot. It can be found at http://www.meier-geinitz.de/sane/sts/ Though not yet finnished, it may guide you to the problem you're having.

Otherwise try the following:

First thing to do is get the latest version of sane and the backend. Sane develops relatively fast, and it might be that your problem is already fixed.

Check the boot-messages ( /var/log/messages ); there should be some lines indicating your scanner; something like:

Vendor: AGFA Model: SnapScan Rev: 1.40, Type: Scanner ANSI SCSI revision: 02)

If not: go to the SCSI-section in this FAQ

Run a

 sane-find-scanner

If you have a SCSI or USB scanner, the scanner should be listed. If not: go to the SCSI or USB-section of this FAQ.

If you're using a SCSI-scanner do a

sgcheck

Or run the following script:

 #!/bin/bash
 for dev in /dev/sg* ; do
 echo "__________________"
 echo "$dev:"
 scsiinfo $dev
 done

If your scanner is not there, you have a SCSI-problem. alternatively, you might use

 cat /proc/scsi/scsi

do as root:

scanimage -L

this will give the list of scanners that is recognised. On Linux-systems, the kernel-modules are loaded automatically when they are needed. If you know what modules you need, you might load them using insmod If not, run scanimage -l tiwce.

5.2. I compiled SANE, but my scanner doesn't show in the device list or no Device selection dialog appears.

Depending on your platform/scanner, you will need time for a coffee, a pizza or an extra month of holiday :

We already told that, but ensure your scanner is in the supported scanner list. If your scanner is SCSI: Check that the SCSI card is supported by your OS. You may need to rebuild your kernel to add generic SCSI support.

Your SCSI card often display SCSI device on startup. If not, check cables and terminators.

Some operating system display available SCSI device on startup. Again, if not, check cables and terminators.

Check if your SCSI-module is correctly loaded (lsmod). If you installed a binary-package, check if /usr/local/lib is in /etc/ld.so.conf Make sure that the path to the sane libs (default: /usr/local/lib/sane ) is NOT listed in /etc/ld.so.conf repair the links from /usr(/local)/lib/libsane* -> sane/libsane-dll* and call ldconfig the same problem may occur when LD_LIBRARY_PATH includes the path to the sane libs. The path to the link libsane.so.1

/usr(/local)/lib has to be listed in the /etc/ld.so.conf or dynamically linked frontends will not be able to load the sane libs. Note that a default RedHat 6.2 ld.so.conf does not contain /usr/local/lib which is the default path for SANE-installations. Try setenv SANE_DEBUG_BACKENDNAME=255 for debug-messages. Also export SANE_DEBUG_DLL=255 may be good to look if the backend is loaded at all. If it is not mentioned in the debug log it may not be in dll.conf or commented out (e.g. mustek_pp). You may not understand all the messages, on the other hand you could recognise your mistake/the problem.

Ask in the sane-devel mailing list. If you changed the library-setup, especially /etc/ld.so.conf, you need to run ldconfig

5.3. Permissions: As root it works, but not for ordinary people

Anyone scanning must have read and write permissions on the scanner-device. Do a

 scanimage -L

This will give you the name of the device. For example:

 [ljm@ronsard ~]$ scanimage -L
 device `umax:/dev/sgd' is a UMAX     Astra 1220S      flatbed scanner
 [ljm@ronsard ~]$

The /dev/sgd is the name of the device. The easiest is to give everybody access chmod a+rw /dev/sgd You might also allow only a limited group. Some systems have addtional security build in. This might stop SANE from working. Look at the security log files.

In some cases, the permission of the scanner may be set and reset at login-time. Look for your scanner in the file /etc/security/console.perms and comment-out those lines. For users of the device filesystem: edit /etc/devfs/perms which is used to set the device permission in the dev file system. In this file you'll find the folowing line:

 REGISTER ^sg[^/]* PERMISSIONS root.root 0600

As the next line insert the following text:

 REGISTER ^sg4 PERMISSIONS root.scanner 0660

or any other sg-number your scanner uses.

For most parallel port scanners you not only need read/write access to the device, you also have to be root (or your application needs to be setuid root). The reason for this is that the backend must control the actual parallel port via I/O ports. This is necessary for all Linuces (linuxes?) 2.1 and above.

An exception might be the backends that use the libieee1284.

For USB-scanner: have a look at the USB-section.

5.4. Sane hangs or crashes when I start a frontend for sane, what can I do?

Sometimes the backends that are not used make problems. Edit /usr/(local)/etc/sane.d/dll.conf and comment out everything but the backend used.

5.5. Scanimage gives a message "Invallid argument"

"Invalid argument" is what scanimage says when almost anything goes wrong. It does it if the device file is missing, or already open, or the kernel driver is missing, or the scanner responds with something it shouldn't, or not at all.

If the complete message looks like:

 scanimage: open of device /dev/usbscanner0 failed: Invalid argument

You seem to have specified a UNIX device name, or filename instead of selecting the SANE scanner or image acquisition device you want to use. As an example, you might want epson:/dev/sg0 or hp:/dev/usbscanner0 If any supported devices are installed in your system, you should be able to see a list with scanimage --list The specification for the -d option should be:

-d, --device-name=DEVICE use a given scanner device The format of DEVICE is backendname:devicefile (e.g. umax:/dev/scanner ).

5.6. I changed the dll.conf or other configuration files but nothing has changed

When trying to get things working, you may have made several installation tries. Therefore there may be different versions of the configuration files. You may have made the changes to the configuration file that is not in use.

You can verify this with:

 find /usr /etc -name dll.conf -print

If more than one dll.conf in a SANE driretory shows up, you have multiple installations.

5.7. I need more technical information for Linux

See: http://www.sane-project.org/README.linux