[sane-devel] Help with ppdev /dev/parport0 on Mandrake Linux 9

Mark mpalladi@starwon.com.au
Wed, 23 Oct 2002 14:07:30 +0800


I'm a bit stuck on this one, and my knowledge of linux modules is limited=
=2E

I can't use sane for any user other than root, because /dev/parport0 does=
n't=20
exist.

If I insmod -k ppdev,

then they appear, but when I try sane and scan, they both start OK, but h=
ang=20
just before completion. In the case of scanimage ( sane ) it does this
[root@localhost hdpalm]# SANE_DEBUG_CANON_PP=3D255 scanimage
[sanei_debug] Setting debug level of canon_pp to 255.
[canon_pp] >> sane_init(0xbffff21c, 0x8049240): Canon Parallel SANE Backe=
nd=20
$Revision: 1.10 $
[canon_pp] sane_init: >> ieee1284_find_ports
[canon_pp] sane_init: 0 << ieee1284_find_ports
[canon_pp] sane_init: 1 parallel port(s) found.
[canon_pp] sane_init: port parport0
[canon_pp] >> init_device
[canon_pp] init_device: [configuring options]
[canon_pp] init_device: configuring opt: num_options
[canon_pp] init_device: configuring opt: resolution
[canon_pp] init_device: configuring opt: colour mode
[canon_pp] init_device: configuring opt: bit depth
[canon_pp] init_device: configuring opt: tl-x
[canon_pp] init_device: configuring opt: tl-y
[canon_pp] init_device: configuring opt: br-x
[canon_pp] init_device: configuring opt: br-y
[canon_pp] init_device: configuring opt: calibrate
[canon_pp] init_device: done opts
[canon_pp] << init_device
[canon_pp] sane_init: ># Define which port to use if one isn't specified =
- you=20
should only have<
[canon_pp] sane_init: ># one of these lines!<
[canon_pp] sane_init: ># This is the default port to be used - others wil=
l be=20
detected<
[canon_pp] sane_init: >ieee1284 parport0<
[canon_pp] sane_init: Successfully parsed default scanner.
[canon_pp] sane_init: ><
[canon_pp] sane_init: ><
[canon_pp] sane_init: ># Define the location of our pixel weight file, ca=
n=20
begin with ~/ if needed.<
[canon_pp] sane_init: ># You can have as many of these as you like - line=
s=20
with ports that don't exist<
[canon_pp] sane_init: ><
[canon_pp] sane_init: ># will be ignored.<
[canon_pp] sane_init: >#<
[canon_pp] sane_init: ># Parameters are:<
[canon_pp] sane_init: ># calibrate /path/to/calibration-file port-name<
[canon_pp] sane_init: >#<
[canon_pp] sane_init: ># The format of port-name is dependant on your OS=20
version.<
[canon_pp] sane_init: >#<
[canon_pp] sane_init: ># If a file isn't speficied, the default name will=
 be<
[canon_pp] sane_init: ># ~/.sane/canon_pp-calibration-[port-name]<
[canon_pp] sane_init: ><
[canon_pp] sane_init: >calibrate ~/.sane/canon_pp-calibration-pp0 parport=
0<
[canon_pp] sane_init: calibrate line, calibrate=20
~/.sane/canon_pp-calibration-pp0 parport0
[canon_pp] sane_init: calibrate line is for unknown port!
[canon_pp] sane_init: ><
[canon_pp] sane_init: ># calibrate /etc/sane/my_calibration parport1<
[canon_pp] sane_init: ><
[canon_pp] sane_init: ><
[canon_pp] sane_init: ># Enable the next line if you're having trouble wi=
th=20
ECP mode such as I/O<
[canon_pp] sane_init: ># errors.  Nibble mode is slower, but more reliabl=
e.<
[canon_pp] sane_init: ><
[canon_pp] sane_init: >#force_nibble<
[canon_pp] sane_init: ><
[canon_pp] sane_init: ># Set a default initialisation mode for each port.=
 =20
Valid modes are:<
[canon_pp] sane_init: ># AUTO           (attempts to automatically detect=
 by=20
trying both methods)<
[canon_pp] sane_init: ># FB620P (10101010 style.. also works for FB320P)<
[canon_pp] sane_init: ># FB630P (11001100 style.. also works for FB330P,=20
N340P, N640P)<
[canon_pp] sane_init: ><
[canon_pp] sane_init: >init_mode AUTO parport0<
[canon_pp] sane_init: init_mode line is for unknown port!
[canon_pp] sane_init: ># init_mode FB620P parport0<
[canon_pp] sane_init: ># init_mode FB630P parport0<
[canon_pp] detect_mode: Opening port parport0
[canon_pp] detect_mode: Claiming port.
[canon_pp] detect_mode: Port supports ECP-H.
[canon_pp] detect_mode: Port supports interrupts.
[canon_pp] detect_mode: Port supports DMA.
[canon_pp] detect_mode: Using ECP-H Mode
[canon_pp] sane_init: >> initialise
[canon_pp] Scanner not ready (0xb). Attempting to reset...
[canon_pp] Timeout: Reset 2 response 1 (0x07 in 0x1f) - Status =3D 0x0b
[canon_pp] initialise: >> scanner_init
[canon_pp] NEW Send Command (length 10):
[canon_pp] << write[canon_pp] * Check Status:
[canon_pp] NEW read_data (2 bytes):
[canon_pp] -> ieee_transfer(2) *
[canon_pp] IEEE transfer (2 bytes)
[canon_pp] <- (2)
[canon_pp] Ready - 0x0606
[canon_pp] NEW Send Command (length 10):
[canon_pp] << write[canon_pp] * Check Status:
[canon_pp] NEW read_data (2 bytes):
[canon_pp] -> ieee_transfer(2) *
[canon_pp] IEEE transfer (2 bytes)
[canon_pp] <- (2)
[canon_pp] Ready - 0x0606
[canon_pp] initialise: << scanner_init
[canon_pp] NEW Send Command (length 10):
[canon_pp] << write[canon_pp] * Check Status:
[canon_pp] NEW read_data (2 bytes):
[canon_pp] -> ieee_transfer(2) *
[canon_pp] IEEE transfer (2 bytes)
[canon_pp] <- (2)
[canon_pp] Ready - 0x0606
[canon_pp] NEW read_data (38 bytes):
[canon_pp] -> ieee_transfer(38) *
[canon_pp] IEEE transfer (38 bytes)
[canon_pp] <- (37)
[canon_pp] -> ieee_transfer(1)
[canon_pp] IEEE transfer (1 bytes)



but doesn't complete.

Help with.
1. setting up the parallel port so that non-root users can use it
2. If solution 1 involves module ppdev, then how to stop the hanging.


Mandrake kernel is 2.4.19-16. I have read on a previous umax post about=20

" I assume you are using a kernel version >2.4.18. Since 2.4.19, and the
introduction of O_NONBLOCK semantics in /dev/parport"

and would like to know if there is a fix workaround for this.


Thanks
Mark