Froschs Blog

Computer und was das Leben sonst noch so zu bieten hat

Zur Website | Impressum

Spaß mit Druckern (HP LaserJet P1005)

5. August 2017 um 17:39 Uhr von Atari-Frosch

Wie vor gut zwei Wochen geschrieben, hatte ich mir für den HP LaserJet 4L noch eine Kartusche gekauft, allerdings nicht über eBay, sondern dann doch bei einem lokalen Händler. Der war leicht geschockt: „Dieser Drucker ist schon 25 Jahre alt!“ Und ich so: „Ja und?“ 😉 Er hatte aber tatsächlich noch eine einzige Refill-Kartusche dafür am Lager, die er mir, leicht vergünstigt, für 25,00 € überließ.

Allerdings half sie mir leider nicht weiter. Der Drucker schmierte weiterhin, und auch weiterhin wurde das Druckbild mit einer Verschiebung um 1/3 Seitenlänge nochmal auf's Blatt gedruckt. Statt zu viel wurde nun allerdings teilweise eher zu wenig Toner ausgebracht, was ihn nicht daran hinderte, einen unregelmäßig hellgrauen „Hintergrund“ zu erzeugen.

Es lag also offenbar nicht an der Kartusche und es drohte, kompliziert zu werden. Daher entschied ich mich dafür, in diesen Drucker keine Zeit und kein weiteres Geld mehr zu investieren, sondern mir einen anderen Drucker zu suchen. Auf eBay findet man gelegentlich funktionierende, günstige, gebrauchte Laserdrucker, die nur deshalb verscherbelt werden, weil sich die Anbieter – teilweise auch Firmen – was Neueres gekauft haben. So fand ich einen HP LaserJet P1005, mitsamt fast neuer Kartusche. Dieser Drucker hat aber auch so seine Haken …

Ich hatte bei der Suche auf einiges geachtet, zum Beispiel darauf, daß die Geräte eindeutig als funktionsfähig angeboten wurden. Und daß es dafür noch Tonerkartuschen zu kaufen gibt und diese nicht zu teuer sind. Einen Drucker hatte ich dabei direkt wieder aussortiert, weil die Kartuschen zwar für 10.000 bis 11.000 Seiten reichen, aber dafür aber auch 152,00 € (Refill-Clone) bis 256,00 € (original vom Hersteller) kosten sollten. Nee danke, so reich bin ich nicht 😉 Auf das, was mir dann zunächst auf die Füße fiel, hatte ich nicht geachtet, weil ich davon schlicht nichts wußte …

Angenehm war erstmal, daß ich nicht bis zu meinem Höchstgebot hochgedrückt wurde. Und dann, daß der Drucker viel schneller geliefert wurde als angekündigt – nämlich gestern schon statt nächsten Dienstag. Also ausgepackt, angeschlossen, eingeschaltet – sah erstmal gut aus. CUPS bot mir auch, nachdem ich „Drucker hinzufügen“ angewählt hatte, direkt den passenden Treiber an; der Drucker war also auch erkannt worden. Und damit endeten die Annehmlichkeiten.

Denn weder die Testseite von CUPS noch die drucker-eigene Testseite wurden auf entsprechende Anweisung gedruckt. Mehr noch, der Drucker zeigte mir fröhlich sein grünes Licht und tat so, als wisse er nix von einem Druckauftrag. CUPS auf der anderen Seite erzählte mir ständig, er sende Daten an den Drucker; einen Fehler warf er mir ebenfalls nicht aus. Anscheinend hat er da kein Timeout. Ich hasse es ja, wenn Geräte und Software so schweigsam sind.

Also: Googeln. Ja, und da stellte sich dann schnell heraus, daß dieser Drucker zu einer Serie von HP-Druckern gehört, die eine Besonderheit haben: Sie möchten ihre Firmware beim Einschalten bitteschön vom Computer bzw. Druckserver übermittelt bekommen, weil sie keine fest eingespeicherte haben. Dabei gibt es aber offenbar ein Problem:

Das Standard-Verfahren hat wohl schon länger einen Bug, der im Kubuntu-Forum unter [SOLVED] HP Laserjet P1005 not printing beschrieben wird. Von dort aus wird auch zum Launchpad verwiesen, wo eine Lösung benannt wird.

Da es das dort aufgeführte Paket hp-plugin in Debian (hier: Jessie) nicht gibt, versuchte ich es mit der Installation der genannten Alternative:

root@seerose:~# apt-get install hplip-gui
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  cgmanager gcr gksu gnome-keyring hplip hplip-data libcgmanager0 libgck-1-0 libgcr-3-common
  libgcr-base-3-1 libgcr-ui-3-1 libgksu2-0 libgtop2-7 libgtop2-common libhpmud0 libnih-dbus1
  libnih1 libpam-gnome-keyring libpam-systemd libpolkit-agent-1-0 libpolkit-backend-1-0
  libqt4-declarative libqt4-designer libqt4-help libqt4-test libqt4-xmlpatterns
  libqtassistantclient4 libqtwebkit4 libsane-hpaio libsnmp-base libsnmp30 p11-kit p11-kit-modules
  policykit-1 printer-driver-hpcups printer-driver-postscript-hp python-notify python-pexpect
  python-qt4 python-qt4-dbus python-renderpm python-reportlab python-reportlab-accel python-sip
  sudo systemd systemd-shim xsane xsane-common
Suggested packages:
  hplip-doc system-config-printer libqt4-declarative-folderlistmodel libqt4-declarative-gestures
  libqt4-declarative-particles libqt4-declarative-shaders qt4-qmlviewer snmp-mibs-downloader
  python-pexpect-doc python-qt4-dbg python-renderpm-dbg python-egenix-mxtexttools
  python-reportlab-doc systemd-ui pm-utils hylafax-client mgetty-fax gv gocr
The following NEW packages will be installed:
  cgmanager gcr gksu gnome-keyring hplip hplip-data hplip-gui libcgmanager0 libgck-1-0
  libgcr-3-common libgcr-base-3-1 libgcr-ui-3-1 libgksu2-0 libgtop2-7 libgtop2-common libhpmud0
  libnih-dbus1 libnih1 libpam-gnome-keyring libpam-systemd libpolkit-agent-1-0
  libpolkit-backend-1-0 libqt4-declarative libqt4-designer libqt4-help libqt4-test
  libqt4-xmlpatterns libqtassistantclient4 libqtwebkit4 libsane-hpaio libsnmp-base libsnmp30
  p11-kit p11-kit-modules policykit-1 printer-driver-hpcups printer-driver-postscript-hp
  python-notify python-pexpect python-qt4 python-qt4-dbus python-renderpm python-reportlab
  python-reportlab-accel python-sip sudo systemd systemd-shim xsane xsane-common
0 upgraded, 50 newly installed, 0 to remove and 1 not upgraded.
Need to get 28.7 MB/38.6 MB of archives.
After this operation, 127 MB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.

Äh, nein. Einfach nein.

127 MB neues Zeug. Und systemd-Kram, den ich aus guten Gründen aus dem System raushalten will. Für einen Drucker. Nein, wirklich nicht.

Auf GNUsocial schrieb ich:

!TIL In order to use an HP LaserJet P1005 in #debian I need to use systemd (which I have pinned for good reasons), because I need to install hplip-gui which requires systemd. So, if I want to use this printer, I have to change to a Linux distro (or another unixoid system) that does not depend on systemd. Debian, you're just dying for me.

Offenbar hatte ich da aber nur die falsche Anleitung gefunden. @natureshadow (Nik) erklärte mir:

Why would you need hplip-gui for this printer? What's wrong with the default printer-driver-foo2zjs package?

Apart from that, installing the systemd package as a dependency does NOT change the init system, nor is that required to use hplip.

So wirklich beruhigte mich letzteres ja nicht. Und was an dem Standard-Paket falsch war – ja, eben der im Kubuntu-Forum beschriebene Bug.

Nik riet zur Installation eines anderen Pakets:

root@seerose:~# apt-get install hannah-foo2zjs

Das sah schon besser aus, also habe ich die Installation zugelassen. Ich rief das Programm direkt im xterm auf und konnte mir dort den richtigen Drucker aus einer Liste klicken. Dann sagte das Programm, es würde die Firmware herunterladen. Mehr sagte es allerdings nicht: Weder, wohin es die Datei abspeichern will, noch irgendwas über den Fortschritt. Das Fenster blieb einfach so stehen. So funktionierte es also offenbar auch nicht.

Ich suchte nochmal selbst und fand HP LaserJet P1005 with Debian and the free driver von CrySoL auf GitHub. Derweil lud Nik das Image sihpP1005.img herunter und bot es mir über seinen Webspace an. Und hier gab's dann wohl ein Mißverständnis, das mich weitere drei Stunden am Rödeln hielt …

Denn wie in diesem GitHub-Artikel beschrieben muß das Image mit dem Programm getweb gezogen werden, weil es dabei in ein anderes Format konvertiert wird. Das hatte ich erstmal schlicht übersehen. Stattdessen kopierte ich diese Datei händisch nach /lib/firmware/hp und wunderte bzw. ärgerte mich darüber, daß

root@seerose:~# /lib/udev/hpljP1005

nichts bewirkte. Auch hier wäre eine Fehlermeldung äußerst hilfreich gewesen. Stattdessen schien es ein paar Sekunden lang etwas zu tun, und dann war kommentarlos der Prompt wieder da.

root@seerose:~# usb_printerid /dev/usb/lp0

lieferte dementsprechend zwar die Informationen über den Drucker, aber nicht die Firmware-Version.

root@seerose:~# udevadm info all --name /dev/usb/lp0
P: /devices/pci0000:00/0000:00:13.5/usb1/1-10/1-10:1.0/usbmisc/lp0
N: usb/lp0
S: hpljP1005-0
E: DEVLINKS=/dev/hpljP1005-0
E: DEVNAME=/dev/usb/lp0
E: DEVPATH=/devices/pci0000:00/0000:00:13.5/usb1/1-10/1-10:1.0/usbmisc/lp0
E: MAJOR=180
E: MINOR=0
E: SUBSYSTEM=usbmisc
E: USEC_INITIALIZED=32692960

… sagte mir auch nichts Neues.

Derweil kopierte ich mal noch die udev-Regel für diese HP-Drucker:

root@seerose:~# cp /lib/udev/rules.d/85-hplj10xx.rules /etc/udev/

… was aber auch nicht weiterhalf.

Ich las mich schließlich noch durch diese Installations-Anleitung, die allerdings davon ausgeht, daß man Programme – auch in Debian – grundsätzlich nicht aus dem Repo installiert, sondern selbst compiliert. Aber dabei dämmerte mir langsam, daß sihpP1005.img nicht dasselbe ist wie sihpP1005.dl. Mit dieser Information suchte ich nochmal und landete – wieder bei dem Artikel von CrySoL.

Mit

root@seerose:~# getweb P1005

war das Problem dann endlich gelöst, und die Datei sihpP1005.dl landete ganz automagisch in /lib/firmware/hp, wo sie hingehört. Danach mußte ich nur nochmal kurz den Drucker abziehen, damit er neu erkannt wird. Wie Nik vorher schon geschrieben hatte:

Just drop the firmware file in /lib/firmware/hp and the udev rules from foo2zjs will do the rest of the magic.

Ja, so konnte udev dann auch seine „magic“ tun. Und siehe da: Der Drucker bekam seine Firmware, meldete das auch deutlich (Fehlerlampe blinkt ein paar Sekunden, und er macht Geräusche). Die Firmware-Version wurde jetzt auch gemeldet,

root@seerose:~# usb_printerid /dev/usb/lp0
GET_DEVICE_ID string:
MFG:Hewlett-Packard;MDL:HP LaserJet P1005;CMD:HBS,PJL,ACL;CLS:PRINTER;DES:HP
LaserJet P1005;FWVER:20090916;

und – tadaa – auf Anweisung via CUPS kam auch eine schöne, saubere Testseite raus.

Damit kann ich also wieder drucken.

Oder, wie jemand anmerkte: „Es ist immer dasselbe. Seit 30 Jahren. Wenn IT auf Papier trifft, bricht alles zusammen.“ Wobei ich den Eindruck habe, daß es mit den Jahren eher komplizierter als einfacher wird, Drucker zu installieren. Aber vielleicht werd ich ja auch einfach nur alt. 😉

Achja, braucht zufällig jemand eine kaum benutzte, aber eben schon angefangene Tonerkartusche für einen HP LaserJet 4L (gern gegen „Spende“? Oder mag jemand den alten Drucker selbst zum Ausschlachten haben?

2 Kommentare zu “Spaß mit Druckern (HP LaserJet P1005)”

  1. Nik quakte:

    Eigentlich wird das mit den Druckern, finde ich, immer einfacher. Außer man erwischt so ein proprietär vermurkstes Ding da. Gerade im Business-Umfeld, wo man vernünftige Hardware kaufen kann, bin ich in den letzten Jahren eigentlich sehr zufrieden, dass das alles schön und einfach geht. Man macht einen großen Bogen um HP, Brother und Canon, und dann geht es eigentlich ;). Sogar im mittleren bis unteren Preissegment machen Drucker mittlerweile ganz gut PostScript, so dass meistens nichts weiter als ein PPD benötigt wird.


  2. SackOhneSenf quakte:

    @Frosch: Ich hab deine Druckerprobleme erst jetzt gelesen, ich denke du hast übersehen, dass ein Laserdrucker nicht nur aus dem (fest eingebauten) Laser und der Toner Kartusche besteht, sondern noch ein weiteres wichtiges Teil enthält, die Entwicklertrommel.

    Bei manchen Druckern ist die in der Tonerkartusche fest mit eingebaut, dann sind die Teile meist teurer, halten dann aber auch länger. Bei den anderen Druckern ist die Entwicklertrommel separat und kann auch getrennt gewechselt werden … und was das fiese ist: Die Entwicklertrommel ist das empfindlichste Teil an dem Drucker. Einmal Drucker transportieren ohne richtige Sicherung der Entwicklertrommel und du hast derartige Streifen, Schatten oder Schmieren auf dem Ausdruck.


Kommentieren

Bitte beachte die Kommentarregeln!

XHTML: Du kannst diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>