Where’s my parport0?

I need to call on the lazyweb once more.

The odd Windows program (Ashlar Vellum) that I need to use inside vmware has a copy-protection dongle that attaches to the parallel port. But vmware can’t seem to find the parallel port. By default it looks for /dev/parport0, which does not exist. If I use /dev/lp0 then it says “parallel0: We have detected an LP style device. This type of device has been deprecated in VMware Workstation. We have guessed that “/dev/parport0” corresponds to “/dev/lp0″ and will use that instead.”

So I guess that /dev/parport is the new thing in Linux, so I wonder why I don’t have it (with Ubuntu Breezy).This doesn’t seem like a vmware problem.

I have tried changing the IRQ number used for the parallel port in the BIOS, without effect.

$ lsmod | grep ppdev
$ insmod ppdev
insmod: can’t read ‘ppdev’: No such file or directory

$modprobe ppdev works
and it is loaded at startup if I put it in /etc/modules.

But I need to
$rmmod lp
to prevent it from claiming the port. I have added lp to /dev/hotplug/blacklist and a few other files that look similar, but it is still loaded at startup.

The dongle still isn’t recognised, but I haven’t tried it under non-vmwared Windows either.

15 thoughts on “Where’s my parport0?

  1. You need the ppdev and parport kernel modules loaded.

    t@freddy:~$ lsmod | grep ppdev
    ppdev 9764 0
    parport 35912 3 ppdev,parport_pc,lp
    t@freddy:~$ ls -l /dev/parport0
    crw-rw—- 1 root lp 99, 0 2005-12-24 14:05 /dev/parport0

  2. AFAI can remember, parport is a lower level interface to the parallel port which lp works on top of.

  3. Try modprobe instead of insmod Murray :-)

    ruben@tokyo:~ $ lsmod | grep ppdev
    ruben@tokyo:~ $ sudo modprobe ppdev
    ruben@tokyo:~ $ lsmod | grep ppdev
    ppdev 9668 0
    parport 39400 3 ppdev,parport_pc,lp

  4. modprobing ppdev made the parallel port sort-of work in vmware for me. (Mandrake 10.1, 10.2.) but only \

  5. AARGH! your captcha sucks; one failed submission and half my text was cut off.

    …but only sort-of; it made vmware see the port, and quit complaining, but the guest OS still insisted there was no dongle there, in blatant disregard of reality. YMMV.

  6. Hi Murray,

    I ever encountered this issue on Ubuntu. I asked on Ubuntu forum, but no replies. I still have not figured out the exact reason why it’s not there, however, you can create it yourself:

    /dev$ sudo mknod parport0 char 6 0

  7. sollution:

    parport0 is created by the kernel-module ppdev.

    “modprobe ppdev” should load it
    if not you need to configure your kernel to use it and recompile.

    then you do:

    “mknod /dev/parport0 c 99 0 -m 666”
    to create the devicenode if it’s not created on the fly avter the modprobe (if you have udev)

    that’s it.

  8. Here’s something that I noticed with vmware server 1.0 guys.. You don’t have to use “auto detect” or “/dev/parport0” because you can manually specify something else. All you do is delete what they have, and put whatever you want.

  9. Just remove the “lp” module and restart the VMWare image and you get the LPT1 working in the guest OS…

    Just type:

    #rmmod -v lp (as root)

    …or do the sudo $%$&&&*.. if you have Ubuntu :P


  10. Thanks for the first step.
    I still don’t get the rest working but maybe another time…

  11. I am having this exact same problem (under RedHat 9) — that is, I’m trying to run software under VMWare that has a hardware dongle that connects to the parallel port, and VMWare can’t see that there’s a parallel port at all. The VMWare docs (http://pubs.vmware.com/server1/vm/wwhelp/wwhimpl/common/html/wwhelp.htm?context=vm&file=devices_server.9.8.html) say to

    # rmmod lp

    but then when I do an lsmod, lp is still there — or rather, it’s been immediately reloaded by something. In /var/log/messages it says:

    kernel: lp0: using parport0 (polling).
    kernel: lp0: console ready

    I am unable to determine what reloads lp, so I don’t know how to prevent this from happening.

  12. My way of fixing it, will probably work for most ppl:

    In the kernel config (cd /usr/src/linux; make menuconfig), enable (if not enabled already):

    -> Device Drivers
    -> Character devices
    Support for user-space parallel port device drivers

    -> Device Drivers
    -> Parallel port support
    Parallel port support
    (and probably also PC-style hardware and Multi-IO cards?)

    compile the kernel:
    make; make modules_install

    and load the modules:
    modprobe ppdev; modprobe parport

    ppdev makes a /dev/parport0, with permissions 660 and owned by root:lp, so add yourself to the lp group (or change the permissions) if you need user access:
    gpasswd -a gerben lp; exit

    logout and login again..

  13. “I had trouble with /dev/parport0 until I set permissions to 666”

    Add yourself to the lp group too, that way when you reboot you’ll have full permission to the possibly dynamicly created lp device (which will likely come back with 660 perms).

    as root do: # adduser YOURLOGIN lp

    setting the perms to 666 is a convenient hack to save you logging in again just to access the lp port

Comments are closed.