HPLIP auf FRITZ!Box -- Scanner, Tintenstand, Status, Druckkopfreinigung für HP

Dann wärs doch toll, wenn jemand ein Ticket anlegt, mit der Bitte: "rename binary only to no WebIF".
 
Sind die Einträge identisch mit denen ohne Tilde? Mal schaun.
Code:
denk@wopr-debian:~/fritzbox/freetz-trunk$ diff foo bar
1c1
< [photosmart_7150]
---
> [photosmart_7150~]
49c49
< [photosmart_7200_series]
---
> [photosmart_7200_series~]
98c98
< [photosmart_7350]
---
> [photosmart_7350~]
101c101
< color-cal-type=0
---
> color-cal-type=3

Ignorieren wir mal den einen color-cal-Eintrag und sagen wir, wir lassen die Tilde-Einträge weg. Das würde dann so aussehen:

hplip-config-update.sh
Code:
#!/bin/sh

[ -z "$1" ] || [ -z "$2" ] && exit 1

cat <<EOF
config FREETZ_PACKAGE_HPLIP
    bool "HPLIP $1 (binary only)"
    default n
    select FREETZ_PACKAGE_SANE_BACKENDS
    help
        HPLIP - HP Linux Imaging and Printing

choice
    prompt "Printer Type"
    depends on FREETZ_PACKAGE_HPLIP
    help
        Select your printer type here.

EOF

for printer in `awk '/^\[.*[^~]\]$/ { gsub(/\[|\]/, ""); print }' < "$2"`; do
    PRTR=`echo $printer | tr a-z A-Z`
    echo "config FREETZ_HPLIP_PRINTER_TYPE_$PRTR"
    echo "  bool \"$printer\""
done

cat <<EOF
endchoice

config FREETZ_HPLIP_PRINTER_TYPE
    string
EOF

for printer in `awk '/^\[.*[^~]\]$/ { gsub(/\[|\]/, ""); print }' < "$2"`; do
    PRTR=`echo $printer | tr a-z A-Z`
    echo "  default \"$printer\" if FREETZ_HPLIP_PRINTER_TYPE_$PRTR"
done
 
Super, ich hab's jetzt erstmal so eingecheckt.

Klar muss man das alles per Hand machen, die Config.in können wir nicht automatisch updaten. Aber Dein Skript ist da einfach perfekt.

EDIT: Da wir ja nur Scanner-Support unterstützen, könnten wir vielleicht die Printer-Typen ausschließen, die keinen Scanner-Modus haben:
Code:
# scan-type:
# -1 = Not supported
# 0 = Not present
# 1 = SCL
# 2 = PML
# 3 = SOAP (cm1017mfp)
# 4 = Marvel (m1005)
# 5 = SOAP2 (m2727)

Danke,
Whoopie
 
Zuletzt bearbeitet:
Es ist schon sinnvoll, die Geräte drin zu lassen, weil man ja trotzdem die hp-utils auf ihnen benutzen kann. Ganz besonders schön wärs dann, wenn SANE für Geräte ohne Scanner gleich weggelassen wird. Oh weh *g*

BTW: Es gibt ne neue Version von hp-utils. ;)
 
Ich hab das Skript noch mal verbessert, so daß man erst ne Klasse und dann nen Typ auswählen kann. Und ich hab ein neues Target im Makefile eingeführt, das die models.dat bei jedem Aufruf aktualisiert.
 

Anhänge

  • hplip.patch.txt
    100.8 KB · Aufrufe: 5
Danke, eingecheckt.

Hilft Dein hp-printserv vielleicht bei GDI-Druckern? Kann man damit vielleicht dieses Ticket lösen?
 
Boah! Ich konnte gerade die Windows-Testseite über den AVM-printserv an meinen HP LaserJet 1000 drucken.
Dachte das is schon gelöst?

Ich bin noch auf keinen Drucker gestoßen, der nciht mit dem AVM-Printserver funktioniert hat.
 
Also ich hab heut mal paar Stunden das pthread-Problem "untersucht". Und da hab ich per Zufall festgestellt, dass es mit uClibc 0.9.29 funktioniert, wenn man explizit gegen pthread linkt.

Könntest Du mal angehängten Patch mit der 0.9.28 testen und falls es nix kaputtmacht in der nächsten Version einfügen?

Beste Grüße,
Whoopie
 

Anhänge

  • hp-utils-pthread.patch.txt
    511 Bytes · Aufrufe: 7
Hm, merkwürdig. Ich kanns mit Freetz nicht testen, nur mit dem ds-0.2.9 für Kernel 2.4 mit uClibc 0.9.26 :>

Aber wenns mit diesem Hack geht, dann füg doch den Patch unter make/hp-utils/patches ein.
 
Dachte das is schon gelöst?

Ich bin noch auf keinen Drucker gestoßen, der nciht mit dem AVM-Printserver funktioniert hat.
Na ja, fast! Der GDI-Drucker (HP LJ1000) braucht nach jedem Einschalten erstmal seine Firmware. Das scheint der Treiber nicht selbst zu machen, wenn der Drucker nicht an einem lokalem Port hängt. Das ganze kann man auch per netcat vom PC aus machen, jedoch wird die Verbindung nicht von selbst geschlossen :noidea: (man muss also, wenn man meint, sie wurde übertragen Ctrl-C drücken).

Schade, dass mein Ticket mit "wontfix" geschlossen wurde.
 
Wär mal interessant, wie das in HPLIP gelöst ist. Werd ich mir mal anschauen.

Was mir spontan einfällt, wäre die hotplug/printer zu patchen, ein simples Tool aufzurufen, das die Firmware an den Printserver schickt. Das wär alles kein großer Aufwand.

Ach ja, was genau hast Du Dir von Deinem Ticket noch erhofft?
 
Ursprünglich wollte ich den LJ1000 als PS-Drucker ansprechen, aber nach viel Aufwand hätte man natürlich trotzdem nur einem sehr lahmen Spooler.

Im Prinzip würde mir nun schon eine saubere Initialisierung durch die Fritz!Box reichen. Perfekt wäre eine elektronisch steuerbare Schalterleiste, die den Drucker automatisch vor dem Drucken einschaltet, nach konfigurierbarer Standby-Zeit ausschaltet und schließlich noch im Freetz-WebIF direkt abschaltbar wäre. *fg*
 
So lahm, daß man es nicht Spooler, sondern nur Datenhalde nennen kann. ^^ Also das wird nicht funktionieren, das hab ich schon mal geschrieben.

Die Firmware auf den Drucker zu bringen ist eigtl. noch einfacher als ich zuerst dachte. Du kannst Dir das ja selber patchen: Du brauchst nur in der hotplug/printer, bevor der printserver gestartet wird (und das device belegt) cat firmware.img > /dev/usb/lp0 einfügen. Ka wie groß die Firmware is. Evtl. paßt die ja ins Image mit rein.
 
Ich hab mich mal mit Perl beschäftigt und das hplip-config-update-Skript in Perl neu geschrieben. Das läuft erheblich schneller und außerdem hab ich noch für jeden Typ ne Hilfe mit den unterstützten Modellen eingefügt.
Und ich hab die Ausgabe vom awk-Script beim Verkleinern der models.dat unterdrückt und stattdessen nen hilfreicheren Text ausgeben lassen.
 

Anhänge

  • hplip-r2955.patch.txt
    103.7 KB · Aufrufe: 5
Also die Firmware ist rar-komprimiert nur 45kB groß, hab sie also mal mit aufgenommen.

Aber ist das überhaupt noch nötig? Habe mal HPLIP reingenommen. Da gibt es ja einen HP-Printserver. Der müsste sich doch optimal um den LJ1000 kümmern können, oder?
 
hp-printserv funktioniert genau so wie der AVM-Printserver (nur daß das Drucken letztlich über libusb funktioniert). Du brauchst auch hier den Firmware-Upload.
 
Also würde mir die HPLib gar nichts bringen.
 
bei mir baut das hplib-utils nicht durch:
Code:
make[1]: Entering directory `/usr/src/freetz-trunk_neu/source/hp-utils-0.3.1'
/usr/src/freetz-trunk_neu/toolchain/target/bin/mipsel-linux-uclibc-gcc -shared -Wl,-soname,libhp-utils.so.0  -o libhp-utils.so.0.3.1 device.o hpmuderr.o logger.o maint.o pcl.o pml.o status.o util.o -lhpmud
make[1]: *** Keine Regel vorhanden, um das Target »libhp-utils.so«, 
  benötigt von »hp-clean«, zu erstellen.  Schluss.
make[1]: *** Warte auf noch nicht beendete Prozesse...
ln -sf libhp-utils.so.0.3.1 libhp-utils.so
ln -sf libhp-utils.so.0.3.1 libhp-utils.so.0
make[1]: Leaving directory `/usr/src/freetz-trunk_neu/source/hp-utils-0.3.1'
make: *** [source/hp-utils-0.3.1/hp-levels] Fehler 2

Ich hab sogar nochmal komplett ausgecheckt, weil ich vorher das hplib-zeugs als addon drin hatte. Das hplib-addon hat auch mit saned super funktioniert und ich freu mich das es jetzt den Weg in den Trunk gefunden hat. Ich wollte jetzt mal ein aktuelles Image installieren, weil der AB/FAX-Kram nicht funktionieren wollte. Baut das bei euch?


Gruß
 
Wird mit dem nächsten Release von hp-utils behoben.
Als Workaround make dreimal aufrufen.
 
Der Fehler ist jetzt in 0.3.2 behoben. Anbei die nötigen Patches für Freetz.
 

Anhänge

  • hp-utils-r2981.patch.txt
    2.9 KB · Aufrufe: 11
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.