Trying to make a cheap CNC machine to work, I have to connect through a parallel port. Unfortunately, I do not manage to make the parallel port to work.

It seem the PCI parallel port card is detected, but I do not achieve to transmit/connect anything to it.

How to make the parallel port working?

How to make the parallel port working with normal user privileges?

EDITED The port seem to works only under root privileges. That is probably the issue. But how to make the parallel port to work for normal users?


Note: My machine is a Debian Linux with RT kernel 4.9.

What I did tried:

The PCI parallel card is plugged into my computer.

Running $lsmod |grep ppdev return what seem a correct result:

ppdev                  20480  2 
parport                49152  3 lp,parport_pc,ppdev

Running $lspci -v Return information, that I don't fully understand:

03:01.0 Parallel controller: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller (prog-if 03 [IEEE1284])
    Subsystem: Device a000:2000
    Flags: bus master, medium devsel, latency 32, IRQ 22
    I/O ports at dc00 [size=8]
    I/O ports at d880 [size=8]
    Memory at fcfff000 (32-bit, non-prefetchable) [size=4K]
    Memory at fcffe000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: <access denied>
    Kernel driver in use: parport_pc

And more data: $dmesg |grep parport (note: I have on single parallel port) return

[   11.791907] parport_pc 00:02: reported by Plug and Play ACPI
[   11.791998] parport0: PC-style at 0x378 (0x778), irq 5 [PCSPP,TRISTATE,EPP]
[   11.888153] lp0: using parport0 (interrupt-driven).
[   11.888949] parport1: PC-style at 0xdc00, irq 22 [PCSPP,TRISTATE,EPP]
[   11.984195] lp1: using parport1 (interrupt-driven).

I downloaded a test application from here, which I run from the command line WITHOUT root permissions. It shows all the out-pins in red and all the in-pins in green. When pressing on an out-pin, it switch to green, but I suspect it does not mean anything.

PortTest script with Pin01 pressed

Finally, the ultimate test: I connected to the parallel port a LED between GND and PIN_02 (with 1k ohm resistor). If I connect it to BUZY (by default on), the led turn on, but while connected to PIN_01, it never light, even while pressing the button from the test application.

Led test

From all those test, I suspect the card is correctly installed, but due to some permission or other misconfiguration, it does not work.

I tried to run the PortTest with root admin, but it seem not happy with it.


The issue is with the privileges of the parallel port: by default, it is accessible only by users of the group lp. The root user is obviously allowed to it, but normal users are not.

Adding the user to the lp group make the parallel port accessible without sudo:

adduser <user-name> lp

After that, the parallel port is working and I could continue the configuration.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.