SDB:HP OfficeJet ("all-in-one" Gerät) einrichten

aus openSUSE, der freien Wissensdatenbank


Inhaltsverzeichnis

Anliegen:

Ein HP OfficeJet soll unter Linux zum Einsatz kommen.

Vorgehen:

Informationen ab SUSE LINUX 9.3

Bei SUSE LINUX 9.3 ist standardmässig das Paket "hplip" installiert. HPLIP ist der Nachfolger von HPOJ (Paket "hp-officeJet"). Das Paket "hp-officeJet" kann ggf. statt "hplip" verwendet werden. Für genauere Informationen siehe die Artikel: SDB:Scanner einrichten ab SUSE LINUX 9.3

Informationen ab SUSE LINUX 9.0

Ab SUSE LINUX 9.0 wird das Paket "hp-officeJet" standardmässig installiert. Dieses Paket beinhaltet die freie OfficeJet-Software von HP, insbesondere das sog. "PTAL"-System, das notwendig ist, damit sowohl der Drucker als auch der Scanner benutzt werden kann (siehe unten).

Ab SUSE LINUX 9.0 versucht YaST solche Geräte am USB automatisch zu erkennen. Wenn das gelingt, dann richtet YaST das PTAL-System automatisch ein.
Leider ist bei einigen dieser Geräte eine automatische Erkennung nicht möglich.
Zwei uns bekannte Beispiele:

  • Der HP LaserJet 1220 (das ist ein HP LaserJet 1200, bei dem die optionale Scanner-Einheit bereits ab Werk montiert ist) wird via USB nur als normaler USB-Drucker "HP LaserJet 1220" erkannt. Es wird kein zugehöriger USB-Scanner erkannt. Ein Gerät, was nur als normaler USB-Drucker erkannt wird, kann von YaST auch nur als normaler USB-Drucker eingerichtet werden. Beim HP LaserJet 1220 funktioniert auf diese Weise zumindest das Drucken.
  • Der HP OfficeJet G55 wird auch nur als normaler USB-Drucker erkannt und dementsprechend von YaST eingerichtet, aber bei diesem Gerät funktioniert auf diese Weise nicht einmal die normale Drucker-Einheit.

Das entscheidende Problem ist, wie man HP all-in-one Geräte von normalen Druckern zuverlässig unterscheiden kann. Eine simple Liste ist unschön, weil diese bei wechselnden Modellnamen immer veraltet sein wird.

Es gibt eine Methode, die aber nicht zur automatischen Erkennung in Frage kommt:
Man müsste probeweise das PTAL-System einrichten und starten. Das PTAL-System erkennt seine HP all-in-one Geräte. Eine automatische Erkennung ist aber damit nicht möglich, denn dazu müsste das PTAL-System an allen möglichen Schnittstellen nach HP all-in-one Geräten suchen, aber das kann insbesondere bei Parallelports zu gravierenden Problemen führen (siehe unten die Meldung von "/usr/sbin/ptal-init setup").

Eine weitere Möglichkeit wäre, das PTAL-System bei HP Druckern grundsätzlich einzurichten, aber es ist nicht klar, ob alle HP Drucker über den PTAL-Dienst ansprechbar sind (zumindest beim HP DeskJet 990C funktioniert es - siehe unten). Ausserdem könnte es zu Konflikten kommen, wenn mehrere Drucker verschiedener Hersteller angeschlossen sind.

Wir möchten grundsätzlich keinen Dienst starten, wenn er nicht wirklich benötigt wird. Im Fall PTAL bedeutet das, dass wir ohne den PTAL-Dienst HP all-in-one Geräte automatisch erkennen müssen.

Eine manuelle Einrichtung ist dagegen kein Problem, weil man ja weiss, welche Geräte wie angeschlossen sind.

Wenn ein HP all-in-one Gerät als normaler Drucker konfiguriert wurde und später wurde dann das PTAL-System manuell eingerichtet, dann belegt der PTAL-Dienst die Drucker-Devices (z.B. /dev/usb/lp0) exclusiv. Deswegen kann dann das Drucksystem den Drucker nicht mehr ansprechen. Es ist dann notwendig, den Drucker so zu konfigurieren, dass das Drucksystem die PTAL-Gerätedateien (eigentlich "named pipes" und "sockets") in /dev/ptal-printd/ und /var/run/ptal-printd/ und /var/run/ptal-mlcd/ verwendet und das bedeutet, dass bei CUPS eine passende DeviceURI in /etc/cups/printers.conf eingetragen sein muss. Die passende DeviceURI wird vom PTAL Backend /usr/lib/cups/backend/ptal angezeigt - siehe die folgende Schnellübersicht.

Schnellübersicht zur manuellen Einrichtung des PTAL-Dienstes bei SUSE LINUX 9.0

Bei älteren SuSE Linux Versionen sollte es analog funktionieren.
Konsultieren Sie dennoch sicherheitshalber immer auch die Dokumentation von HP (siehe unten). Wenn Ihnen die folgenden Befehle nichts sagen oder wenn Sie unsicher sind, dann müssen Sie die Dokumentation von HP sorgfältig lesen und danach vorgehen.
Der PTAL-Dienst muss nach dem USB-System, aber vor dem Druckdienst (cupsd bzw. lpd) gestartet werden, da der PTAL-Dienst die USB Gerätedateien /dev/usb/lp* benötigt und das Drucksystem seinerseits die PTAL-Gerätedateien benötigt.

root@host> rccups stop
Shutting down cupsd               done
root@host> /usr/sbin/ptal-init setup
Folgen Sie den Meldungen und Anweisungen am Bildschirm, insbesondere:
  Warning: Probing incorrect I/O port addresses could result in system
  instability and/or data loss!  Consult your hardware documentation, BIOS
  setup and/or kernel messages to verify correct base addresses in the
  following prompts.   Also, take care not to probe parallel ports that
  have non-printer devices (such as removable drives) connected.
Machen Sie also "Probe" nur für solche Schnittstellen, an denen tatsächlich
ein HP all-in-one Gerät angeschlossen ist.
Ansonsten sollte es in Ordnung sein, wenn Sie die Defaults akzeptieren.
Notieren Sie sich die abschliessende Ausgabe, die etwa wie folgt aussieht:
  Starting the HP OfficeJet Linux driver.
    mlc:usb:DESKJET_990C
    mlc:usb:HP_LaserJet_1220
root@host> rcptal status
Checking for ptal-mlcd:           done
Checking for ptal-printd:         done
Checking for ptal:             running
root@host> rccups start
Starting cupsd                    done
root@host> lpstat -r
scheduler is running
root@host> /usr/lib/cups/backend/ptal
direct ptal:/mlc:usb:DESKJET_990C ...
direct ptal:/mlc:usb:HP_LaserJet_1220 ...
root@host> lpadmin -p dj990c -v ptal:/mlc:usb:DESKJET_990C -E \
-P /usr/share/cups/model/HP/DeskJet_990C-hpijs.ppd.gz
root@host> lpadmin -p lj1220 -v ptal:/mlc:usb:HP_LaserJet_1220 -E \             
-P /usr/share/cups/model/HP/LaserJet_1220-hpijs.ppd.gz
user@host> echo "testing dj990c" | lp -d dj990c
user@host> echo "testing lj1220" | lp -d lj1220

Sollten die Testausdrucke nicht möglich sein, weil CUPS nicht via PTAL auf die Drucker zugreifen kann (siehe /var/log/cups/error_log, wenn "LogLevel debug" in /etc/cups/cupsd.conf gesetzt ist), so wird CUPS die Warteschlangen "disablen" (siehe "lpstat -p dj990c" bzw. "lpstat -p lj1220").
Folgende Ursachen sind bisher bekannt:

  • Irgendeine Art von "Verklemmung" im Bereich der Dienste USB, PTAL und CUPS. In diesem Fall können entweder die Dienste (einschliesslich der USB Kernelmodule) gestoppt und neu gestartet werden, oder der Rechner wird komplett neu gebootet.
  • Eine ungeeignete "umask" von "root", denn bei "/usr/sbin/ptal-init setup" werden die Verzeichnisse /dev/ptal-printd und /var/run/ptal-* mit der umask von root angelegt und nicht so, wie es der PTAL-Dienst eigentlich braucht. Mit
    chmod a+x /dev/ptal-printd /var/run/ptal-*
    lässt sich das beheben.

Danach müssen als "root" mit
/usr/bin/enable dj990c bzw. /usr/bin/enable lj1220
die Warteschlangen wieder "enabled" werden.

Vergessen Sie nicht, den PTAL-Dienst dauerhaft zu aktivieren (z.B. mit dem YaST Runlevel Editor). Dadurch wird er ab SUSE LINUX 9.0 beim Booten automatisch zum richtigen Zeitpunkt (nach dem USB-System, aber vor dem Druckdienst) gestartet.

Allgemeine Informationen

Soll nur die Drucker-Einheit genutzt werden, so ist das in der Regel mit den üblichen DeskJet-Treibern möglich, sofern die Drucker-Einheit zu einem unterstützten DeskJet Modell kompatibel ist - vergl. den Supportdatenbank-Artikel "SDB:Drucker-Kauf und Kompatibilität".

Bei älteren SuSE Linux Versionen (vor SuSE Linux 8.2) funktionieren diese Geräte evtl. nur, wenn sie am Parallelport angeschlossen sind, aber nicht über USB.
Ab SuSE Linux 7.3 ist das spezielle Paket "hp-officeJet" dabei, was ggf. für den Druckerbetrieb via USB und immer für die zusätzlichen Funktionen (Scannen) dieser Geräte benötigt wird.
Installieren Sie das Paket "hp-officeJet" mit YaST2.
Informationen zur Konfiguration finden Sie unter [file:/usr/share/doc/packages/hp-officeJet/index.html "HP OfficeJet Linux driver (hpoj) documentation index"] oder online unter "HP OfficeJet Linux driver".
Das Paket "hp-officeJet" ist schon passend kompiliert, so daß Sie die Schritte im Abschnitt [file:/usr/share/doc/packages/hp-officeJet/setup-build.html "Compiling and installing the software"] nicht durchführen müssen.
Bei Problemen bzgl. USB kann es gemäß [file:/usr/share/doc/packages/hp-officeJet/setup-connect.html "Setting up basic device connectivity"] nötig sein, einen eigenen Kernel zu compilieren. Beachten Sie, daß der SuSE Installationssupport Ihnen beim Konfigurieren und Erzeugen eines eigenen Kernels keine Hilfestellung geben kann. Verwenden Sie also ggf. den Parallelport.

SDB:Drucker einrichten