plustek@linuxhacker.org

plustek@linuxhacker.org


Subject: Re: New Parallelport SANE-Backend Plustek_PP
From: Ulrich Möhrke
Date: Mon, 3 Nov 2003 20:22:18 +0100

Hi Gerhard,

Am Sonntag, 2. November 2003 13:25 schrieb Jaeger, Gerhard:
> Hi Ulrich,
>
> On Sonntag, 2. November 2003 10:27, Ulrich Möhrke wrote:
> > Hi Gerhard,
> >
> > I tried your new backend but with no success.
>
> > I have a OpticPro 9636P and scanimage -L tells the following (SPP, EPP,
> > ECP and EPP+ECP mode, sometimes only with the second try, first one: no
> > devices found):
> > device `plustek pp:parport0' is a Plustek 600P/6000P parallel port
> > flatbed scanner
>
> First step: Enter the BIOS and set the parport to EPP, NO ECP!!!!

done

> before starting scanimage, enable the debug stuff:
> export SANE DEBUG PLUSTEK PP=255

done

>
> then you can call scanimage, the output you got might be interesting.

I attach the output of scanimage -L. I will also attach the content of 
configuration file /usr/local/etc/sane.d/plustek pp.conf.

> BTW. what new hardware do you have, which kernel?

Maybe the hardware is not the newest one, but it is new for me. How can I find 
out, what you are interested in? I don't know which board it is. Do I have to 
open the machine?
There are many SIS devices,
processor: AMD Athlon XP 2000+,

bios: Amibios, version 1.21.11
kernel 2.4.22 (debian sid 2.4.22-1-k7)

Ciao, Ulli


[sanei_debug] Setting debug level of plustek_pp to 255.
[plustek_pp] PlustekPP backend V0.01-5, part of sane-backends 1.0.12-cvs
[plustek_pp] ># Plustek-PP SANE Backend configuration file<
[plustek_pp] ># For use with Plustek parallel-port scanners<
[plustek_pp] >#<
[plustek_pp] ><
[plustek_pp] >#<
[plustek_pp] ># user either [direct] or [kernel] to access the scanner<
[plustek_pp] ># when using [kernel], device specifies the device-node, which is created<
[plustek_pp] ># by the kernel-module loader (applies only to Linux)<
[plustek_pp] ># when using [direct], device is used to set the parallel-port base address<
[plustek_pp] ># or a device-name suitable for libieee1284, i.e. parport0<
[plustek_pp] >#<
[plustek_pp] >[direct]<
[plustek_pp] >device 0x378<
[plustek_pp] Decoding device name >0x378<
[plustek_pp] ><
[plustek_pp] >#<
[plustek_pp] ># leave the default values as specified in /etc/modules.conf<
[plustek_pp] >#<
[plustek_pp] >option warmup    -1<
[plustek_pp] Decoding option >warmup<
[plustek_pp] >option lOffOnEnd -1<
[plustek_pp] Decoding option >lOffOnEnd<
[plustek_pp] >option lampOff   -1<
[plustek_pp] Decoding option >lampOff<
[plustek_pp] ><
[plustek_pp] ># model override switch, mostly for cosmetic changes, if the autodetection<
[plustek_pp] ># does not work or could not work correctly<
[plustek_pp] >#option mov 7<
[plustek_pp] ><
[plustek_pp] >#<
[plustek_pp] ># example for accessing the scanner via libieee1284<
[plustek_pp] >#<
[plustek_pp] >[direct]<
[plustek_pp] attach (0x378, 0xbfffc810, (nil))
[plustek_pp] Device configuration:
[plustek_pp] device name   : >0x378<
[plustek_pp] direct I/O    : yes
[plustek_pp] warmup        : -1s
[plustek_pp] lampOff       : -1
[plustek_pp] lampOffOnEnd  : yes
[plustek_pp] model override: 0
[plustek_pp] ---------------------
[plustek_pp] drvopen()
[plustek_pp] open: PtDrvInit failed: 4
[plustek_pp] open failed: -1
[plustek_pp] >device parport0<
[plustek_pp] Decoding device name >parport0<
[plustek_pp] ><
[plustek_pp] >#<
[plustek_pp] ># example for accessing the scanner via the kernel module<
[plustek_pp] >#<
[plustek_pp] >#[kernel]<
[plustek_pp] >#device /dev/pt_drv<
[plustek_pp] >#<
[plustek_pp] >#option warmup    -1<
[plustek_pp] >#option lOffOnEnd -1<
[plustek_pp] >#option lampOff   -1<
[plustek_pp] attach (parport0, 0xbfffc810, (nil))
[plustek_pp] Device configuration:
[plustek_pp] device name   : >parport0<
[plustek_pp] direct I/O    : yes
[plustek_pp] warmup        : -1s
[plustek_pp] lampOff       : -1
[plustek_pp] lampOffOnEnd  : yes
[plustek_pp] model override: 0
[plustek_pp] ---------------------
[plustek_pp] drvopen()
[plustek_pp] ptdrvInit(0)
[plustek_pp] Init settings done
[plustek_pp] ScanData = 0x080590e8
[plustek_pp] Assigning port handle 0
[plustek_pp] ptdrvOpen(port=0x0)
[plustek_pp] Try to claim the parport
[plustek_pp] Setting SPP-mode
[plustek_pp] Setting PS/2-mode
[plustek_pp] We're using libIEEE1284 I/O
[plustek_pp] Starting Scanner-Autodetection
[plustek_pp] ************ DETECTP48xx ************
[plustek_pp] ModelSet4800()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet4800() done.
[plustek_pp] P48xxInitAsic()
[plustek_pp] DacInitialize()
[plustek_pp] ImageInitialize()
[plustek_pp] IOFuncInitialize()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] MotorInitialize()
[plustek_pp] ResetPort()
[plustek_pp] Test 0x55
[plustek_pp] Test 0xAA
[plustek_pp] Compare data=0x7f and status=0xf, port=0x0
[plustek_pp] p48xxReadWriteTest()
[plustek_pp] Found a 96003 ASIC at Reg 0x13
[plustek_pp] ModelSet4830()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet4830() done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] p48xxDoTest()
[plustek_pp] Moving 2048 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 2048 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 2048 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 2048 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 2048 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 2048 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Bank 0 overwritten
[plustek_pp] found 10240 bytes of memory
[plustek_pp] tmpByte[0x18] = 0x02
[plustek_pp] tmpByte = 0x02, cntr = 69, AsicId = 0x10
[plustek_pp] Scanner is not a 9630 or above
[plustek_pp] Looks like a 600!
[plustek_pp] ModelSet600()
[plustek_pp] ModelSet4830()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet4830() done.
[plustek_pp] ModelSet600() done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] DacInitialize()
[plustek_pp] ImageInitialize()
[plustek_pp] IOFuncInitialize()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] MotorInitialize()
[plustek_pp] Putting Scanner (ASIC 96001/3) into Idle-Mode
[plustek_pp] detectScannerConnection() returns 0.
[plustek_pp] p48xxSetupScannerVariables()
[plustek_pp] No ASIC 97003 found.
[plustek_pp] Status-Register = 0xA6
[plustek_pp] Scanner has Full/Half Stepping drive
[plustek_pp] CCD is SONY Type
[plustek_pp] *** setupBuffers ***
[plustek_pp] Driverbuf(83240 bytes) needed !
[plustek_pp] pColorRunTab = 0x806e808 - 0x8070b30
[plustek_pp] *** DETECTION DONE, result: 0 ***
[plustek_pp] Switching lamp 0 on.
[plustek_pp] ptdrvClose()
[plustek_pp] *** cleanup buffers ***
[plustek_pp] MiscRestorePort()
[plustek_pp] Releasing parport
[plustek_pp] MiscGetModelName - id = 7
[plustek_pp] pt_drv0: 600P/6000P found
[plustek_pp] pt_drv0: Lamp-Timer set to 180 seconds.
[plustek_pp] pt_drv0: WarmUp period set to 30 seconds.
[plustek_pp] pt_drv0: Lamp untouched on driver unload.
[plustek_pp] Lamp-Timer started!
[plustek_pp] ioctl(_PTDRV_OPEN_DEVICE)
[plustek_pp] Lamp-Timer stopped!
[plustek_pp] Init settings done
[plustek_pp] ptdrvOpen(port=0x0)
[plustek_pp] Try to claim the parport
[plustek_pp] Setting SPP-mode
[plustek_pp] Setting PS/2-mode
[plustek_pp] We're using libIEEE1284 I/O
[plustek_pp] Starting Scanner-detection (ASIC 96001/3)
[plustek_pp] ************ DETECTP48xx ************
[plustek_pp] ModelSet4800()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet4800() done.
[plustek_pp] P48xxInitAsic()
[plustek_pp] DacInitialize()
[plustek_pp] ImageInitialize()
[plustek_pp] IOFuncInitialize()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] MotorInitialize()
[plustek_pp] ResetPort()
[plustek_pp] Test 0x55
[plustek_pp] Test 0xAA
[plustek_pp] Compare data=0x7f and status=0xf, port=0x0
[plustek_pp] p48xxReadWriteTest()
[plustek_pp] Found a 96003 ASIC at Reg 0x13
[plustek_pp] ModelSet4830()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet4830() done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] p48xxDoTest()
[plustek_pp] Moving 2048 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 2048 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Bank 0 overwritten
[plustek_pp] found 2048 bytes of memory
[plustek_pp] tmpByte[0x18] = 0x02
[plustek_pp] tmpByte = 0x02, cntr = 65, AsicId = 0x10
[plustek_pp] Scanner is not a 9630 or above
[plustek_pp] Looks like a 600!
[plustek_pp] ModelSet600()
[plustek_pp] ModelSet4830()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet4830() done.
[plustek_pp] ModelSet600() done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] DacInitialize()
[plustek_pp] ImageInitialize()
[plustek_pp] IOFuncInitialize()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] MotorInitialize()
[plustek_pp] Putting Scanner (ASIC 96001/3) into Idle-Mode
[plustek_pp] detectScannerConnection() returns 0.
[plustek_pp] p48xxSetupScannerVariables()
[plustek_pp] No ASIC 97003 found.
[plustek_pp] Status-Register = 0xA6
[plustek_pp] Scanner has Full/Half Stepping drive
[plustek_pp] CCD is SONY Type
[plustek_pp] *** setupBuffers ***
[plustek_pp] Driverbuf(83240 bytes) needed !
[plustek_pp] pColorRunTab = 0x806e808 - 0x8070b30
[plustek_pp] *** DETECTION DONE, result: 0 ***
[plustek_pp] ioctl(_PTDRV_ADJUST)
[plustek_pp] Adjusting device 0
[plustek_pp] warmup:       -1
[plustek_pp] lampOff:      -1
[plustek_pp] lampOffOnEnd: -1
[plustek_pp] ioctl(_PTDRV_GET_CAPABILITES)
[plustek_pp] ioctl(_PTDRV_GET_LENSINFO)
[plustek_pp] Scanner information:
[plustek_pp] Vendor : Plustek
[plustek_pp] Model  : 600P/6000P
[plustek_pp] Asic   : 0x10
[plustek_pp] Flags  : 0x00000206
[plustek_pp] Version: 0x00002c00
[plustek_pp] drvclose()
[plustek_pp] ioctl(_PTDRV_STOP_SCAN)
[plustek_pp] Waiting for Sensor to be back in position
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] Moving 32 bytes to scanner, IODELAY = 0...
[plustek_pp] ... done.
[plustek_pp] - done !
[plustek_pp] ioctl(_PTDRV_CLOSE_DEVICE)
[plustek_pp] *** cleanup buffers ***
[plustek_pp] Putting Scanner (ASIC 96001/3) into Idle-Mode
[plustek_pp] Lamp-Timer started!
[plustek_pp] ptdrvClose()
[plustek_pp] MiscRestorePort()
[plustek_pp] Releasing parport
[plustek_pp] attach: model = >600P/6000P<
[plustek_pp] sane_get_devices (0xbfffe8d8, 0)
[plustek_pp] sane_exit
[plustek_pp] ptdrvShutdown()
[plustek_pp] cleanup device 0
[plustek_pp] Lamp-Timer stopped!
[plustek_pp] Try to claim the parport
[plustek_pp] Putting Scanner (ASIC 96001/3) into Idle-Mode
[plustek_pp] Releasing parport
device `plustek_pp:parport0' is a Plustek 600P/6000P parallel port flatbed scanner


# Plustek-PP SANE Backend configuration file
# For use with Plustek parallel-port scanners 
#

#
# user either [direct] or [kernel] to access the scanner
# when using [kernel], device specifies the device-node, which is created
# by the kernel-module loader (applies only to Linux)
# when using [direct], device is used to set the parallel-port base address
# or a device-name suitable for libieee1284, i.e. parport0
#
[direct]
device 0x378

#
# leave the default values as specified in /etc/modules.conf
#
option warmup    -1
option lOffOnEnd -1
option lampOff   -1

# model override switch, mostly for cosmetic changes, if the autodetection
# does not work or could not work correctly
#option mov 7

#
# example for accessing the scanner via libieee1284
#
[direct]
device parport0

#
# example for accessing the scanner via the kernel module
#
#[kernel]
#device /dev/pt_drv
#
#option warmup    -1
#option lOffOnEnd -1
#option lampOff   -1


plustek@linuxhacker.org