Can't config. parallel port

I can’t configure the parallel port on my compaq nx9010 laptop. OS is Suse 11.0

The following are snippets from two different log files:

----- kernel log end -----
>> misc.1: misc data
>> misc.1.1: open serial
>> misc.1.2: open parallel
----- exec: “/sbin/rmmod lp” -----
----- return code: ? -----
----- exec: “/sbin/rmmod parport” -----
----- return code: ? -----
----- exec: "/sbin/modprobe parport " -----
----- return code: ? -----
----- exec: “/sbin/modprobe parport_pc io=0x378 irq=none,none,none” -----
FATAL: Error inserting parport_pc (/lib/modules/2.6.25.16-0.1-pae/kernel/drivers/parport/parport_pc.ko): Invalid argument
----- return code: ? -----
>> misc.1.3: read floppy
read_block0: open(/dev/fd0) failed
>> misc.2.1: io
>> misc.2.2: dma
>> misc.2.3: irq
----- /proc/ioports -----

gconf.xml.schemas" to a read-only configuration source at position 4
Oct 6 00:15:43 linux-cjd5 su: (to root) root on none
Oct 6 00:15:45 linux-cjd5 kernel: parport_pc: file:///dev/lp0' invalid for parameter io’
Oct 6 00:15:45 linux-cjd5 kernel: parport_pc: file:///dev/lp0' invalid for parameter io’
Oct 6 00:15:45 linux-cjd5 modprobe: FATAL: Error inserting parport_pc (/lib/modules/2.6.25.16-0.1-pae/kernel/drivers/parport/parport_pc.ko): Invalid argument
Oct 6 00:15:45 linux-cjd5 kernel: lp: driver loaded but no devices found
Oct 6 00:15:46 linux-cjd5 kernel: parport_pc: file:///dev/lp0' invalid for parameter io’
Oct 6 00:15:46 linux-cjd5 kernel: parport_pc: file:///dev/lp0' invalid for parameter io’
Oct 6 00:15:46 linux-cjd5 modprobe: FATAL: Error inserting parport_pc (/lib/modules/2.6.25.16-0.1-pae/kernel/drivers/parport/parport_pc.ko): Invalid argument
Oct 6 00:15:46 linux-cjd5 kernel: lp: driver loaded but no devices found
Oct 6 00:18:17 linux-cjd5 gconfd (root-3268): GConf server is not in use, shutting down.
Oct 6 00:18:17 linux-cjd5 gconfd (root-3268): Exiting
Oct 6 00:18:22 linux-cjd5 su: (to root) bborgstrom on /dev/pts/0

Is it enabled in BIOS?

yes, I have dual boot Win XP and Open SUSE the parallel port works with XP but not SUSE

Same issue with my AMD Athlon™ XP 1900+
SUSE 11

Oct 16 07:23:02 linux-0yhq kernel: lp: driver loaded but no devices found
Oct 16 07:23:02 linux-0yhq kernel: parport_pc: Unknown parameter 378' Oct 16 07:23:02 linux-0yhq kernel: parport_pc: Unknown parameter 378’
Oct 16 07:23:02 linux-0yhq modprobe: FATAL: Error inserting parport_pc (/lib/modules/2.6.25.16-0.1-pae/kernel/drivers/parport/parport_pc.ko): Unknown symbol in module, or unknown parameter (see dmesg)

Any ideas?

Very weird. Parallel ports are a very much established technology. I haven’t never seen this problem before, Suse not creating the link to the device when the port is enabled in BIOS.

Is it a standard port (i.e., in a desktop motherboard) or something not so common, as a parallel adapter in a laptop expansion port?

If it is standard, you may try changing it’s settings in BIOS (type, IRQ, DMA, whatever). Do you have IRQ/DMA conflicts reported by the system? check your logs - boot, dmesg, etc.

Is there a parport0 device in your /dev directory (or a lp0 device)? If not, you may try to create parport0. See here: Parallel port device doesn’t exist, permissions change - openSUSE Forums

Is the problem unique to Suse 11? Did you try with Suse 10.x? Or you could try with another linux liveCD to see if it is recognized.

IIRC, windows had a config screen which gave you some info on the hardware. See what are the parameters for the (working) port in it, check against BIOS settings, and also if these resources are being used for something else in suse 11.

That’s all I can think of right now, Just wild guesses, really. Don’t expect much…

One more thing: in the “Unknown parameter `378’” message, 378 is the memory address used by the port, and is one of the parameters that can be changed in BIOS.

Haven’t tried 11 yet, but I had a similar problem with 10.x
I found a default configuration mistake.
In
/etc/modprobe.conf
option
options parport_pc io=378
is to be changed to
options parport_pc io=0x378
'cause by default 378d=17ah

Neither can I. SUSE 11.0 - It works on the same hardware under
SUSE 9.3. Here is what I posted elsewhere:

I seem to have a similar problem with printer adressing in
SUSE 11.0:

parport0 polls for /dev/lp0 but doen’t manage, I suppose:

System reports: ppdev0: claim the port first.

What happened before I got up to this point:

/dev/lp0 could be reached directly.
But only until I asked the system to find all hardware.
A printer was not found.
After that, /dev/lp0 could not be reached directly anymore.

I startet the system again and added the printer manually.
After that, the printer was adressed via cups
A pdf-page was sent to the printer, which was blinking.
But no page was printed.

Instead the system reported the above mentioned:
ppdev0: claim the port first.

All necessary options in the BIOS EC. and E… are given.
The hardware is working properly on SUSE 9.3

How do I get the system, to claim the port first?

Thanks
Hans-Josef

The problem that I encountered was installing the Lexmark Z43 as a parallel port printer.
First trying Yast Hardware Printers I was rejected with a diagnostic saying the /dev/lp0 was not configured.

The log /var/log/warn reports:
warn:Nov 9 14:14:26 linux-byv2 kernel: parport_pc: /dev/lp0' invalid for parameter io’

so in /etc/modules.conf
commented out the line: options parport_pc dma=none io=/dev/lp
and included: options parport_pc io=0x378 irq=none

Then gave the command: modprobe parport_pc.

Then I used the Common UNIX Printing System 1.3.7
http://localhost:631
to successfully install the printer. (Device URI: parallel:/dev/lp0

Hope that this works for you. :slight_smile:

A PS to my last posting: My openSUSE version is SUSE 11.
And I used the Common UNIX Printing System 1.3.7 after attempting unsuccessfully to configure the printer with Yast. When configured with CUPS printing works correctly for all applications that I have tried, though when I attempt a Test Print with Yast the test print goes to the wrong printer.

i am not sure if this is the same problem
I have an HP IIIp on a parallel port. It has been working well in 10.2 but I am attempting to upgrade to 11.0
So far all is well except there is no parallel pronter. Printing to a rempte printer is OK, ad I can cat to the /dev/lp0 but the spool does not move. I have tried changing ownership/mode of /dev/lp0 to no change. This is a major problem – it is my wife’s computer and she is not technical, but uses this system daily.

btw is it matters machine is running with no KDE or Gnome; AMD 1900+ 32bit 1.6GHz

I managed to make the printer working by your advise.

The config-file is named nowadays: modeprobe.conf

It already had the line:
options parport_pc dma=none io=0x378
which didn’t work.

Perhaps, because I didn’t give the command:

modprobe parport_pc

Before I used this command, I added “irq=none” to that line.
To put it in a nutshell:

  1. options parport_pc dma=none io=0x378 irq=none
    in /etc/modprobe.conf

  2. modprobe parport_pc

  3. Yast - Hardware - Printer: Testprint now worked.

  4. A pdf-File could be printed now.

Thanks for the advice. I don’t know, if it was the
interrupt “none” addition or the executing of the
command modprobe. (Starting the system should use
modprobe, so it must have been the interrupt addition.)

Hans-Josef Heck

See my answer to antoncook’s advice from today.

I had the same problem as you - and now it’s working.

Hans-Josef Heck

h-j-h wrote:
>
> Thanks for the advice. I don’t know, if it was the
> interrupt “none” addition or the executing of the
> command modprobe. (Starting the system should use
> modprobe, so it must have been the interrupt addition.)

If a device has a unique PCI or USB ID, then the module will be loaded
automatically. That is not true for the parallel port, among other devices.

Start YaST => System => /etc/sysconfig Editor. Click on the + next to System, on
the + next to Kernel, and on the line that says MODULES_LOADED_ON_BOOT. In the
box on the right-hand panel, enter parport_pc and exit. That will load the
module on bootup. Once this works, you might even try relaxing the irq=none
condition - you will get much better performance from your printer. At least I
don’t need to do it one the one system I have with a parallel printer.

Larry

Sigh… I went through this dance once before and forgot about it. Long story short, I had printing working under 10.3, updated to 11.1 and the wheels fell off. After a lot of googling and searching, I finally remembered…

lsmod shows parport is loaded but it takes parport and parport_pc to get to /dev/lp0 for even something as simple as

cat foo >> /dev/lp0

(where foo is a file with Hello, world in it)

Digging around, I found the comment about changing /etc/modules.conf and adding the options line

options parport_pc io=0x378 irq=none

However that wasn’t quite enough:

wxsat /etc# modprobe -v  parport_pc
insmod /lib/modules/2.6.27.7-9-pae/kernel/drivers/parport/parport_pc.ko dma=none io=0x378irq=none
FATAL: Error inserting parport_pc (/lib/modules/2.6.27.7-9-pae/kernel/drivers/parport/parport_pc.ko): Invalid argument

I had the options right, the address is right… what’s wrong? Look again at the line

insmod /lib/modules/2.6.27.7-9-pae/kernel/drivers/parport/parport_pc.ko dma=none io=0x378irq=none

Notice there is no space between the port address and the irq argument! >:( I then did a simple cut and paste to do this sequence:

wxsat /etc# insmod /lib/modules/2.6.27.7-9-pae/kernel/drivers/parport/parport_pc.ko dma=none io=0x378 irq=none
wxsat /etc# lsmod | grep -i parport
parport_pc             35032  1
parport                33832  3 ppdev,parport_pc,lp
wxsat /etc# cat /root/foo >> /dev/lp0

And found Hello, world coming out of my printer at last! Booyah!

So… a small question: why does 11.1 refuse to find the darn port and put in parport_pc???

Bump - after kernel updates show this is a persistent problem, I’ll ask the question again: why does 11.1 refuse to find the darn port and put in parport_pc?

Hi
Modules insert themselves fine here, not disabled in your BIOS is it?

From dmesg;


parport_pc 00:0c: activated
parport_pc 00:0c: reported by Plug and Play ACPI
parport0: PC-style at 0x378 (0x778), irq 7, dma 1
[PCSPP,TRISTATE,COMPAT,ECP,DMA] 
ppdev: user-space parallel port driver


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 11.1 (i586) Kernel 2.6.27.19-3.2-default
up 0:36, 2 users, load average: 1.55, 0.70, 0.41
GPU GeForce 6600 TE/6200 TE - Driver Version: 180.29

Malcolm wrote:
>

> Hi
> Modules insert themselves fine here, not disabled in your BIOS is it?
>
> From dmesg;
>


> parport_pc 00:0c: activated
> parport_pc 00:0c: reported by Plug and Play ACPI
> parport0: PC-style at 0x378 (0x778), irq 7, dma 1
> [PCSPP,TRISTATE,COMPAT,ECP,DMA]
> ppdev: user-space parallel port driver
> 

Modules insert themselves if, and only if, they present some kind of unique ID
to the system. Parallel port devices may not, thus they may need to be forced.
One of my laptops is like this. Run YaST => System => /etc/sysconfig Editor.
Click on the + next to System, then on the one by Kernel, then on
MODULES_LOADED_ON_BOOT. Add parport_pc to the box there.

Larry

RBEmerson wrote:
> RBEmerson;1934811 Wrote:
>> …]
>> So… a small question: why does 11.1 refuse to find the darn port and
>> put in parport_pc???
>
> Bump - after kernel updates show this is a persistent problem, I’ll ask
> the question again: why does 11.1 refuse to find the darn port and put
> in parport_pc?

maybe like yourself everyone who knows about this bug is waiting for
somebody else to post a bug report??

you have a choice:

  1. wait for it to be fixed because someone else posted the bug report, or

  2. wait for your posted bug to be fixed


assistant

Just to clarify the value fed to MODULES… - is that only the name of the module (parport_pc) or is it followed with arguments (parport_pc dma=none io=0x378 irq=none)?

Also, looking back through the dmesg output,

wxsat /root# dmesg | grep -i parport
parport_pc: `0x378irq=none' invalid for parameter `io'
parport_pc: `0x378irq=none' invalid for parameter `io'
parport_pc: `0x378irq=none' invalid for parameter `io'
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
lp0: using parport0 (polling).
wxsat /root#

It looks as though something might be feeding the wrong arguments to set up parport during the boot process. Where are these arguments supplied at boot time? FWIW, I finally started the module manually, using the procedure cited above (adjusted for the correct kernel version info). Still, I suspect the problem is really the boogered parameters break something, not a lack of module parport_pc being invoked.