I have an old but reliable Samsung laser printer that works really well but was lacking wifi support. So I plugged it to my home server (an old Lenovo laptop) running Proxmox and added a print server.

I first tried to put it in a container, but CUPS would not see the usb port, probably because of USB device access permissions within the LXC container. I then tried to install it on a VM, which proved quite easy.

In Proxmox

Create a new VM (debian for instance) for the print server, it does not need a lot of CPU and ram. I used an existing OpenMediaVault VM.

Open the new virtual machine settings, then Hardware > Add > Usb device:

Proxmox USB device selection step 1

Select the usb device corresponding to your printer:

Proxmox USB device selection step 2

Install CUPS on the print server

You need to install CUPS on the print server VM. Open the VM console

sudo apt update
sudo apt install cups cups-client

# Enable CUPS web interface
sudo cupsctl --remote-any
sudo systemctl restart cups

Install the drivers

Download and install the printer’s drivers on the VM

Set Up the Printer

Access CUPS web interface:

  1. Find the VM’s IP: ip addr show
  2. Open web browser to: http://<ip>:631
  3. Go to Administration → Add Printer
  4. Log in as root with VM password

Connect from Other Devices:

  • Windows: Add network printer using the VM’s IP address
  • macOS: Add printer via System Preferences → Printers & Scanners
  • Linux: Use CUPS web interface or lpadmin command

Your USB printer is now accessible over the network!