# Guide: Parallel port passthrough in Proxmox VE 8.3.1

### Why?

Recently I have been messing around with a 30+ year old film recorder, which runs over parallel on Windows 95/98.  
I don't have the space to dedicate a vintage PC to it, but I do have a low power Proxmox server with a parallel port!

However, there's fairly little documentation online about passing parallel ports through to a VM.  
I was only able to find [one slightly confusing thread](https://forum.proxmox.com/threads/kvm-host-parallel-port.2015/) from 2009 on the PVE forums!

So, here's a nice clear guide on how to do it!

### Prerequisites:

- A Proxmox 8 server with a parallel port  
    Honestly, this will probably work on any version, but I used PVE 8.3.1 running on an Asrock N3050B-ITX board.
- PuTTY, or whatever SSH client you're used to
- Physical access to said machine
- A keyboard and monitor

### Disclaimer:

<p class="callout danger">**Follow this guide at your own risk!**  
**I am not responsible for any mistakes, explosions, dead film recorders, or anything else!**</p>

That said, I have done my best to ensure this guide is as accurate as possible, and these instructions did work for me!  
(if I did make a mistake though, please [contact me](https://nycto.io/contact), and I'll fix it!)

However, I will not provide any support, so be warned!

### 1: BIOS Setup  


Go into the BIOS or UEFI of your chosen server, and find the setting for "Parallel Port Mode".

For my board, that was under Advanced &gt; Super IO Configuration.

[![BIOS.jpg](https://guides.nycto.io/uploads/images/gallery/2025-02/scaled-1680-/JjcivQATM8CDCm5Q-bios.jpg)](https://guides.nycto.io/uploads/images/gallery/2025-02/JjcivQATM8CDCm5Q-bios.jpg)

Make sure the parallel port is enabled, and that it's in ECP+EPP mode.   
The version of this mode doesn't really matter! (mine has 1.9 and 1.7)

Then, save and reboot into Proxmox.

### 2: Proxmox Setup

Open an SSH connection to your Proxmox host (not to a VM!), and login as root.

Then, check that Proxmox can see your parallel port with the following command

```bash
dmesg | grep parport
```

That should return something like this.

[![image.png](https://guides.nycto.io/uploads/images/gallery/2025-02/scaled-1680-/FGLrT3dVsMmzIL22-image.png)](https://guides.nycto.io/uploads/images/gallery/2025-02/FGLrT3dVsMmzIL22-image.png)

If it doesn't, double check your BIOS settings then try again.

Next, use this command to enable Proxmox' parallel port kernel module, *ppdev*.

```bash
modprobe ppdev
```

To make sure that it's enabled, run

```bash
ls -la /dev/parport*
```

You should now see something like this :)

[![image.png](https://guides.nycto.io/uploads/images/gallery/2025-02/scaled-1680-/x5i59npAswwdNNHo-image.png)](https://guides.nycto.io/uploads/images/gallery/2025-02/x5i59npAswwdNNHo-image.png)

Now you'll need to make sure that module is loaded at every boot, by adding it to */etc/modules*.

Open */etc/modules* in your favourite text editor (I used nano), then add *ppdev* on a new line.

```bash
nano /etc/modules
```

[![image.png](https://guides.nycto.io/uploads/images/gallery/2025-02/scaled-1680-/JGienlEAJBjHUO9s-image.png)](https://guides.nycto.io/uploads/images/gallery/2025-02/JGienlEAJBjHUO9s-image.png)

Save (ctrl+O in nano), exit (ctrl+X), and reboot your Proxmox host.

```bash
reboot now
```

Finally, to make double sure that it's enabled on boot, run this again after Proxmox has rebooted

```bash
ls -la /dev/parport*
```

You should see exactly the same output as the first time you ran it :)

If so, you're now ready to pass it through to a VM!

### 3: VM Setup

To pass the port through to a virtual machine, just run this

```bash
qm set 100 -parallel /dev/parport0
```

<p class="callout info">Replace 100 with the ID of your virtual machine!</p>

<p class="callout warning">Make sure the VM isn't running!</p>

I've only tested this with i440fx/SeaBIOS type VMs, but it'll probably work with q35 too.

Now start/restart your chosen VM, and check to see if the port is available.

[![image.png](https://guides.nycto.io/uploads/images/gallery/2025-02/scaled-1680-/Ihrfx95ZicIF9dGH-image.png)](https://guides.nycto.io/uploads/images/gallery/2025-02/Ihrfx95ZicIF9dGH-image.png)

and that's it, you are now ready to print like it's 1995!

Also, if you're interested,   
I'll be doing a full project post soon about getting my film recorder running, so keep your eyes peeled over at [nycto.io](https://nycto.io)!

Happy printing! (or film recording!)