Most common trouble

Many installation troubles are caused by an older version installed. See for some hint on how to remove them. You cal also use the package manager of your linux distribution, you must be careful to not let it remove sane-frontends or xsane, because it may thinks you don't need it anymore ...

Hardware setting

BIOS setting

       When you have troubles using the umax_pp backend, get sure that your BIOS is set to EPP or ECP+EPP . ECP only works only with direct hardware access and is worth trying if every thing else fails.


       Disconnect any device connected to the pass-through port during the tests. When the scanner works, you can plug them back. This way, in case of trouble, you are sure it is related to the parallel port or to the scanner.


       Stop any daemon that could access parallel port in background such as lpd.

Tips and tricks

       Thefollowing page has some tips and tricks for you to try, in case of problems.

parport settings

       The first step to get the scanner running is to get the parallel port right. Usually parallel port support is compiled as a linux kernel module. The following script will detect the settings of the parport:  ppdiag
        Ran as root it will provide you usefull informations like:

S01: parport built as module
S02: parport0:
S02:    ADDR :0x378
S02:    IRQ  :7
S02:    DMA  :3
S03: no parport parameters
S10: ppdev built as module
S12: /dev/parport0 exists ...
S12: /dev/parport0 is readable ...
S12: /dev/parport0 is writable ...
successfull end ....

<>            In this case, we can see no EPP mode listed. This mean we won't be able to run the scanner unless we use ECP mode, whihc implies direct hardware access. The BIOS settings will have to be changed to EPP or ECP/EPP. If your BIOS doesn't let you change to such mode, you won't be able to run the umax_pp backend.
        But if you only have PCSPP,TRISTATE as available modes. You may still have a chance. Your parport may be wrongly detected.
To solve it, you can provide parameters to the parport module to help the linux kernel get it right:
- io=parallel port address (check BIOS to get it), typical values ares 0x378, 0x278 and 0x3BC.
- dma=none currently useless wrt linux parport support
- irq=interrupt number (check BIOS to get it), typical values are 7 or 5
- io_hi=ECR registers address, usually io+0x400, unless you have a PCI parallel port add-on card.

You can try them until you parallel port is correctly detected by inserted the kernel module with the above options on the command line (you must be logged as root):
rmmod parport_pc
modprobe parport_pc io=0x378 irq=7 io_hi=0x778 dma=none
Then type 'dmesg' to see it's correctly detected:
parport 0x278 (WARNING): CTR: wrote 0x0c, read 0xff
parport 0x278 (WARNING): DATA: wrote 0xaa, read 0xff
parport 0x278: You gave this address, but there is probably no parallel port there!
parport0: PC-style at 0x278, irq -787072976 [PCSPP,TRISTATE]
parport0: irq -787072976 in use, resorting to polled operation
In this case, the address provided is wrong and we have to try another one. The desired result is:
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA]

A typical module configuration (to put into 'modules.conf' or 'modprobe.conf' depending on your kernel version) looks like:
alias char-major-99 ppdev
alias parport_lowlevel parport_pc
options parport_pc io=0x378 io_hi=0x778 irq=7 dma=none

ppdev character device

        Check that the '/dev/parport*' have read/write permissions for all users.

         If ppdev is built as a module, check is shows up when doing 'lsmod':

    [root@Gurraen root]# lsmod
    Module                  Size  Used by    Not tainted
    ppdev                   6348   0  (unused)
    parport                25504   0  [ppdev]
    sg                     27372   0  (autoclean) (unused)
    sr_mod                 13976   0  (autoclean) (unused)
    sd_mod                 10924   0  (autoclean) (unused)
    scsi_mod               86420   3  (autoclean) [sg sr_mod sd_mod]
    maestro3               27280   0
    ac97_codec             11016   0  [maestro3]
    tulip                  41280   1  (autoclean)
    nls_iso8859-1           2876   1  (autoclean)
    nls_cp850               3612   1  (autoclean)
    vfat                   10348   1  (autoclean)
    fat                    33016   0  (autoclean) [vfat]
    rtc                     6940   0  (autoclean)

         You may try direct I/O access before trying ppdev. It seems there is a bug in ppdev or in the way it is used in the backend, which prevent the use of EPP mode. Use the parport address for the port option in umax_pp.conf file.

         If you intend to scan wide areas at 600 or 1200 dpi, ppdev will fail unless you have a really fast CPU. In this case you'll have to fall back to direct hardware access, logged as 'root'. 2000 pixels (8.5 cm) wide scan succeed on a K6-2 500 MHz. The height does not matter.

kernel config

      If you want to rebuild your kernel, I recommend you use the following settings:

Under 'Parallel port support' section:
    <M> Parallel port support
    <M> PC-style hardware
    < > Multi-IO cards (parallel and serial)
    [*] Use FIFO/DMA if available (EXPERIMENTAL)
    [*] SuperIO chipset support (EXPERIMENTAL)
    < > Support for PCMCIA management for PC-style ports
    [ ] Support foreign hardware
    [*] IEEE 1284 transfer modes

Under 'Character devices' section:
    <M> Support for user-space parallel port device drivers


       If the 'umax_pp' program in the tools directory can detect your scanner, but 'scanimage -L' doesn't show it, check that the umax_pp backend is not commented out in dll.conf . You must edit 'dll.conf' in the source directory before install, or in the directory it has been installed.
         Get sure ther isn't another 'dll.conf' from a previous install laying around. Doing 'find / -name dll.conf' will show you all such file. The only ones to keep are the one in the source directory, and the one which is installed via 'make install'.

If your system uses rpm, you can remove installed SANE packages with:
$ rpm -qa|grep sane
$rpm -e --nodeps libsane1-devel-1.0.12-4.1umax_pp sane-backends-1.0.12-4.1umax_pp libsane1-1.0.12-4.1umax_pp

parallel port access conflict

      You can check no other process is using the parallel port before doing a test by the command 'cat /proc/sys/dev/parport/parport0/devices/active'. It should tell 'none' when the backend is inactive.


       If you get:
user:/home/user/cvs/umax_pp/tools>./umax_pp -p -t 1
[sanei_debug] Setting debug level of umax_pp_low to 1.
[umax_pp_low] ioperm could not gain access to 0x378
failed to gain direct acces to port 0x378!

then the user that runs the program hasn't access to hardware. Log as root, or change program permissions.

download install use bugs and issues troubleshooting links lists changelog SourceForge Logo