Setting up my HP Laserjet 1012 on my home server and configuring printing on client machines. I’ve had this printer forever, and it just keeps going. I want any device on the home network to have access to the printer.

The home server is running Arch Linux.

Install:

sudo pacman -S avahi cups hplip avahi nss-mdns

Enable Services. As root or sudo:

systemctl enable cups

systemctl start cups

systemctl enable avahi-daemon

systemctl start avahi-daemon

Configure CUPS

First, name the printer:

lpadmin -p hp_laserjet1012

Find the printer’s URI:

lpinfo -v

copy the URI, then enter it:

lpadmin -p -v [URI]

Discover the printers PPD:

lpinfo -m | less

Find the corresponding PPD file and copy it.

Set the printer’s driver, the PPD:

lpadmin -p -m [PPD]

Enable the printer:

lpadmin -p -E hp_laserjet1012

Enable sharing and remote configuration:

cupsctl –remote-admin –remote-any –share-printers

Configure Avahi

Edit the file /etc/nsswitch.conf and change the hosts line to include mdns_minimal [NOTFOUND=return] before resolve and dns

vim /etc/nsswitch.conf

hosts: mymachines mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns mdns Restart Services

systemctl restart cups

systemctl restart avahi-daemon

At this point, the printer ought to be working and shared on the network. You can set it as the default printer with:

lpadmin -d

You can print a test page from a text file like this:

lp /home/jason/textfile.txt

Set Up Clients

Depending on your setup, install requisite printing software. In my case on KDE Plasma machines running Arch Linux:

sudo pacman -S cups hplip system-config-printer print-manager

Install Avahi and set it up exactly like specified above. Enable and start/restart all the services. The printer ought to be available in the system settings and everything ought to just work.