2024-11-01 We've an ancient HP LaserJet 1018 printer; it must be about 20 years old, but still running. With RHEL7 (actually, Springdale 7, a RedHat Enterprise clone) it was running ok, although it needed manual firmware load (hp-firmware command) after repowering of the printer. Now the computer has been changed to newer hardware and RHEL9 (AlmaLinux, 9.4), and I haven't got it to run reliably. My one on the desk at work is a 1010, which was running ok with RHEL6 for the past decade (I forget the used settings) and in FreeBSD-13 since 2022. In Dinton we've a 1020, which has been about as elusive as the 1018 in recent years when I try to connect from my laptops with RHEL9. The 10xx series had, from what I remember, substantial variation in the languages spoken. But all had a firmware (model-specific) that had to be uploaded every time the printer is powered up. On powering up, the printer makes a short (couple of seconds) whirring noise then clicks stopped. On loading the firmware, it does much the same again. So it's pretty clear to a seasoned user, if there's a lack of firmware loading. Theory: With HP's own HPLIP. In RHEL or some other linux distro (or FreeBSD) with "hplip" available: [dnf,pkg,apt,xxx] install cups hplip [or similar names, and perhaps subpackages: try search] Then, with the printer present, run hp-setup which should find the printer and offer to download the two proprietary parts needed: 1. the firmware needed every time the machine is started, and 2. the cups filter[-helper]. Method that used to be good, but foo2zjs isn't available in RHEL or EPEL now. [..] install foo2zjs # and foomatic extras Run a script to get the firmwares from some site that's now expired (http://foo2zjs.rkkda.com). Or copy firmwares from elsewhere e.g. /usr/share/hplip/data/firmware/hp_laserjet_1018.fw.gz on a computer with the hplip package and hp-setup already run. The funny thing is, that having tried the HPLIP method there is a working print queue, *but* after the initial test page or two, and/or a restart of the printer (not studied very deeply) the same computer hasn't been able to get successful communication with the printer again. Even after deleting the printer in CUPS, and reinstalling CUPS with clean /etc/cups, running hp-setup (or related subprograms) again just gives a delay then an error that no suitable device is found. There are errors in dmesg around the printer device. dmesg [70231.003159] usb 2-4: USB disconnect, device number 6 [70235.725435] usb 2-4: new high-speed USB device number 7 using xhci_hcd [70241.167267] usb 2-4: device descriptor read/64, error -110 [70257.038707] usb 2-4: device descriptor read/64, error -110 [70257.254660] usb 2-4: new high-speed USB device number 8 using xhci_hcd [70262.670492] usb 2-4: device descriptor read/64, error -110 [70278.541909] usb 2-4: device descriptor read/64, error -110 [70278.643969] usb usb2-port4: attempt power cycle [70279.023886] usb 2-4: new high-speed USB device number 9 using xhci_hcd [70287.643606] usb 2-4: device descriptor read/8, error -110 [70303.003122] usb 2-4: device descriptor read/8, error -110 [70314.631594] usb 2-4: new high-speed USB device number 11 using xhci_hcd [70314.778423] usb 2-4: New USB device found, idVendor=03f0, idProduct=4117, bcdDevice= 1.00 [70314.778430] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [70314.778431] usb 2-4: Product: HP LaserJet 1018 [70314.778433] usb 2-4: Manufacturer: Hewlett-Packard [70314.778434] usb 2-4: SerialNumber: KP1G0HD [70314.781524] usblp 2-4:1.0: usblp0: USB Bidirectional printer dev 11 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117 [70318.143323] usblp0: removed [70492.410542] usbcore: deregistering interface driver usblp [70722.069912] usb 2-4: USB disconnect, device number 11 [70729.509647] usb 2-4: new high-speed USB device number 12 using xhci_hcd [70729.657162] usb 2-4: New USB device found, idVendor=03f0, idProduct=4117, bcdDevice= 1.00 [70729.657169] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [70729.657171] usb 2-4: Product: HP LaserJet 1018 [70729.657172] usb 2-4: Manufacturer: Hewlett-Packard [70729.657173] usb 2-4: SerialNumber: KP1G0HD [72549.435243] process '/cgnrQ97a/dummy' started with executable stack [72631.440845] lp: driver loaded but no devices found [72705.556039] usb 2-4: USB disconnect, device number 12 [72720.479810] usb 2-6: new high-speed USB device number 13 using xhci_hcd [72725.813626] usb 2-6: device descriptor read/64, error -110 [72741.686087] usb 2-6: device descriptor read/64, error -110 [72741.909043] usb 2-6: new high-speed USB device number 14 using xhci_hcd [72747.317870] usb 2-6: device descriptor read/64, error -110 [72763.188297] usb 2-6: device descriptor read/64, error -110 [72763.290343] usb usb2-port6: attempt power cycle [72763.678262] usb 2-6: new high-speed USB device number 15 using xhci_hcd [72768.706129] usb 2-6: device descriptor read/8, error -110 [72784.065597] usb 2-6: device descriptor read/8, error -110 [72784.283501] usb 2-6: new high-speed USB device number 16 using xhci_hcd [72789.697357] usb 2-6: device descriptor read/8, error -110 [72805.056820] usb 2-6: device descriptor read/8, error -110 [72805.160821] usb usb2-port6: unable to enumerate USB device [72829.053885] usb 2-6: new high-speed USB device number 17 using xhci_hcd [72829.200644] usb 2-6: New USB device found, idVendor=03f0, idProduct=4117, bcdDevice= 1.00 [72829.200651] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [72829.200652] usb 2-6: Product: HP LaserJet 1018 [72829.200653] usb 2-6: Manufacturer: Hewlett-Packard [72829.200654] usb 2-6: SerialNumber: KP1G0HD [72897.313621] lp: driver loaded but no devices found [73535.691396] vboxdrv: 0000000000000000 VMMR0.r0 [73535.789480] vboxdrv: 0000000000000000 VBoxDDR0.r0 [73686.167969] usb 2-6: USB disconnect, device number 17 [73701.232170] usb 2-6: new high-speed USB device number 18 using xhci_hcd [73701.380229] usb 2-6: New USB device found, idVendor=03f0, idProduct=4117, bcdDevice= 1.00 [73701.380234] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [73701.380236] usb 2-6: Product: HP LaserJet 1018 [73701.380237] usb 2-6: Manufacturer: Hewlett-Packard [73701.380238] usb 2-6: SerialNumber: KP1G0HD [73854.267543] usb 2-6: USB disconnect, device number 18 [73866.220070] usb 2-6: new high-speed USB device number 19 using xhci_hcd [73866.366741] usb 2-6: New USB device found, idVendor=03f0, idProduct=4117, bcdDevice= 1.00 [73866.366746] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [73866.366748] usb 2-6: Product: HP LaserJet 1018 [73866.366749] usb 2-6: Manufacturer: Hewlett-Packard [73866.366750] usb 2-6: SerialNumber: KP1G0HD [73875.609986] usblp 2-6:1.0: usblp0: USB Bidirectional printer dev 19 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117 [73875.610027] usbcore: registered new interface driver usblp [73948.971133] usb 2-6: USB disconnect, device number 19 [73948.971312] usblp0: removed [73952.393524] perf: interrupt took too long (3129 > 3127), lowering kernel.perf_event_max_sample_rate to 63000 [73952.533892] usb 2-5: new high-speed USB device number 20 using xhci_hcd [73958.152703] usb 2-5: device descriptor read/64, error -110 [73974.024131] usb 2-5: device descriptor read/64, error -110 [73974.240113] usb 2-5: new high-speed USB device number 21 using xhci_hcd [73979.655915] usb 2-5: device descriptor read/64, error -110 [73995.528345] usb 2-5: device descriptor read/64, error -110 [73995.637383] usb usb2-port5: attempt power cycle [73996.017322] usb 2-5: new high-speed USB device number 22 using xhci_hcd [74001.045327] usb 2-5: device descriptor read/8, error -110 [74016.405621] usb 2-5: device descriptor read/8, error -110 [74016.622548] usb 2-5: new high-speed USB device number 23 using xhci_hcd [74022.036420] usb 2-5: device descriptor read/8, error -110 [74037.395919] usb 2-5: device descriptor read/8, error -110 [74037.499847] usb usb2-port5: unable to enumerate USB device [74529.287053] usb 2-5: new high-speed USB device number 24 using xhci_hcd [74534.643891] usb 2-5: device descriptor read/64, error -110 [74549.693344] usb 2-5: device descriptor read/64, error -110 [74549.915324] usb 2-5: new high-speed USB device number 25 using xhci_hcd [74555.123147] usb 2-5: device descriptor read/64, error -110 [74570.995576] usb 2-5: device descriptor read/64, error -110 [74571.104615] usb usb2-port5: attempt power cycle [74571.484535] usb 2-5: new high-speed USB device number 26 using xhci_hcd [74576.512450] usb 2-5: device descriptor read/8, error -110 [74591.871918] usb 2-5: device descriptor read/8, error -110 [74592.089800] usb 2-5: new high-speed USB device number 27 using xhci_hcd [74597.503779] usb 2-5: device descriptor read/8, error -110 [74612.863144] usb 2-5: device descriptor read/8, error -110 [74612.967106] usb usb2-port5: unable to enumerate USB device [74692.482104] systemd-journald[518]: Data hash table of /run/log/journal/1226780e212c4cc1b3f0a120ca252420/system.journal has a fill level at 75.0 (109237 of 145649 items, 41943040 file size, 383 bytes per hash table item), suggesting rotation. [74692.482111] systemd-journald[518]: /run/log/journal/1226780e212c4cc1b3f0a120ca252420/system.journal: Journal header limits reached or header out-of-date, rotating. [76283.383004] usb 2-7: new high-speed USB device number 28 using xhci_hcd [76283.529839] usb 2-7: New USB device found, idVendor=03f0, idProduct=4117, bcdDevice= 1.00 [76283.529846] usb 2-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [76283.529847] usb 2-7: Product: HP LaserJet 1018 [76283.529848] usb 2-7: Manufacturer: Hewlett-Packard [76283.529850] usb 2-7: SerialNumber: KP1G0HD [76283.533030] usblp 2-7:1.0: usblp0: USB Bidirectional printer dev 28 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117 [76286.925590] usblp0: removed [76862.104688] usb 2-7: USB disconnect, device number 28 [76867.636827] usb 2-7: new high-speed USB device number 29 using xhci_hcd [76867.783940] usb 2-7: New USB device found, idVendor=03f0, idProduct=4117, bcdDevice= 1.00 [76867.783945] usb 2-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [76867.783947] usb 2-7: Product: HP LaserJet 1018 [76867.783948] usb 2-7: Manufacturer: Hewlett-Packard [76867.783949] usb 2-7: SerialNumber: KP1G0HD [76867.787100] usblp 2-7:1.0: usblp0: USB Bidirectional printer dev 29 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117 [76870.890822] usb 2-7: USB disconnect, device number 29 [76870.890943] usblp0: removed # journalctl -u cups -e not very helpful With thoughts about incompatible modern USB settings, or about system drivers interfering with HP direct access of usb device, some other options were tried. E.g. echo Y >/sys/module/usbcore/parameters/old_scheme_first And/Or various combinations of rmmod usblp or other modules and disablement of loading them: /etc/modprobe.d/local-disable-usblp.conf blacklist usblp #install usblp /bin/false # #blacklist lp #install lp /bin/false # #blacklist parport This was tried with two different cables, and with lots of restarts of the printer (physical powering up, after turning off and even unplugging the usb). Trying with a RHEL9 laptop gave much the same: worked ok with hp-setup, even printed, but then not in continuation. Not even signs of firmware-loading, from what I remember. That does smell like HP and system modules not getting on. This fits well with memories of the 1020 in Dinton, which seemed ok for printing once when tried on a RHEL9 laptop, but not again after. So, driven by the successful running of the 1010 model on FreeBSD 13 at work, tried the FreeBSD (14) laptop: #----------------------------------- # freebsd 14.1 good for installing hplip hplip-plugins would also be needed, and is currently only in ports, not pkg; there was trouble building it, as it wants python 3.9 instead of 3.11 tried also simply running the script hp-plugin or hp-setup to do the download and install, but it had some errors and perhaps isn't expected to work in case some of the downloaded files are linux ones (the 'l' in hplip) that the port would adapt suitably tried just copying firmware from redhat system, by scp box:/usr/share/hplip/data/firmware/hp_\* /usr/local/share/hplip/data/firmware/ restarted devd: /etc/rc.d/devd restart (perhaps not needed) it was fine plugging the printer from this laptop and getting firmware loaded with hp-firmware (at least, after correcting a line in /usr/local/bin/hp-firmware where "mode = INTERACTIVE_MODE4" shouldn't have had a '4' at the end .. there was a helpful error message making this clear) before getting this working, the firmware could anyway be loaded manually by: gunzip /dev/ulpt0 trying by the hp-setup approach, the hpcups driver was used this had a filter-error on attempts at printing (note: the cups driver ppd "requires proprietary plugin"), which presumably would have been resolved by having the hplip-plugins port finding instead a nice old foo2zjs ppd for the HP Laserjet 1018 from github ( https://github.com/koenkooi/foo2zjs/blob/master/PPD/HP-LaserJet_1018.ppd ) this was tried manually (on a hp testpage!) /usr/local/bin/foomatic-rip --ppd ~/HP-LaserJet_1018.ppd /dev/ulpt0 which worked fine note that this needed the package foo2zjs then cups was configured to use this foo2zjs ppd, also worked but (as of now) we seem to be *not* automatically loading firmware when plugged in -- it needs hp-firmware to be run each time, or the gunzipped writing to ulpt0 no effort has gone into this #----------------------------------- # Raspbian GNU/Linux 11 (bullseye) [Raspberry Pi OS, newly updated, on Pi Zero W, armv6l] belt and braces apt install printer-driver-foo2zjs hplip let it get the firmware and the filter hp-setup then the usual cups configuration on http://localhost:631 (done by ssh forwarding from laptop's browser) to teel it to share the printer, without authorization, and to allow any host to send jobs, administrate, etc (nice low security) got a test-page from its local cups got an error of filter failed when trying to print to ipp://print/printers/hp1018 ("print" is the RPi's hostname) from another computer that was still using the hp cups driver too; I assume that either the already-formatted-for-printer input wasn't filtered properly [which would be a raw pass-through on the RPi], or there's a real problem with the hpcups filter; since the foo2zjs driver had worked so nicely on the FreeBSD system I just switched the RPi's CUPS to use the foo2zjs hp1018 driver instead, ... and changed the laptop to send generic postscript to the RPi (can't be bothered to test further about having hpcups instead or about having a raw queue and sending from a driver on the other computer) This was the final setup: HP Laserjet 1018 plugged by USB into tiddly little Raspberry Pi Zero W sitting behind it, which acts as print-server over wifi, using foo2zjs driver and the firmware that came from the hplip setup. #----------------------------------- Problem summary: there seems to be some issue with using this HP lj1018 on a computer with RHEL9, regarding usb connection rather than printer-ppd; since the freebsd laptop is very similar hardware to the rhel9 laptop, it seems more likely the software than the "new usb hardware" that's significant experience with a 1020 in the summer, with yet another laptop with rhel9, adds a little more evidence to this fine on freebsd on laptop, or raspbian on pi zero w, or indeed rhel7 on the older desktop the little RPi zero w is fine as a print server, but it does take some tens of seconds to process even a modestly complex pdf page #-----------------------------------