Nach dem ich die Hewlett Packard Drucker Treiber, HPLIP auf die Version 3.15.7 upgedated hatte, druckte mein HP LaserJet Pro MFP M125nw nicht mehr. Nach längerer Recherche habe ich herausgefunden, dass es sich dabei um ein Problem in HPLIP selbst handelt. Als Lösung bleibt der Downgrade auf die Version 3.15.6 oder man patched die 3.15.7.
Nach dem Upgrade resultiert bei den betroffenen Druckern (ich weiß nicht genau welche das sind) jeder Druckversuch in der Meldung „filter failed“. Um an mehr Informationen zu gelangen setzt man in der Datei /etc/cups/cupsd.conf den Parameter LogLevel von „warn“ auf „debug“. Dann startet man cups neu („sudo service cups restart“). Nach dem nächsten Druckversuch schaut man sich die Fehler-Log-Datei an unter /var/log/cups/error_log. Findet man eine Zeile wie
D [16/Aug/2015:12:40:23 +0200] [Job 128] HP_LaserJet_Pro_MFP_M125nw: genPCLm.cpp:194: ubyte* shiftStripByLeftMargin(ubyte*, sint32, sint32, sint32, sint32, sint32, colorSpaceDisposition): Assertion `currSourceWidth+(2*leftMargin)<=currMediaWidth‘ failed.
dann ist es das HPLIP 3.15.7 Problem.
Zum Downgrade auf 3.15.6 kann man das entsprechende Paket unter http://sourceforge.net/projects/hplip/files/hplip/3.15.6/hplip-3.15.6.run/download herunter laden.
Um die 3.15.7 anzupassen gibt es auf Launchpad einen Patch. Der Patch korrigiert eine falsche struct Definition in der Datei /prnt/hpcups/CommonDefinitions.h.
Um HPLIP selbst zu patchen geht man wie folgt vor:
- Herunterladen des Source Paketes unter http://prdownloads.sourceforge.net/hplip/hplip-3.15.7.tar.gz
- Auspacken des Paketes mit tar xvzf hplip-3.15.7.tar.gz
- Editieren der Datei /prnt/hpcups/CommonDefinitions.h
- Man ändert die Definition von JobAttribute_s (ca. Zeile 440) nach:
typedef struct JobAttributes_s
{
int media_source;
int color_mode;
/* int HPSPDClass; */
DUPLEXMODE e_duplex_mode;
int print_borderless;
int krgb_mode;
int mech_offset;
QualityAttributes quality_attributes;
MediaAttributes media_attributes;
int job_id;
int page_order;
int total_pages;
char job_title[128];
char user_name[32];
char host_name[32];
char domain_name[32];
char os_name[160];
char driver_version[32];
char driver_name[128];
char printer_name[160];
char job_start_time[32];
char uuid[64];
char printer_platform[32];
char printer_language[32];
int integer_values[16];
int printer_platform_version;
int pre_process_raster;
int HPSPDClass;
} JobAttributes;
Danach erfolgt die Installation wie üblich und unter http://hplipopensource.com/hplip-web/install/manual/index.html beschrieben.
Das Thema wird auch hier in englisch behandelt. Eine Korrektur ist für das nächste HPLIP Release angekündigt.
Soviel zu meinem HPLIP 3.15.7 Problem und der Lösung. Da ich zwei Stunden gesucht habe, dachte ich, ich schreibe es mal auf.