Using HP Laser 107a with Ubuntu 20.04

5,849

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.

Share:
5,849

Related videos on Youtube

NMech
Author by

NMech

Updated on September 18, 2022

Comments

  • NMech
    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
      brian_p over 3 years
      Not being able to get an output from 'lpinfo -v' is quite worrying. Do you have anything from 'lpstat -t'?
    • NMech
      NMech over 3 years
      Hi, 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
      brian_p over 3 years
      There isn't any "direct usb" line in the lpinfo -v output. Do you get an empty output with sudo /usr/lib/cups/backend/usb? A USB URI is required to set up a print queue.
    • NMech
      NMech over 3 years
      I 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
      brian_p over 3 years
      This is a longshot. Please provide the output of lsusb -v | grep -A 3 bInterfaceClass.*7
    • NMech
      NMech over 3 years
      Hi, @brian_p I updated the output
    • WU-TANG
      WU-TANG over 3 years
      have 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
      brian_p over 3 years
      Thanks 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 for systemctl list-units "ippusbxd*" | grep service.
    • NMech
      NMech over 3 years
      The 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
      NMech over 3 years
      I also just tried sudo systemctl start ippusbxd and I got back Failed to start ippusbxd.service: Unit ippusbxd.service not found.. Additionally, apt reports that ippusbxd (1.34-2ubuntu1) is installed.
    • brian_p
      brian_p over 3 years
      The service name is [email protected].
  • NMech
    NMech over 3 years
    Thanks a lot. your help is greatly appreciated.
  • quardas
    quardas over 3 years
    Thank you:) It works
  • gilbertohasnofb
    gilbertohasnofb about 3 years
    Thank you so much, this worked great for me on Linux Mint 20.1
  • matanster
    matanster over 2 years
    A nightmare as usual, but it works and I have no idea how I'd ever get it working without this answer.
  • Denis Nutiu
    Denis Nutiu about 2 years
    Agree, Laser 10x so unintuitive.