complete PDF
Complete EPUB
One page
(pdf)
(epub)
(1 page)
1 Intro
2 What is Sane?
3 Buying a scanner
4 How do I install
5 It doesn't work
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.
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:
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.
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.
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
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.
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.
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.
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.
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).
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 :).
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.
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
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.
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.
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.
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.
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.
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
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).
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.
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
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
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.
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.
Have a look at: http://www.kirchgessner.net/sanehpfaq.html
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.
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
|
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.
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 &
Sane is not platform-dependend. This means that a lot of binaries are possible:
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.
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.
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.
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.
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.
Yes, as long as you have a recent version. If you don't, you should upgrade.
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
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.
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
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.
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.
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.
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.
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
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.
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.
"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 ).
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.
See: http://www.sane-project.org/README.linux
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..
Take a look at: http://www.kirchgessner.net/sanehpfaq.html
There is a lot of development work going on. A separate testing-group has been formed.
Some hints:
http://www.ginko.de/user/oschwartz/snapscan
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.
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.
As I have an UMAX myself, there are many questions about the UMAX. Please send in logs of your experiences with other scanners.
TURN OFF THE SCANNER!!! QUICK!!
Leaving it on will seriously damage your 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)
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.
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.
Try the recent driver for the scsi card, take a look at:
http://www.garloff.de/kurt/linux/dc390/index.html
First read "man sane-scsi"!!! This gives the answer to many questions you might have.
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
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
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.
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.
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.
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.
The IDE via SCSI driver seems to create problems. Please advise the mailing list.
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
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
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
http://penguin-breeder.org/sane/mustek_pp has a section "troubelshooting" that might be helpfull.
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.
See http://www.zianet.com/k5di/usb/usb-scanner.txt
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
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.
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
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
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.
There's a bug in the kernel USB scanner driver that may freeze your system. Update to kernel version 2.4.17.
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.
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).
For Linux-systems, look at http://www.penguin-breeder.org/sane/saned/
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.
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
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.
For the Unix side:
For the Windows side: or http://www.xsane.org/.
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.
There are many sites that provide information. Try, for example: http://www.scantips.com
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.
|
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.
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
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.
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/
The easiest way to get multi-page files from your scans is:
convert 0001.png 0002.png ... out.pdf
You now have a multi-page PDF document.
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:
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
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.
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.
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.