Bugzilla – Bug 185135
cannot configure parallel printer - no device found
Last modified: 2007-06-26 05:45:51 UTC
I have an Epson Stylus Color 640 printer connected to my parallel port. When I try to configure this printer with YaST under SuSE 10.1 final, I get the following error message: No parallel devices (/dev/lp?) found. It seems that your parallel port is not properly configured. There are indeed no such devices present, so taken at face value it seems this is a problem with udev. A friend told me he has the exact same problem with his printer, so it seems unlikely that this is an installation problem. The printer worked fine under SuSE 9.3 and I have not changed anything in the hardware setup or the BIOS of the computer.
We got several similar reports. Very likely it depends on particular BIOS settings and on particular parport hardware. It seems certain BIOS settings do no longer work for particular parport hardware. Please debug as follows: 1) Can you send a few bytes of plain text directly to the printer? I.e. does it print "Hello" when you run as root: echo -en "\rHello\r\f" >/dev/lp0 2) Does the CUPS parallel backend recognize the printer? I.e. what results (run as root): /usr/lib/cups/backend/parallel For me it results for example: --------------------------------------------------------------- direct parallel:/dev/lp0 "Canon BJC-2100" "Parallel Port #1" --------------------------------------------------------------- Did the cupsd recognize the parallel backend? I.e. what results lpinfo -v | grep parallel For me it results --------------------------------------------------------------- direct parallel:/dev/lp0 --------------------------------------------------------------- 3) Is the printer detected by the kernel? I.e. what results grep 'kernel:.*parport' /var/log/messages | tail -n20 For me it results --------------------------------------------------------------------- ... kernel: parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,EPP] ... kernel: parport0: Printer, Canon BJC-2100 ... kernel: parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,EPP] ... kernel: parport0: irq 7 detected ... kernel: parport0: Printer, Canon BJC-2100 ... kernel: lp0: using parport0 (polling). --------------------------------------------------------------------- Note the recommended BIOS settings for parallel port according to http://en.opensuse.org/SDB:Installing_a_Printer ------------------------------------------------------------------ The BIOS settings for the first parallel interface should be set as follows: IO address 378 (hexadecimal) Interrupt 7 Mode "Normal" or "SPP" or "Output-Only" (other modes may not work) DMA is disabled (should be automatically switched off using the modes above) ------------------------------------------------------------------ You may have to experiment with various parport settings in your BIOS to find a setting which works o.k. for you, see for example bug #173782, bug #155474, and bug #116655 4) Are all necessary kernel-modules for the parallel port loaded? Make sure that those modules are loaded: parport, parport_pc, and lp. lsmod | egrep '^parport|^lp' must list all three modules. If not, load them as root using modprobe parport modprobe parport_pc modprobe lp and use dmesg | egrep '^parport|^lp' | tail -n20 to get the last 20 kernel messages regarding parport. Are there kernel error messages? 5) I have in /etc/sysconfig/hardware/hwcfg-static-printer -------------------------------------------------------------- STARTMODE='auto' MODULE='lp' -------------------------------------------------------------- This makes the lp module loaded automatically for me. Do you also have such a file and if yes, what is its content? 6) As a workaround to force loading of the "lp" module: Either add the "modprobe lp" command to /etc/init.d/boot.local (which is the old-stlye way) or add "lp" to MODULES_LOADED_ON_BOOT in /etc/sysconfig/kernel (which is the new-stlye way).
Created attachment 90454 [details] results from tests proposed above
I have attached the output from all the tests you suggested, both from before I changed the BIOS and after. There was very little progress and printing still doesn't work. There were BIOS options for the IO address (which was already set to 0x378) and the Mode. I changed the latter to "Output-Only". There are no BIOS settings for the IRQ or DMA mode. After the reboot a device /dev/lp0 was present, but printing to it did not work. The device disappeared as soon as I checked the cabling to make sure there was no problem there. It never reappeared, even after power-cycling the printer.
PS - I found the following in dmesg: # dmesg | grep parport parport: PnPBIOS parport detected. parport0: PC-style at 0x378, irq 7 [PCSPP] parport0: Printer, EPSON Stylus COLOR 640 lp0: using parport0 (interrupt-driven). parport 0x378 (WARNING): CTR: wrote 0x0c, read 0xff parport 0x378 (WARNING): DATA: wrote 0xaa, read 0xff parport 0x378: You gave this address, but there is probably no parallel port there! parport0: PC-style at 0x378 [PCSPP,TRISTATE] parport: PnPBIOS parport detected. So IRQ 7 is being used, no problem there.
We have another (internal) bug report regarding the above comment #4. We work on it and I mark this one as a duplicate of bug #180390 *** This bug has been marked as a duplicate of 180390 ***
Peter, it might hopefully work with other BIOS settings. For example EPP or even ECP. Note that those modes normally do require an interrupt and ECP additionally requires DMA. To activate the interrupt mode, set in /etc/modprobe.conf something like options parport_pc io=0x378 irq=7 where io and irq must match to your BIOS settings. Then reboot with the printer connected and switched on.
I changed /etc/modprobe.conf as you suggested and changed the BIOS setting to EPP. After rebooting the printer was correctly detected: # dmesg | grep parport parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE,EPP] parport0: Printer, EPSON Stylus COLOR 640 lp0: using parport0 (interrupt-driven). The printer is set up now and works beautifully. Thanks!
*** Bug 187713 has been marked as a duplicate of this bug. ***
*** Bug 196670 has been marked as a duplicate of this bug. ***
*** Bug 201917 has been marked as a duplicate of this bug. ***
*** Bug 206380 has been marked as a duplicate of this bug. ***
Same problem for me with OpenSuSE 10.2, final. Parallel port not recognised. I left the settings in the BIOS as they are and added a line options parport_pc io=0x378 irq=7 dma=3 to /etc/modprobe.conf. After that, it worked, and my parallel port printer got recognised fine. Status=Resolved? I think this should work automatically (as it did e.g. in SuSE 9.3). This is at least for beginners very difficult to fix.
This was a duplicate and it is still a duplicate of bug #180390 which is still open (see comment #6). Therefore the status of this bug is "resolved" because it is resolved as a duplicate of another bug (it doesn't make sense to keep several same bug reports open at the same time). By the way: It _should_ work automatically but one cannot expect that the old legacy interfaces (like the parallel port) do work automatically in any case because there is no specified autodetection mechanism for legacy interfaces (i.e. any kind of autodetection is more or less only a "best effort" attempt). *** This bug has been marked as a duplicate of bug 180390 ***
Ok, thank you. I saw comment #6, but I cannot check the status of bug 180390, as it says "you have no access to this bug". Anyway, new info here is that it's still the same in 10.2 final, which is hopefully useful.
*** Bug 228795 has been marked as a duplicate of this bug. ***
*** Bug 258790 has been marked as a duplicate of this bug. ***
*** Bug 286361 has been marked as a duplicate of this bug. ***
*** Bug 287091 has been marked as a duplicate of this bug. ***