Skip to content

Instantly share code, notes, and snippets.

@taniwallach
Created February 24, 2020 15:21
Show Gist options
  • Star 17 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save taniwallach/f1f6c81ce19b7d68f74d4b71d1db57a2 to your computer and use it in GitHub Desktop.
Save taniwallach/f1f6c81ce19b7d68f74d4b71d1db57a2 to your computer and use it in GitHub Desktop.
Installing HP-107w on Linux (using HP's unified linux driver ULDLINUX_V1.00.39_00.12.zip)
HP provides a downloadable "driver" for Linux for the HP 107w printer but there are NO reasonable install instructions provided, and following the "obvious" install process did not get the printer working.
The closest I found to HP install instuctions once I knew more is https://support.hp.com/in-en/document/c05588857
Since I found this annoying and wasted more time on getting this printer working under Linux, I'm sharing a summary of what did work (on Debian 10).
1. Download the driver file from https://support.hp.com/us-en/drivers/selfservice/hp-laser-100-printer-series/24494339/model/24494342 from under the "Basic Drivers" menu for when the OS is set to Linux.
The current version now is: "HP Laser 100 and HP Color Laser 150 Printer series Print Driver V1.00.39:00.12 5.9 MB Mar 20, 2019"
At present the Download link points to https://ftp.hp.com/pub/softlib/software13/printers/CLP150/ULDLINUX_V1.00.39_00.12.zip
2. Copy the downloaded file to /tmp/
cd /tmp
unzip ULDLINUX_V1.00.39_00.12.zip
cd ULDLINUX_V1.00.39_00.12/
tar zxvf uld.tar.gz
cd uld
# A plain run of "./install-printer.sh" fails with the message:
# **** Root privileges are required
# Continue IF you trust HP and the downloaded installer.
sudo ./install-printer.sh
3. Follow through the menus:
* "q" to leave "more" of the license
* "y" to accept the license
* "n" (not installing network device)
Summary from install:
**** Do you agree ? [y/n] : y
**** Are you going to use network devices ? If yes, it is recommended to configure your firewall.
**** If you want to configure firewall automatically, enter 'y' or just press 'Enter'. To skip, enter 'n'. : n
**** Registering CUPS backend ...
**** CUPS restart OK.
**** Print driver has been installed successfully.
**** Install finished.
4. Note: At least for me, this did not actually "install the printer" only the "unified linux driver" software needed to support the PPD installed below.
Essentially the installer we ran will create
* /opt/hp/ which mainly has /opt/hp/printer/share/ppd/
* /opt/smfp-common/ which seems to have the "real" driver code, and in particular has a directory called /opt/smfp-common/printer/bin which contains the "CUPS filter" rastertospl which the PPD found and installed below is calling.
Note: On my Debian 10 system a symbolic link was created in /usr/lib/cups/filter/ for rastertospl and pstosecps pointing to the files under /opt/smfp-common/printer/bin
5. The intaller places some PPD files in /opt/hp/printer/share/ppd/ - this is the list:
HP_Laser_10x_Series.ppd
HP_LaserJet_MFP_M436.ppd
HP_LaserJet_MFP_M433.ppd
HP_Laser_MFP_13x_Series.ppd
HP_Color_Laser_15x_Series.ppd
HP_Color_Laser_MFP_17x_Series.ppd
HP_LaserJet_MFP_M72625_72630.ppd
For the HP 107w - the obvious choice was HP_Laser_10x_Series.ppd so...
6. Use the OS tools to scan for a USB printer + select the PPD file found above. Using CUPS directly to install that printer should also work.
Procedure on Debian 10:
a. Open settings.
b. Devices
c. Printers
d. Unlock (top of window)
e. Add printer
f. It saw the HP USB printer - and install that. (It installs some basic settings for a "generic printer" but not the PPD.
g. Click on the "gear" icon + "Printer Details" and then on "Install PPD file" and navigated to /opt/hp/printer/share/ppd/ and select HP_Laser_10x_Series.ppd .
h. Chage the name to "HP-Laser-107w" (or whatever you like)
i. Exit the "Details" window with the "X" on the top left.
j. Click on the "gear" icon + "Printing options" and then set paper size.
k. Go ahead and click the "Test page" icon on the top left.
In my case, the printer made a click, warmed up, and printed the test page.
Success :)
Good luck with your new printer.
@taniwallach
Copy link
Author

ls -lt /usr/lib/cups/filter/ | head -n 4 reports:

total 2284

lrwxrwxrwx 1 root root     38 Feb 24 15:16 pstosecps -> /opt/smfp-common/printer/bin/pstosecps
lrwxrwxrwx 1 root root     40 Feb 24 15:16 rastertospl -> /opt/smfp-common/printer/bin/rastertospl
-rwxr-xr-x 1 root root  14328 Jan 19 10:36 gziptoany

@taniwallach
Copy link
Author

The top of the PPD file says for this printer says:

% ===============================================
*% PPD for HP Laser 10x Series
*% For Linux Only
*% ===============================================
*FormatVersion: "4.3"
*FileVersion: "1.1"
*LanguageVersion: English
*LanguageEncoding: ISOLatin1
*PCFileName: "10x.ppd"
*Manufacturer:  "HP"
*Product: "(LaserPrinter)"
*cupsVersion:   1.1
*cupsManualCopies: False
*cupsModelNumber: 196
*cupsFilter:  "application/vnd.cups-raster 0 rastertospl"
*ModelName: "HP Laser 10x Series"
*ShortNickName: "10x"
*NickName: "HP Laser 10x Series"
*PSVersion:     "(3010.000) 550"
*LanguageLevel: "3"
*ColorDevice: False
*DefaultColorSpace: Gray
*FileSystem:    False
*Throughput:    "21"

and the main purpose of the installer was to install rastertospl under /opt/smfp-common/printer/bin and to make the symbolic link in /usr/lib/cups/filter/.

@taniwallach
Copy link
Author

Some related links found via Google at various stages of the install process:

which all help understand what is going on once you know that you are essentially installing the "Samsung" "unified linux driver" to run this HP printer, and that the critical thing is to get rastertospl properly installed and working.

@taniwallach
Copy link
Author

Also found: https://gist.github.com/marcolinuxbr/5bbc66dc6cf67865112240ed7347b32d which outlines another approach using a different model and HPLIP.

@AltoRetrato
Copy link

Thanks for the information!

After "installing" the HP driver (sudo ./install-printer.sh), I got the HP 107w working on Ubuntu 18.04 via:

  • Settings > Devices > Printers > Additional Printer Settings
  • Printer - localhost > Add > "HP Laser 103 107 108 (BRBSN42..." > USB > Forward > Provide PPD file > /opt/hp/printer/share/ppd/HP_Laser_10x_Series.ppd > Forward > Apply > Print Test Page

@happychriss
Copy link

Thank you all, I can confirm its working was described by taniwallach and with the update from AltoRetrato.

Additional information:
I have tried the "driverless" set (drvless.ppd) before - that was also working sometimes, but occasionally getting error:
URF ERROR - [URF] Decoding Fail
If you are not sure, if the correct driver is used, you can check on the printer test page (if it says "drvless.ppd", you have the wrong driver)

@olleharstedt
Copy link

After installing, try this interface: http://localhost:631

@noemis84
Copy link

Thank you very much for sharing these infos. I was able to install the 107w on a Lubuntu via this PPD file.

@eisraeli
Copy link

Works like a charm. Kudos !

@jpasosa
Copy link

jpasosa commented Mar 4, 2021

Thanks very much, i install in Ubuntu 20.04

@zequeitor
Copy link

Hey @taniwallach great article! in addition for raspberry I had to remove ipp-usb package because I was not able to connect at all my printer on USB. After removing it I was able to see the URI device as usb://hp...... instead of cups-brf://[empty]
Thanks!!

@rakyzoly
Copy link

Thanks @taniwallach, @zequeitor ! As for @zequeitor, for me removing the ipp-usb package helpd, too!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment