Plustek-Driver TROUBLESHOOTING/FAQ - 19.04.2001
-----------------------------------------------

The driver exists now since March 2000, this is the first trial to setup
a FAQ. This leads into the following:
First we have a part, which is more a troubleshooting section and the second
one is the FAQ.
To search through this text, search for "SYMPTOM" or "Q:".

If you have some more FAQ entries, let me know <gerhard@gjaeger.de>

THANKS to Jochen <jochen@puchalla-online.de>, who roamed through the
mailing-list and gathered the different questions.


*******************************************************************************
*                           TROUBLE-SHOOTING                                  *
*                                                                             *
*                             DRIVER TOPICS                                   *
*******************************************************************************


SYMPTOM: "kernel-module version mismatch"
--------
"When I try to "make load" I get an error"

/sbin/modprobe pt_drv || exit 1
/lib/modules/2.2.14-6.0.6/misc/pt_drv.o: kernel-module version mismatch
/lib/modules/2.2.14-6.0.1/misc/pt_drv.o was compiled
for kernel version 2.2.14-5.0
while this kernel is version 2.2.14-6.0.1.

PROBLEM:
--------
You're using the wrong Kernel-header files.

The path
/usr/include/linux is a link to
/usr/src/linux/include/linux and
/usr/src/linux is normally a link to your current
kernel, i.e:
/usr/src/linux-2.2.14

If you now upgrade your kernel and you have
forgotten to correct the link /usr/src/linux, then
every kernel-module you build outside the
kernelsource structure will include the wrong
version information.

SOLUTION:
---------
Set the link /usr/src/linux
to your current kernel-source tree before recompiling
kernel-modules like pt_drv, then your version mismatch 
problem should be solved.



SYMPTOM: "Device or resource busy"
--------
Any attempt to "modprobe" or "make load" the driver leads
to this message.

PROBLEM:
--------
The driver refuses to load. During startup, the driver performs
some tests according to the parallel port and the connected
scanners.
If the parallel port is not supported or the scanner cannot be
found, the driver returns an error and the system will report
"device or resource busy"

SOLUTION:
---------
There's no way to provide a general solution. First of all
you should check your connections and the parallel port.
Also check power for your scanner.
If the problem still exists, enable the debug-messages of the
pt_drv module (see INSTALL).
Then check the messages after loading or send the output to
the mailing list.
Most of these problems are related to HW-problems. Before
giving up, check the scanner under Windows (not really a
good advice I know, but it helps to find HW-damage).
There was also one case were the internal plugs of the parport
connection were wrong...



SYMPTOM: "Unresolved symbols"
--------
"make load" or "modprobe pt_drv" produces this message:

/sbin/modprobe pt_drv || exit 1
/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_unregister_device
/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_enumerate
/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_register_device
/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_claim
/lib/modules/2.2.14-5.0/misc/pt_drv.o: unresolved symbol parport_release
/lib/modules/2.2.14-5.0/misc/pt_drv.o: insmod
/lib/modules/2.2.14-5.0/misc/pt_drv.o failed


PROBLEM:
--------
The driver needs at least the parport_pc and the parport modules
to work. They MUST be loaded prior to pt_drv. If these modules
are not loaded you get this message.

SOLUTION:
---------
Simply load the parport module. You can add this dependency to
your /etc/modules.conf (or /etc/conf.modules) file (see INSTALL).
Then everytime you load pt_drv with modprobe, parport will be loaded
automatically. After modifying this file, call
depmod -va



SYMPTOM: Scanner makes awful noise
--------

PROBLEM:
--------
This can have two major causes:
- You have an ASIC96001/3 based scanner, then the sensor hits the
  scanbed: !!! TURN OFF SCANNER POWER !!!

- You have an ASIC98001 based scanner, then the motor control does
  not work correctly --> hit the cancel button

SOLUTION:
---------
For the first case (ASIC 96001/3), there's no solution available. This
happens, when the driver can't keep track of the stepper motor. The image
you get is normally unusable.
The second case is often reported when the printer driver lp.o is
already loaded. So remove lp.o before loading pt_drv.



SYMPTOM: Printer starts to print while scanning
--------

PROBLEM:
--------
It has been reported, that some printers (esp. HP printers) start to
print, even during startup of the driver. This is a problem to printers
which use a bidirectional protocol for talking with the system.


SOLUTION:
---------
There is no possibility to handle this problem inside the driver.
One possibility is to switch off the bidirectional communication of the
printer. The other one is to connect the printer to another parallel port.


*******************************************************************************
*                                 SANE-topics                                 *
*******************************************************************************

Here you will not find how to setup xscanimage to work with GIMP or
how to compile sane to obtain xscanimage, for such questions, please
refer to the mailing lists at SANE (http://www.sane-project.org)


SYMPTOM: error in loading shared libraries: libsane.so.1: cannot open
-------- shared object file: No such file or directory

PROBLEM:
--------
The shared libraries for SANE have been installed to a
directory which is not in your "library path"

SOLUTION:
---------
SANE installs its shared libraries to PREFIX/lib/sane.
PREFIX is in general /usr or /usr/local. You should
either add the path to your /etc/ld.so.conf file or
set links to the libraries from a wellknown lib-path.
(i.e. ln -s /usr/lib/sane/libsane.so.1 /usr/lib/libsane.so.1)
In any case you should run "ldconfig -v"



SYMPTOM: "no SANE devices found"
--------
While testing with "scanimage -L" nothing happens. And when starting scanimage
this message is displayed.

PROBLEM:
--------
The frontend cannot find any sane-device, this might have several causes:
- the driver is not loaded
- you have no access to the driver
- the backend is not enabled
- the driver is not specified
- version conflict between the loaded driver and the backend

SOLUTION:
---------
Driver not loaded: check "cat /proc/pt_drv" if this does not exist, load
the driver (see INSTALL)

No access to the driver: check "ls -l /dev/pt_drv*" and you should get

crw-rw-r--   1 root     root      40,   0 Aug 29 15:18 /dev/pt_drv
crw-rw-r--   1 root     root      40,   0 Aug 29 15:18 /dev/pt_drv0
crw-rw-r--   1 root     root      40,   1 Aug 29 15:18 /dev/pt_drv1
crw-rw-r--   1 root     root      40,   2 Aug 29 15:18 /dev/pt_drv2
crw-rw-r--   1 root     root      40,   3 Aug 29 15:18 /dev/pt_drv3

If not, call "make load" in the driver source directory. This call sometimes
fails, so you might create the entries by using mknod:
mknod -m 0664 /dev/pt_drv c 40 0
mknod -m 0664 /dev/pt_drv0 c 40 0
mknod -m 0664 /dev/pt_drv1 c 40 1
mknod -m 0664 /dev/pt_drv2 c 40 2
mknod -m 0664 /dev/pt_drv3 c 40 3

The backend is not enabled: Check the SANE configuration in /etc/sane.d,
/usr/etc/sane.d or /usr/local/etc/sane.d (depending on your installation).
Your dll.conf MUST include an enabled "plustek" entry (no "#" in front of
that line)

The driver is not specified: Check the sane configuration (see above)
for the file plustek.conf and make sure that it contains at least
/dev/pt_drv as entry.

Version conflict: After enabling the SANE debug messages you will
get something like upon starting scanimage:
ioctl PT_DRV_OPEN_DEVICE failed(-9019)
Version problem, please recompile driver!
In this case, you MUST recompile the backend AND the driver and reinstall
both. This feature makes sure, that both always will use the same ioctl
interface.


PROBLEM:
--------
I have SANE-1.0.4 and there's no backend-directory after unpacking, so
what to do?

SOLUTION:
---------
You're wrong there is a backend directory!!!
Since SANE-1.0.4, there are two packages:
sane-backends
sane-frontends
For the installation, you need the backend tarball. This should give
you something like:
sane-1.0.4/sane-backends
and there below sane-backends is the backend directory. So you have
to unpack the plustek-sane...tgz in sane-backends.



*******************************************************************************
*                                   F A Q                                     *
*******************************************************************************

Q:  What does "Turbo" mean ?

A:  Turbo does not mean, that the scanner is faster ;-)
    There are currently three OpticPro9636P Scanners.
    OP9636P
    OP9636P+
    OP9636PTurbo
    The + and the Turbo models are quite the same and the difference between
    the Turbo and the non-Turbo	is the scan-sensor. The Turbo uses the same
    like the newer OP9636T/12000T and the non-Turbo uses the older ones
    from the OP9630....


Q:  Is it possible to use the front-button of my Plustek 9630P ?

A:  It is possible since version 0.37. After loading the driver,
    use the proc filesystem to get the button value:
    cat /proc/pt_drv/device0/button0


Q:  Is it possible to use the scanner in gimp ?

A:  You should be able to use xscanimage with gimp:
    1. Login as root
    2. Go into the gimp plug-in directory
       (on SuSE it is: /usr/lib/gimp/1.1/plug-ins/ )
    3. Find xscanimage : which xscanimage
    4. Create a symbolic link to xscanimage :
       ln -s "/path/to/"xscanimage  xscanimage
    5. logout as root
    Now call gimp, in the xtns menu you should find
    now the Acquire Image menu entry. That's all.
    If not, start gimp from an xterm and have a look at the output.


Q:  Is there any way to load the plustek_driver at bootup-time?

A:  Normally, there is no need to do so, because once you
    altered your /etc/conf.modules file (or /etc/modules.conf)
    and added the suggested stuff (see INSTALL file), you won't
    have to worry about loading the driver. It happens automagically. ;-)
    The driver will be loaded when needed (and eventually
    removed after a specific time of not using it).
	
    Nevertheless, another possibility is to do a modprobe pt_drv in the
    /etc/rc.d/boot.local (using SuSE) or
    /etc/rc.d/rc.local (using RedHat or Mandrake) file
    So the driver will be loaded at bootup-time...
    !!! YOUR SCANNER MUST BE ONLINE during power-up then !!!


Q:  I wonder if Mandrake 7.1's sane rpm file has this support already built in.
    My scanner light is coming on yet Xscanimage seems to report that there
    is no scanner present.

A:  The backend code will be included in Version 1.0.3 of sane and
    AFAIK Mandrake 7.1 only includes 1.0.2.
    Anyway go to the plustek-driver download page at
    http://home.t-online.de/home/g-jaeger/plustek.html
    download and install the driver.


Q:  Mandrake installs sane by default at install-time.
    Is there a way to install the driver with the preinstalled sane
    or should the preinstalled sane be removed first?
    If so, how do I remove the preinstalled sane?

A:  I recommend to uninstall the previous one.
    I think Mandrake uses RPM for managing the packages. To remove sane
    do the following (as root)

    Ask for all installed packages and filter sane:
    rpm -qa | grep sane
    you should get something like this:
    sane-1.0.1-94
    Now remove this package:

    rpm -e sane-1.0.1-94

    After theses steps, sane should be removed.
    I'm not sure,  but you might have to remove the /etc/sane.d manually...
    Now got to your sane-1.0.3 stuff and reinstall this
    as described. Before using, you might have a look
    at the dll.conf and enable only the plustek backend.


Q:  Now that there's a sane 1.0.3, how do i uninstall sane 1.0.2?
    Or can i install it over?

A:  In general you can install it over. BUT this has caused
    quite a lot of trouble, so I recommend to remove the 1.0.2
    completely and install 1.0.3...

    try the rpm-tool:
    Get a list of the installed packages and filter out sane:

    rpm -qa | grep sane

    You should get something like:

    sane-1.0.2-48

    Then use rpm to remove sane:

    rpm -e sane-1.0.2-48

    The other way is:

    rm -rf /etc/sane.d
    rm -rf /usr/lib/sane
    rm -rf /usr/lib/libsane*
    rm -rf /usr/include/sane
    rm -rf /usr/etc/sane.d
    rm -rf /usr/share/sane*
    rm -rf /usr/local/lib/sane
    rm -rf /usr/local/lib/libsane*
    rm -rf /usr/local/include/sane
    rm -rf /usr/local/etc/sane.d
    rm -rf /usr/local/share/sane*

    This should cover all the directories where maybe some
    sane files are installed...

