Wednesday, April 18, 2018

Debian and Raspbian - Installing a CUPS Print Server and a Proprietary P1102W Print Driver on Linux

The problem was simple.  My printer.  HP LaserJet Professional P1102W.

The solution is a Raspberry Pi Model 3B and a fair amount of configuration.

Thanks, Craig for the (slice of) Pi.

This is how I got it to work on Debian Linux and on the RaspberryPi using Raspbian.  It is not an exhaustive step by step, but I did take notes while doing this because like anything, I will probably need to do this Yet Again.  If So, Maybe I will republish.  Stay Tuned.

The technology starts below at "The Setting" if you just want tech support.

The Back Story.  

Printers are just an annoyance at best in the Small Home Office setting, and this one is no exception.   It is a stripped down laser printer.  It comes with Wifi, and USB interface.  It has a power button, a wifi button, and an X button that I am assuming that will cancel this particular print job.

Since Printer Drivers are usually large to massive beasts that sit inside your computer and eat CPU cycles while only delivering very infrequent work, I avoid installing them. 

However, this printer needs proprietary drivers.  Linux had it in the installation software asking for the blasted things, and most Linux people hate proprietary drivers.

Myself included.

So if the printer does not need the driver to find your wifi, then don't install the driver and see if it works without.

Mine did not.  It wouldn't see my network with wifi and password which means it had to use USB.  I didn't want USB plugged into my computer(s) all the time which means I would have to use a print server.  I didn't want to sacrifice a laptop to that job, so mostly it sat.

If your network has a password to get onto it, you will definitely have problems unless you have ethernet on the printer unlike mine.
It was actually easier for me to send the print file on a PDF to a friend so he could print at work.

Thanks, Kevin.

The Law Of Unintended Consequences.

If you do one thing, you often have something happen that you did not expect or want.

In my case, it's all positive, it's good.

That little computer will become a file server with the addition of SAMBA and a line in the fstab file.  I've done that a couple times and since I made the decision to have a server in the house, the RaspberryPi will function as a "Departmental Server" with its four USB 2.0 Ports, three are available.

Documentation on that to come later when I get working on it all.  I'm happy to have printing working for now.

The Setting.

I was following the Debian Wiki Guide for SystemPrinting at https://wiki.debian.org/SystemPrinting

Setting up the Pi:

Pi has Raspbian installed via noobs, and is up to date.
Pi is booted to desktop and useable via VNC.
Terminal open as root on the Pi.
Printer is not connected to USB.
Printer is HPLaserJet P1102w.

So basically I have a teeny little $35 computer running something that I installed a derviative of Debian Linux called Raspbian.  I used the Raspberry Pi Foundation's recommended installation of Raspbian using Noobs.

Yes, I followed their steps to install Raspbian.
Yes, Raspbian was "vanilla and up to date" by the end of this process.
The Pi saw my network, and I enabled bluetooth, printing, sharing of the desktop via VNC, and that is it.
I did all my prep work on the Pi using the tools linked in the start menu and confirmed with Raspberry Pi Config.

Mind you I would not want to use it as my main machine, but it works well as a print server and allows me to do basic things like surf a few tabs and have a concurrent running game of Freeciv going.

Massive world, playing as Incas, on Easy against 5 AIs if you want to know.


The steps to get the software on the Pi:

In terminal as Root:
     apt install task-print-server

Plug printer into USB and reboot.

On the Pi, surf http:\localhost:631 to see the CUPS home page

Clicked Adding Printer

It wanted logon credentials
    used pi and default password - "raspberry"
    I later changed the default password to something less public and generic.

It immediately said that I was not authorized in the print queue, in CUPS.

I found this exchange on Debian's Forums https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=616718 that said that you have to add the user in Terminal as Root.
  • adduser root lpadmin
  • adduser pi lpadmin
Refreshed the page at http://localhost:631/admin

Got the Add Printer Dialog
     tick box Local Printers,
              HP Printer (HPLIP)     click Continue

I discovered that my Printer was not powered on.
    The printer has a nasty habit of turning itself off every couple minutes to save power.
Turn printer back on.
Returned to the Administration tab.
Clicked Add Printer
Under Local Printers,
    tick box that had my printer name listed as a USB printer
Clicked Continue


Filled in the optional information for name/description/location
    Clicked Share This Printer
    Clicked Continue

Waited for CUPS on http://LocalHost:631 for a bit

Verified the Printer Model Number and Ignored "requires proprietary plug in"
     (more on this later)
Clicked Add Printer



Set Printer Options
     Verified Media Size, Printout Mode, Media Type and Source
     Click Set Default Options

Got a message that it was set correctly.

Perform a few test jobs by printing out nonsense from a text editor.

Page refreshed to show the print queue for the Printer
Printer did not print with "Filter Failure" message, jobs sitting in Queue
  • Note, the proprietary plug referenced earlier is something that some printers need, that is handled after I got things configured.  I'm a bit out of order but I was successful.  If your printer does not require the proprietary plug in, you don't have to worry about this.  This Filter Failure is how I knew it was time to get that Proprietary Plug In Installed.

To Install the Proprietary Plug In:

I ran in terminal - sudo hp-setup -i

For installing plug-in the prompts I answered were
  • 0 (zero) for USB printer
  • d for download - download had error "Unable to receive key from Keyserver"
  • y yes to install
  • Yes to accept the stupid meaningless EULA
  • Y to agree that "this PPD file appears to be the correct one"
  • Enter a location description "Tucked In A Corner Somewhere"
  • Entered through "additional information for this printer"
  • Y to print a test page

At this point I was finished as far as the Pi was concerned.  The Pi would work as a print server for my network.  All I had to do was to go onto the client machine and add a printer.

Adding a Printer on another computer on the network using Debian with XFCE4 looked similar to doing the same task on any other Operating System, if you have used a printer, you have done this before.  On "this" computer, it is in the Applications menu (start), Settings, Print Settings.  Sign on with your handy Root password, click Add, then find your printer.

If you get stuck, I suggest you drop me a line other than "Why are you so tall" or "Who cut your hair, man?" and I can answer some basic questions.  At this point, this document has gotten long enough for a blog article.

If it did work for you, great, let me know!

No comments:

Post a Comment