[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

This is an old revision of the document!


Setting up a print server for home use out of any old Slackware box

After recently upgrading my home wifi network to use wpa2 my old edimax wifi print server stopped working due to incompatibility with wpa2. I did not want to have to leave a PC on all the time neither did I want to directly connect the PC I wanted to print from to the printer itself.

The most elegant solution would have been to setup some low power ARM device (naturally running Slackware ARM) to become a print server.

I know it's not a difficult thing but since the last time I did something like this a lot of things have changed so I thought that other people could benefit from a quickstart to get going really fast … so here we go:

Setting up the printer on the print server

First thing you might find handy to know is that it is not mandatory to have the correct print filter for the printer on the print server, the client is mandated with that burden. The print server needs only have the printer configured as a raw printer.

The printer server will need cups, cyrus-sasl and openssl packages (openssl is only mandatory if you wish to remotely administer cups). If your printer has a usb interface, like most currently, it will be necessary to also have these packages to assist the usblp kernel module: libusb, libusb-compat and usbutils. Once you have these installed on the print server you can then just give execute permissions to /etc/rc.d/rc.cups and then start it. If you intend to remotely administer it you might like to execute this command to allow it:

cupsctl --remote-admin

then fire up your browser and access

http://<your print server ip>:631 
or 
http://localhost:631 on the printserver itself

Go ahead and configure the local printer as a raw printer. Be sure to check the box for a shared printer.You can call the printer whatever you like but for convenience in this guide we will call it “test”. Your /etc/cups/printers.conf should look like this:

<Printer test>
UUID urn:uuid:8d60a6be-4d86-3abf-5b8d-d5a03f10a753
Info test printer
Location test location
DeviceURI usb://Samsung/CLP-510?serial=xxxxxxxxxxxxx. #your setup will depend on the printer brand on how it is connected to the print server
State Idle
StateTime 16147
Type 4
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy abort-job
</Printer>

If you have the drivers for your printer you can optionally configure it with the correct print filter but it's not mandatory. If you do have them it might be a good idea to configure it right just to check that the printserver can correctly use the printer.

Once the printer is configured you can then instruct cups to accept remote printing requests:

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

Setting up the printer on the print clients

Now go on the PC's where you want to access the printer and configure an ipp remote printer with the correct driver for the printer. The /etc/cups/printers.conf should have an entry similar to this:

<Printer test>
UUID urn:uuid:6abca077-c999-3d8a-5ce0-41b7bd3c2ddf
AuthInfoRequired none
Info test
Location study room
MakeModel Generic PostScript Printer #in my case it's a generic PS but this is dependent on your printer
DeviceURI ipp://<print server ip address>:631/printers/test
State Idle
StateTime 1387373858
Type 8400972
Accepting Yes
Shared No
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy abort-job
</Printer>

You may now try printing a test page on the client PC.

Sources

 howtos:network_services:slackware_print_server ()