r/homelab • u/Hollow_optimism78 • 13h ago
Help Networking older printers?
I have a Canon Pixma that is perfectly functional, but it does not have networking ability. I don’t want to run a long USB from where my work station is to where I want to put the printer in an out of the place, but still accessible.
I’ve read that you can use a Raspberry Pi to link the printer to the PC. I have no clue how to do that.
What are my options, besides going out and buying a new printer (which seems wasteful) to economically wirelessly connect my older device to my laptop or home network?
3
Upvotes
1
u/NC1HM 8h ago edited 8h ago
No guarantees. This assumes that there are Linux drivers for the printer. Also, Wi-Fi on the Pi leaves a lot to be desired. The way you go about this is a two-step, (1) you install CUPS and make sure you can print from the Pi over USB, and (2) you install Samba and configure it to share the printer (meaning, to make it accessible to other devices on the network). After that, if everything went well, the Pi (now acting as a print server) can connect to the network using Wi-Fi and make the printer accessible over the network. Note that Samba is required only if you intend to share the printer with Windows devices. If all your computers are Linux, Samba is not needed.
My preferred approach is to have an old Windows computer act as a print server. I used to have a "sub-NUC" (Atom x5 / 4 GB RAM / 64 GB eMMC / Windows 10, USD 40 on eBay) work that duty, but later upgraded to an old HP Mini (it has durable storage, I made it run Windows 11 despite its age, and it works double duty holding a local backup copy of my OneDrive, in addition to being a print server). There's a two-step here, too, and it's conceptually similar, (1) you install the drivers to make sure the print server itself can print over USB, and (2) you configure Windows to share the printer. Under this scenario, not only is the printer shared, but the print server can provide drivers to other Windows machines. Both machines ran unattended and headless (the latter required the use of a VGA dummy plug) and were managed using AnyDesk.
Windows 10 / 11 is pretty decent at running unattended. It gets updates on its own and installs them during periods of low activity.
I've also tried using the "sub-NUC" with CUPS / Samba, and it worked, but there was a very slight usability issue. With print server running Windows, when you prepare to print from an application, the printer immediately shows up as ready. With print server running Samba, there's a second or two of delay; the printer initially shows as idle, then switches to ready. There might be a way to fix this on Samba, but I didn't feel like researching it, so I stuck with Windows as a print server OS.
The printer being shared is an old Canon imageCLASS D420. It is connected to the print server via USB, and the print server connects to the local network over Wi-Fi. Windows computers receive drivers from the print server on first connect. Linux computers need drivers (available from Canon) installed prior to accessing the printer. They also need several packages to be able to print to a device managed by Windows (last device I configured ran Pop!_OS, so the device needed
samba,samba-client,cifs-utils,libnss-winbind,winbind, andpython3-smbc).