Using HP Laser 107a with Ubuntu 20.04

I recently bought a HP laser 107a as a budget printer on a laptop running Ubuntu 20.04. The reason I bought it was that, I read it was compatible with Linux.

When I received the printed, I tried following the tutoriallinux guide. So, I downloaded the uld driver from the hp site (at that point I found out that HP Laser 107a was basically a rebranded Samsung printer which used the uld driver). When I connected the printer to the laptop, although the printer was recognized I was unable to print. Initially, the "Printing Options" dialog was empty and upon closer inspection I realized that there was no PPD.

Then I came across the following ask ubuntu question which addresses 18.04 LTS and 19.04. I followed as closely as possible the instructions and I managed to select the proper driver (HP Laser 10x Series), either by selecting the database (initially), or by locating the PPD file in the /opt/ folder. In either case the result was the same:

  • I managed to get the Printer Options filed
  • I was not able to print. Whenever I sent something to the printer, I got the message that the job was submitted and the completed.

Upon closer inspection I realized that the URI of the printer was "file:///dev/null", which explains why everything was submitted. Also, whenever I opened the printer dialog from e.g. Libreoffice or a PDF viewer, and I was trying to select the printer, all I got was "Waiting for printer ...". I suspect this might be also be explained by the URI.

My next step, was to find out whether the printer was OK. Initially, I connected it to a Windows machine, and without no problems I got a test page.

The next step was to try another distribution. I tried Manjaro with a 5.4 kernel and followed a similar path with the tutoriallinux article, running Xcfe. I managed to get the test page without problems or hiccups also. I additionally checked the URI dialog from the CUPS client and saw that the URI was usb:/HP/[....] (i.e. not file:///dev/null)

I've also tried the Debugging Printing Problems page, with limited success, because I can't get lpinfo -v in my Ubuntu 20.04 installation to identify the printer (in Manjaro it was identified).

At this point, I am not sure if its a Ubuntu problem or if its something wrong with my setup from the upgrade or previous HP installations. I would appreciate any guidance on the matter.

=================UPDATE:=====================

lpinfo -v output (# replaces an A-z0-9)

network ipps
network beh
network lpd
network http
file cups-brf:/
direct hp
network https
network ipp
network socket
direct hpfax
network socket://[####:###:####:####:####:####:####:####]
network dnssd://HP%20Officejet%20Pro%208610%20%5B123az%5D._ipp._tcp.local/?uuid=1c852a4d-b800-1f08-####-34####
network ipp://HP%20Officejet%20Pro%208610%20%####%5D._ipp._tcp.local/

lpstat -t output

scheduler is running
system default destination: HP_Officejet_Pro_8610_######_
device for HP_Laser_103_107_108: ///dev/null
device for HP_Officejet_Pro_8610_######_: implicitclass://HP_Officejet_Pro_8610_######_/
HP_Laser_103_107_108 accepting requests since Παρ 02 Οκτ 2020 02:55:52 πμ EEST
HP_Officejet_Pro_8610_######_ accepting requests since Παρ 02 Οκτ 2020 02:51:35 πμ EEST
printer HP_Laser_103_107_108 is idle.  enabled since Παρ 02 Οκτ 2020 02:55:52 πμ EEST
printer HP_Officejet_Pro_8610_######_ is idle.  enabled since Παρ 02 Οκτ 2020 02:51:35 πμ EEST

/usr/lib/cups/backend/usb

DEBUG: Loading USB quirks from "/usr/share/cups/usb".
DEBUG: Loaded 181 quirks.
DEBUG: list_devices
DEBUG: libusb_get_device_list=7

*lsusb -v | grep -A 3 bInterfaceClass.7

can't get debug descriptor: Resource temporarily unavailable
can't get device qualifier: Resource temporarily unavailable
      bInterfaceClass         7 Printer
      bInterfaceSubClass      1 Printer
      bInterfaceProtocol      2 Bidirectional
      iInterface              0 
--
      bInterfaceClass         7 Printer
      bInterfaceSubClass      1 Printer
      bInterfaceProtocol      4 
      iInterface              0 
can't get debug descriptor: Resource temporarily unavailable
--
      bInterfaceClass         7 Printer
      bInterfaceSubClass      1 Printer
      bInterfaceProtocol      4 
      iInterface              0 

lsusb

Bus 001 Device 005: ID 1bcf:2b8a Sunplus Innovation Technology Inc. 
Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 003: ID 8087:07dc Intel Corp. 
Bus 001 Device 006: ID 03f0:e82a HP, Inc 
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

systemctl list-units "ippusbxd*"

  UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

Here's how I got my HP Laser 107a to work on my freshly installed Ubuntu 20.04.

Step 1: Remove ippusbxd as mentioned in the previous answer.

sudo apt purge ippusbxd

Step 2: Download and install the HP Laser 10x series drivers.

wget https://ftp.hp.com/pub/softlib/software13/printers/CLP150/uld-hp_V1.00.39.12_00.15.tar.gz
tar -xvf uld-hp_V1.00.39.12_00.15.tar.gz
cd uld/
sudo ./install.sh

Step 3: Open Settings and remove any existing instance if exists. Select Additional Printer Settings and click Add on the next screen.

Step 4: Select the HP Laser 103 107 108 option and click Forward. This will start searching for drivers. Wait for that to finish.

Step 5: On the next screen with Select printer from database checked select HP from the list and click Forward.

Step 6: Select the Laser 10x option and click Forward. On the next screen click Apply and it is done! You can print a test page from the next screen to verify the setup.


lsusb -v shows two interfaces with the property

bInterfaceProtocol 4

This indicates that the printer understands the IPP-over-USB protocol. See here. On Ubuntu 20.04 ippusbxd is responsible for IPP-over-USB communication. ippusbxd commandeers the USB interface so that nothing else can use it. That is why lpinfo -v does not show a usb URI. Manjaro does not use ippusbxd by default as Ubuntu does.

I would apt purge ippusbxd, re-power the printer, re-plug USB and re-test.