Using HP Laser 107a with Ubuntu 20.04
Solution 1
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.
Solution 2
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.
Related videos on Youtube
NMech
Updated on September 18, 2022Comments
-
NMech over 1 year
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'.
-
brian_p over 3 yearsNot being able to get an output from 'lpinfo -v' is quite worrying. Do you have anything from 'lpstat -t'?
-
NMech over 3 yearsHi, thanks for your time. I've updated the output of both lpinfo and lpstat after the installation process. There is one more HP Office Deskjet printer which is working properly.
-
brian_p over 3 yearsThere isn't any "direct usb" line in the
lpinfo -v
output. Do you get an empty output withsudo /usr/lib/cups/backend/usb
? A USB URI is required to set up a print queue. -
NMech over 3 yearsI updated the post with the output of the /usr/lib/cups/backend/usb. As I think I've mentioned in the post the URI that is automatically assigned is file:///dev/null in Ubuntu, in manjaro I get a proper usb:/HP/etc...
-
brian_p over 3 yearsThis is a longshot. Please provide the output of
lsusb -v | grep -A 3 bInterfaceClass.*7
-
NMech over 3 yearsHi, @brian_p I updated the output
-
WU-TANG over 3 yearshave you tried the "generic" drivers? I will be the first to admit I am no printer expert. But when I went from one version to another and my printer did not work, using the generic driver was the thing that easily got it printing again. I use (again non-expert) the localhost:631 page to configure printers and select the generic laser now, even the generic IPP now that I am using network printing. When I need a specific printer, sometimes they arent there, I've had to apt-get printer-driver-gutenprint or openprinting-ppds... there are some hp related, apt-cache search print | grep hp
-
brian_p over 3 yearsThanks for the
lsusb -v
output. I can see light at the end of the tunnel. Just one more piece of information to make it brighter: give what you get forsystemctl list-units "ippusbxd*" | grep service
. -
NMech over 3 yearsThe output was null, so I also run systemctl list-units "ippusbxd*" and I put that up there. If you think you next comment is a solution put it up as an answer :-)
-
NMech over 3 yearsI also just tried
sudo systemctl start ippusbxd
and I got backFailed to start ippusbxd.service: Unit ippusbxd.service not found.
. Additionally, apt reports that ippusbxd (1.34-2ubuntu1) is installed. -
brian_p over 3 yearsThe service name is [email protected].
-
NMech over 3 yearsThanks a lot. your help is greatly appreciated.
-
quardas over 3 yearsThank you:) It works
-
gilbertohasnofb about 3 yearsThank you so much, this worked great for me on Linux Mint 20.1
-
matanster over 2 yearsA nightmare as usual, but it works and I have no idea how I'd ever get it working without this answer.
-
Denis Nutiu about 2 yearsAgree, Laser 10x so unintuitive.