[sane-devel] Help with ppdev /dev/parport0 on Mandrake Linux 9
Mark
mpalladi at starwon.com.au
Wed Oct 23 07:07:30 BST 2002
I'm a bit stuck on this one, and my knowledge of linux modules is limited.
I can't use sane for any user other than root, because /dev/parport0 doesn't
exist.
If I insmod -k ppdev,
then they appear, but when I try sane and scan, they both start OK, but hang
just before completion. In the case of scanimage ( sane ) it does this
[root at localhost hdpalm]# SANE_DEBUG_CANON_PP=255 scanimage
[sanei_debug] Setting debug level of canon_pp to 255.
[canon_pp] >> sane_init(0xbffff21c, 0x8049240): Canon Parallel SANE Backend
$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
should only have<
[canon_pp] sane_init: ># one of these lines!<
[canon_pp] sane_init: ># This is the default port to be used - others will be
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, can
begin with ~/ if needed.<
[canon_pp] sane_init: ># You can have as many of these as you like - lines
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
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 parport0<
[canon_pp] sane_init: calibrate line, calibrate
~/.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 with
ECP mode such as I/O<
[canon_pp] sane_init: ># errors. Nibble mode is slower, but more reliable.<
[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.
Valid modes are:<
[canon_pp] sane_init: ># AUTO (attempts to automatically detect by
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,
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 = 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
" 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
More information about the sane-devel
mailing list