• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst / Anleitung]Parallel Port Scanner Plustek 9636T

MTrebuko

Member
Hallo

Habe den Plustek Optic Pro 9636 T Scanner geschenkt bekommen. Ist ein LPT dingens. Man beachte dazu auch die Anleitung http://www.linux-club.de/viewtopic.php?t=13696&highlight=lpt+plustek

Wichtig vermute ich ist folgender Abschnitt in der FAQ: (da der Treiber pt_drv zunächst nicht zu finden war.)
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.
[/qote]

Nach obiger Umsetzung bekomme ich nun folgendes:
Eingabe:
Code:
export SANE_DEBUG_PLUSTEK_PP=20 ; /usr/local/bin/scanimage -L

Ergebnis:
[sanei_debug] Setting debug level of plustek_pp to 20.
[plustek_pp] PlustekPP backend V0.01-8, part of sane-backends 1.0.14
[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, 0xbfff3e80, (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, 0xbfff3e80, (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 = 0x080746b8
[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=0x7e and status=0x5e, port=0x0
[plustek_pp] p48xxReadWriteTest()
[plustek_pp] Can't find your model, asic = 0x5a
[plustek_pp] detectScannerConnection() returns -9031.
[plustek_pp] ************* ASIC9800x *************
[plustek_pp] ResetPort()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] ASIC = 0x81
[plustek_pp] ************* ASIC98001 *************
[plustek_pp] ModelSet9636()
[plustek_pp] ModelSet9360()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet9630() done.
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet9636() done.
[plustek_pp] P9636InitAsic()
[plustek_pp] DacInitialize()
[plustek_pp] ImageInitialize()
[plustek_pp] IOFuncInitialize()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] MotorInitialize()
[plustek_pp] 0x81
[plustek_pp] CCID = 0x00
[plustek_pp] P9636InitAsic() done.
[plustek_pp] ResetPort()
[plustek_pp] Test 0x55
[plustek_pp] Test 0xAA
[plustek_pp] Compare data=0x7e and status=0x1e, port=0x0
[plustek_pp] ioP98ReadWriteTest()
[plustek_pp] Putting Scanner (ASIC 98001) into Idle-Mode
[plustek_pp] detectScannerConnection() returns 0.
[plustek_pp] p9636InitP98001(0)
[plustek_pp] bData = 0x0000, PCB-ID = 0x00
[plustek_pp] CCD-ID = 0x00 = _CCD_3797
[plustek_pp] bSetScanModeFlag = 0
[plustek_pp] *** setupBuffers ***
[plustek_pp] Driverbuf(147360 bytes) needed !
[plustek_pp] pColorRunTab = 0x40365534 - 0x40364fa8
[plustek_pp] Adjust for 98001 ASIC
[plustek_pp] sb2 = 0x40341008, sb1 = 0x4034bbe8, Color = 0x4035bdb8
[plustek_pp] Pro = 0x403613a8, size = 147360
[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 = 15
[plustek_pp] pt_drv0: 9636T/12000T 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 98001)
[plustek_pp] ************* ASIC98001 *************
[plustek_pp] ModelSet9636()
[plustek_pp] ModelSet9360()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet9630() done.
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet9636() done.
[plustek_pp] P9636InitAsic()
[plustek_pp] DacInitialize()
[plustek_pp] ImageInitialize()
[plustek_pp] IOFuncInitialize()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] MotorInitialize()
[plustek_pp] 0x81
[plustek_pp] CCID = 0x00
[plustek_pp] P9636InitAsic() done.
[plustek_pp] ResetPort()
[plustek_pp] Test 0x55
[plustek_pp] Test 0xAA
[plustek_pp] Compare data=0x7e and status=0x1e, port=0x0
[plustek_pp] ioP98ReadWriteTest()
[plustek_pp] Putting Scanner (ASIC 98001) into Idle-Mode
[plustek_pp] detectScannerConnection() returns 0.
[plustek_pp] p9636InitP98001(0)
[plustek_pp] bData = 0x0000, PCB-ID = 0x00
[plustek_pp] CCD-ID = 0x00 = _CCD_3797
[plustek_pp] bSetScanModeFlag = 0
[plustek_pp] *** setupBuffers ***
[plustek_pp] Driverbuf(147360 bytes) needed !
[plustek_pp] pColorRunTab = 0x40365534 - 0x40364fa8
[plustek_pp] Adjust for 98001 ASIC
[plustek_pp] sb2 = 0x40341008, sb1 = 0x4034bbe8, Color = 0x4035bdb8
[plustek_pp] Pro = 0x403613a8, size = 147360
[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 : 9636T/12000T
[plustek_pp] Asic : 0x81
[plustek_pp] Flags : 0x00000280
[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] - done !
[plustek_pp] ioctl(_PTDRV_CLOSE_DEVICE)
[plustek_pp] *** cleanup buffers ***
[plustek_pp] Putting Scanner (ASIC 98001) into Idle-Mode
[plustek_pp] Lamp-Timer started!
[plustek_pp] ptdrvClose()
[plustek_pp] MiscRestorePort()
[plustek_pp] Releasing parport
[plustek_pp] attach: model = >9636T/12000T<
[plustek_pp] sane_get_devices (0xbfff5f38, 0)
device `v4l:/dev/video0' is a Noname BT878 video (Hauppauge (bt878)) virtual device
device `v4l:/dev/bttv0' is a Noname BT878 video (Hauppauge (bt878)) virtual device
device `plustek_pp:parport0' is a Plustek 9636T/12000T parallel port flatbed scanner
[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 98001) into Idle-Mode
[plustek_pp] Releasing parport

Das sieht doch ganz ok aus - oder? Aber nun weiß ich nicht weiter ... Wie schaff ich es nun, daß das Ding nun scannt? Was mich noch wundert, daß ich nach Eingabe von

Code:
modprobe pt_drv

Folgendes erhalte:
FATAL: Module pt_drv not found.

Und wenn ich Kooka starte, dann kann ich zwischen meiner Haupauge und meiner Haupauge Karte wählen. (???)

Grüße und Danke im Voraus
MT
 
OP
MTrebuko

MTrebuko

Member
Es funktioniert! Jippieh. Habe mir xsane-0.95-2.1.i586.rpm installiert und beim Start hat es meinen Scanner gleich aufgelistet. Funzt nun alles suppi. Sogar die Durchlichteinheit ist gesondert ansprechbar.

Alle Achtung.)

Anbei noch die anderen Versionen, die ich verwendet habe:
sane-1.0.15-0.pm.1.i586.rpm
bzw.
sane-backends-1.0.14.tar.gz
plustek-pp-0.43-4.tar.gz

Beste Grüße

MT
 
OP
MTrebuko

MTrebuko

Member
Habs nun ein wenig ausführlicher;-) (Alles ohne Gewähr. Hab nun 3 Tage nur mit meinem Scanner zugebracht. Hoffe, das hier nutzt jemand nochmal ...)

Zunächst besorgt man sich die nötigen Dinge:
Backend, Treiberfiles, Sources und evtl. Zusätze (gocr)
in meinem Falle:export
Code:
SANE_DEBUG_PLUSTEK_PP=20 ; /usr/local/bin/scanimage -L

plustek-pp-0.43-4.tar.gz
sane-backends-1.0.14.tar.gz
gocr-0.38-66.1.i586.rpm

Löschen sollte man vorher auch auf jeden Fall jegliche sane und xsane Version.

Man bachte auch, daß man evtl noch folgende Pakete vorher installieren muß:
make
gcc
kernel-sources
natürlich alles passend zum installierten kernel. Sofern das alles installiert ist, sollte man noch folgendes ausführen:
Code:
cd /usr/src/linux
make cloneconfig
make

Man gehe nun wie folgt vor:
Entpacke nun die Datei
sane-backends-1.0.14.tar.gz
In deinem /home/Benutzername/tmp
Verzeichnis. In diesem Ordner wirst du dann einen Ordner mit Namen ?backend? finden. Dort hinein entpackst du alles aus dem File:
plustek-pp-0.43-4.tar.gz

Nun wechseln wir unter ?root? in das Verzeichnis:

sane-backends-1.0.14

Und führen dort folgende Befehle aus:
Code:
./configure
make
make install

Das war der leichte Teil. Das sollte ohne Probs hinhauen.

Ich hab nun mal aus Vorsicht die Berechtigungen für den Parallelport angepasst. Muß sein, da man sonst den scanner nur abfragen kann, ihn aber nicht als user z.B. in xsane einbinden kann:

Code:
chmod 666 /dev/parport0

Falls der parport nicht da sein sollte, dann kann man das mit:

Code:
mknod /dev/parport0 c 99 0

beheben bzw. prüfen.


Der Befehl:

Code:
export SANE_DEBUG_PLUSTEK_PP=20 ; /usr/local/bin/scanimage -L

Bringt nun folgendes:


[sanei_debug] Setting debug level of plustek_pp to 20.
[plustek_pp] PlustekPP backend V0.01-8, part of sane-backends 1.0.14
[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 iscreated<
[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, 0xbfff3ec0, (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] Decoding device name >/dev/pt_drv<
[plustek_pp] >#<
[plustek_pp] >#option warmup -1<
[plustek_pp] >#option lOffOnEnd -1<
[plustek_pp] >#option lampOff -1<
[plustek_pp] attach (/dev/pt_drv, 0xbfff3ec0, (nil))
[plustek_pp] Device configuration:
[plustek_pp] device name : >/dev/pt_drv<
[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] sane_get_devices (0xbfff5f78, 0)

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
[plustek_pp] sane_exit

Nun kommen wir zum 2. Teil:

Folgende Dateien müssen angepasst werden:
dll.conf
plustek_pp.conf
/etc/modules.conf

In der ersten Datei müssen wir den Zaun vor plustek_pp entfernen.
In der Plustek_pp.conf darf man die Zeile mit dem Treiber pt_drv NICHT freischalten.

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

In der letzten Datei muß ich folgendes eintragen:

alias char-major-40 pt_drv
pre-install pt_drv modprobe -k parport
options pt_drv lampoff=180 warmup=15 port=0x378 lOffonEnd=0 mov=0 slowIO=1

Wenn man hier etwas verändert hat, sollte man anschließend

Code:
depmod -va

ausführen.

Wir wechseln nun in das Verzeichnis unter:

/home/Benutzername/temp/sane-backends-1.0.14/doc/plustek

nicht,

/home/Benutzername/temp/sane-backends-1.0.14/backend/doc/plustek

denn immer, wenn ich hier kompiliert hab, kam nur müll raus.

Man nun folgenden 3 Schrittbefehl aus:

Code:
./MakeModule.sh

Nun wird das Modul erstellt und auch die Schritte durchgeführt, die das Module anschließend laden und indtallieren.

Doch hier kommt es zu folgendem Fehler (evtl.)

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


Nun sollte man nach dem Befehl:

Code:
export SANE_DEBUG_PLUSTEK_PP=20 ; /usr/local/bin/scanimage -L
folgendes erhalten:

[sanei_debug] Setting debug level of plustek_pp to 20.
[plustek_pp] PlustekPP backend V0.01-8, part of sane-backends 1.0.14
[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, 0xbfff3e80, (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, 0xbfff3e80, (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 = 0x08051a38
[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=0x7e and status=0x5e, port=0x0
[plustek_pp] p48xxReadWriteTest()
[plustek_pp] Can't find your model, asic = 0x5a
[plustek_pp] detectScannerConnection() returns -9031.
[plustek_pp] ************* ASIC9800x *************
[plustek_pp] ResetPort()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] ASIC = 0x81
[plustek_pp] ************* ASIC98001 *************
[plustek_pp] ModelSet9636()
[plustek_pp] ModelSet9360()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet9630() done.
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet9636() done.
[plustek_pp] P9636InitAsic()
[plustek_pp] DacInitialize()
[plustek_pp] ImageInitialize()
[plustek_pp] IOFuncInitialize()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] MotorInitialize()
[plustek_pp] 0x81
[plustek_pp] CCID = 0x00
[plustek_pp] P9636InitAsic() done.
[plustek_pp] ResetPort()
[plustek_pp] Test 0x55
[plustek_pp] Test 0xAA
[plustek_pp] Compare data=0x7e and status=0x1e, port=0x0
[plustek_pp] ioP98ReadWriteTest()
[plustek_pp] Putting Scanner (ASIC 98001) into Idle-Mode
[plustek_pp] detectScannerConnection() returns 0.
[plustek_pp] p9636InitP98001(0)
[plustek_pp] bData = 0x0000, PCB-ID = 0x00
[plustek_pp] CCD-ID = 0x00 = _CCD_3797
[plustek_pp] bSetScanModeFlag = 0
[plustek_pp] *** setupBuffers ***
[plustek_pp] Driverbuf(147360 bytes) needed !
[plustek_pp] pColorRunTab = 0x4028c534 - 0x4028bfa8
[plustek_pp] Adjust for 98001 ASIC
[plustek_pp] sb2 = 0x40268008, sb1 = 0x40272be8, Color = 0x40282db8
[plustek_pp] Pro = 0x402883a8, size = 147360
[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 = 15
[plustek_pp] pt_drv0: 9636T/12000T 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 98001)
[plustek_pp] ************* ASIC98001 *************
[plustek_pp] ModelSet9636()
[plustek_pp] ModelSet9360()
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet9630() done.
[plustek_pp] modelInitPageSettings()
[plustek_pp] A4 set
[plustek_pp] ModelSet9636() done.
[plustek_pp] P9636InitAsic()
[plustek_pp] DacInitialize()
[plustek_pp] ImageInitialize()
[plustek_pp] IOFuncInitialize()
[plustek_pp] IOInitialize()
[plustek_pp] * using readfunction >fnBiDirRead<
[plustek_pp] MotorInitialize()
[plustek_pp] 0x81
[plustek_pp] CCID = 0x00
[plustek_pp] P9636InitAsic() done.
[plustek_pp] ResetPort()
[plustek_pp] Test 0x55
[plustek_pp] Test 0xAA
[plustek_pp] Compare data=0x7e and status=0x1e, port=0x0
[plustek_pp] ioP98ReadWriteTest()
[plustek_pp] Putting Scanner (ASIC 98001) into Idle-Mode
[plustek_pp] detectScannerConnection() returns 0.
[plustek_pp] p9636InitP98001(0)
[plustek_pp] bData = 0x0000, PCB-ID = 0x00
[plustek_pp] CCD-ID = 0x00 = _CCD_3797
[plustek_pp] bSetScanModeFlag = 0
[plustek_pp] *** setupBuffers ***
[plustek_pp] Driverbuf(147360 bytes) needed !
[plustek_pp] pColorRunTab = 0x4028c534 - 0x4028bfa8
[plustek_pp] Adjust for 98001 ASIC
[plustek_pp] sb2 = 0x40268008, sb1 = 0x40272be8, Color = 0x40282db8
[plustek_pp] Pro = 0x402883a8, size = 147360
[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 : 9636T/12000T
[plustek_pp] Asic : 0x81
[plustek_pp] Flags : 0x00000280
[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] - done !
[plustek_pp] ioctl(_PTDRV_CLOSE_DEVICE)
[plustek_pp] *** cleanup buffers ***
[plustek_pp] Putting Scanner (ASIC 98001) into Idle-Mode
[plustek_pp] Lamp-Timer started!
[plustek_pp] ptdrvClose()
[plustek_pp] MiscRestorePort()
[plustek_pp] Releasing parport
[plustek_pp] attach: model = >9636T/12000T<
[plustek_pp] sane_get_devices (0xbfff5f38, 0)
device `plustek_pp:parport0' is a Plustek 9636T/12000T parallel port flatbed scanner
[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 98001) into Idle-Mode
[plustek_pp] Releasing parport

Hier sehen wir schön, daß der pt_drv geladen wurde. (obwohl er bei mir sich immer nur mit Fehlern laden läßt :(

Was man nicht tun muß, wenn man z.B. den pt_drv nicht geladen bekommt:

(z.B. durch solch output wie hier:

FATAL: Error inserting pt_drv (/lib/modules/2.6.8-24.13-default/kernel/drivers/parport/pt_drv.ko): Success
make: *** [load] Fehler 1)

(obiges posting beachten, dann ...)

a) man kommentiere nicht die folgende Zeile in dem file:
/usr/local/etc/sane.d/plustek_pp.conf
aus. (denn wenn man die öffnet, iss de Scanner weg :(

# device /dev/pt_drv

Wenn man folgendes bekommen sollte:

*** Warning:
"__subdf3" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__fixdfdi" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__nedf2" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__muldf3" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__divdf3" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__fixdfsi" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__adddf3" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__fixunsdfsi" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__ltdf2" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__floatsidf" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__gtdf2" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
*** Warning:
"__floatdidf" [/home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko]
undefined!
CC /home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.mod.o
LD [M] /home/arthur-p/build/sane-backends/doc/plustek/build/pt_drv.ko

Dann kann man folgendes probieren:

(von hier: http://www.linuxhacker.org/cgi-bin/ezmlm-cgi/3/2627
)

Hi,

at least, it seems, that something regarding the floating point support
is broken on that SuSE 2.6.5 Updatekernel.
When you edit the Makefile.kernel26 in the doc/plustek driectory
and simply append the

Code:
-mhard-float

Option to the line EXTRA_CFLAGS @ line 18, then the module will
be built and installed...

Ciao,
Gerhard

+#+#+#+#+#+#+#+#+#+#+#+#+#++#

Das hat bei mir zwar auch etliches an output verringert, und kam so auch wenig weiter, aber der pt_drv wollte er manuell immer noch nicht laden. Naja ? so geht's ja auch. Anschließend xsane installieren (und sane, wenn er mault, das macht bei mir keine probs. Scanner ist danach dennoch da) und ab geht dem mit dem scannen. Viel Spaß!


Einige sonst noch nützliche Dinge, die man probieren kann, was evtl hilft oder auch nicht. Bitte alles nur auf eigene Gefahr durchführen. Wenn was putt geht ? ich wars nich.

1) modules activation (if they aren't kernel compiled)
Code:
#modprobe lp
#modprobe parport
#modporobe parport_pc

3) You should also have read-write privileges with that device.
Use the usual commands:
Code:
ls -l /dev/parport0
#(check)
Code:
chmod 660 /dev/parport0
#(gain privileges)
Code:
addgroup user lp


fist check out (HOWTO #1 point 5) how to activate parallel-port in general

2. there should be a device named /dev/parport0

3. do emerge xsane

4. configure the sane-beckend, edit: /etc/sane.d/dll.conf

- enable plustek_pp and disable all others (here: "Plustek OpticPro P12")

5. configure your printer, edit: /etc/sane.d/plustek_pp.conf and set only these settings:

[direct]
device parport0

6. now the command scanimage -L should give us something like this:

device `plustek_pp:parport0' is a Plustek P12 parallel port flatbed scanner

7.the command xsane will start the scanning-frontend, probably you have to do it as root



> Hi,
>
> try pnpacpi=off in your kernel options and it should work.
> An other solution is to comment pnpacpi_disable_resources in
> drivers/pnp/pnpacpi/core.c in order to avoid that the resource are
> disable.



Both ways solves this problem for me. Now I can insmod/rmmod
parport_pc as many times as I want:

parport: PnPBIOS parport detected.
parport0: PC-style at 0x378, irq 7 [PCSPP]
pnp: Device 00:0b disabled.
pnp: Device 00:0b activated.
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378, irq 7 [PCSPP]
pnp: Device 00:0b disabled.
pnp: Device 00:0b activated.
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378, irq 7 [PCSPP]
....
Code:
cat /proc/interrupts

sollte den parport ausflisten. Anosntn fehlt der.

Falls es Probleme geben sollte, die vor allem das Laden des pt_drv betreffen, (und vor allem erst im letzten Schritt des ?load? auftreten, dann unbedingt prüfen, ob:

a)
Code:
modprobe parport_pc
b)
Code:
modprobe parport
c)
Code:
modprobe lp
d)
Code:
modprobe pt_drv

Bei mir lud er nämlich dann, so daß es sicher daran lag, daß der Unterbau fehlte. Zuvor konnte ich den Treiber auch nie laden. (Fehlermeldung beim Laden bleibt aber!)


rechner:/home/knackwurst # modprobe parport_pc
Folgende Anleitung fand ich auch im Netz ? und evtl. nutzt die ja auch ...

PARALLELPORTSCANNER EINRICHTEN AM BEISPIEL EINES MUSTEK 1200
************************************************************

Die Konfiguration sollte für jemanden, der einen Editor bedienen kann kein Problem sein.

Zuerst stellt man sicher dass , libieee1284, sane und xsane installiert ist.

Dann öffne mit einem Editor ALS ROOT die Datei

/etc/sane.d/dll.conf

#microtek
#microtek2
#mustek
mustek_pp <- Hier das Kommentarzeichen entfernen
#mustek_pp_ccd
#mustek_usb
#nec

Nun

editiere die Datei /etc/sane.d/mustek_pp, so dass sie so aussieht:

Nur bei MUSTEK Scannern! (is nur ein Besipiel)

# For Documentation see sane-mustek_pp(5)

#
# Scanner definition template:
#
# scanner <name> <port> <type>
# option <optname> <optval>?
# option <optname> <optval>?
# ...
#
# where:
#
# <name> is an arbitrary name for the scanner (eg. Mustek-1200CP)
#
# <port> is the parallel port to which the scanner is connected
# Possible values are 0x378, 0x278, and 0x3bc. For Linux, the
# mapping between ports an numbers is different for kernel
# version 2.2 and 2.4. Port 0x378 corresponds to lp0 on 2.4 kernel.
#
port 0x378
#
# <type> is an identification of the scanner type.
# Possible values are:
# - cis600 (for Mustek 600CP & OEM versions),
# - cis1200 (for Mustek 1200CP & OEM versions),
# - cis1200+ (for Mustek 1200CP+ & OEM versions),
# - ... (non-CIS versions will be added in the future)
#
# <optname> is a name of an option, and <optval> an optional value
# for the option.
# Currently available options for *CIS* type scanners are:
# - top_adjust <value>:
# Vertical adjustment of origin, in millimeter.
# Values between -5.0 and +5.0 mm are possible
# (floating point).
# Default: 0.0
# - slow_skip:
# Boolean option. Disables fast skipping to the start
# of the scan region. May be necessary in case fast
# skipping results in inaccuracies.
# Default: fast skipping enabled
# - bw <value>:
# Black/white discrimination value for lineart scans.
# Pixel values below that value are considered black,
# others are considered white. Range: 0-255.
# Default: 127
#
#
# Example for a LifeTec LT9350 (Mustek 1200CP clone):
#
# scanner LT9350 0x378 cis1200
# option top_adjust 0
# option bw 127
#
#
# Uncomment/customize to your needs
#
# scanner Mustek-600CP 0x378 cis600
scanner Mustek-1200CP 0x378 cis1200
option top_adjust 0
option bw 127
#
# scanner Mustek-1200CP+ 0x378 cis1200+

und speichere die Anderungen


Nun noch die Datei /etc/modprobe editieren

suche hiernach und übernehme die Einstellung
Code:
alias char-major-4 serial
alias char-major-5 serial

Code:
alias parport_lowlevel parport_pc
#<-------
Code:
options parport_pc io=0x378 irq=none,none
#<-------
Code:
# If you have multiple parallel ports, specify them this way:
# options parport_pc io=0x378,0x278  irq=none,none


Nun noch (evtl.) die Dienste starten

Code:
rcslpd  start

rcsane  start


Viel Spaß beim Scannen


Liste der unterstützten Scanner und mehr Infos gibt es hier: www.sane-project.org
[/quote][/code]
 
OP
MTrebuko

MTrebuko

Member
Hallo

ein kleines Update:

Den Scanner habe ich immer noch und die Installation geht mittlerweile auch viel einfacher.

1. man muss nur in der Datei:
/etc/sane.d/dll.conf

Den pp Scanner auskommentieren (siehe im obigen Beitrag)

2. die Berechtigungen des Parallel Ports anpassen, damit man unter "User" den Scanner benutzen kann. (Sonst geht es nur unter root)
(siehe Details oben)

Das wars. Echt suppi flott mittlerweile.

Beste Grüße
 
Oben