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
