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

tehron

Neuer User
Mitglied seit
29 Jan 2008
Beiträge
123
Punkte für Reaktionen
0
Punkte
0
Hier gibt's das Addon-Paket hplip-addon für aktuelle stabile Versionen von Freetz (bzw. für den ds-mod). Alle Pakete, die hier zusammengefaßt als ein Addon angeboten werden, sind schon in der Entwicklerversion von Freetz verfügbar und werden (so wie es momentan aussieht) mit Freetz 1.2 erstmals alle auch in einer stabilen Version verfügbar sein.

Was kann man damit machen?
  • Scannen mit HP-Multifunktionsgeräten
  • Webinterface (http://fritz.box:83/):
    • Anzeigen des Druckerstatus
    • Anzeigen des Tintenstands
    • Druckkopfreinigung
  • Commandline-Tools
    • hp-probe: Listet angeschlossene Geräte auf
    • hp-status: Zeigt Druckerstatus
    • hp-levels: Zeigt Tintenstand
    • hp-clean: Druckkopfreinigung
    • hp-printserv: Druckserver
    • hp-timedate: Einstellen von Datum und Uhrzeit
    • hp-faxsetup: Ändern der Faxeinstellungen
Wird mein Drucker unterstützt?
Vergleiche http://hplipopensource.com/hplip-web/supported_devices/index.html ("Minimum HPLIP version" beachten!)

Bekannte Probleme:
Inkompatibel mit uClibc 0.9.29, da uClibc 0.9.29 wohl mit pthreads Probleme hat und die zugrundeliegende lib libhpmud pthreads benutzt. :/
Sollte in der neuen Version speziell für Freetz behoben sein. Bitte um Rückmeldung.

Wie installiert man es?
Entweder die Entwicklerversion von Freetz verwenden und es dort im "make menuconfig" auswählen
ODER

hplip-addon-0.4.3-freetz.tar.bz2 herunterladen und in $FREETZ/addon entpacken (für den alten dsmod: hplip-addon-0.4.3-kernel_2.6.tar.bz2 für ds26-15.2 (Kernel 2.6) bzw. hplip-addon-0.4.3.tar.bz2 für ds-0.2.9-p8 (Kernel 2.4) herunterladen und in $DSMOD/addon entpacken). Das Paket besteht aus mehreren Einzelpaketen. Jedes einzelne Paket muß in die static.pkg eingetragen werden. Pakete, die man schon anderweitig integriert hat (z.B. libusb oder libjpeg), kann man weglassen.

Hinweis: Um die Installation möglichst klein zu halten, sollte man die Datei hplip-2.8.12/root/usr/share/hplip/data/models/models.dat editieren und alle Einträge bis auf den für den eigenen Drucker löschen.

Wie wird es konfiguriert?
Im Webinterface unter http://fritz.box:81/ unter dem Menüpunkt "hp-utils" die URI des Druckers eintragen. Die Geräte-URI kann man über einen Aufruf von "hp-probe" auf der Box erfahren. (Die URI ist etwas von der Art hp:/usb/GERAETE_NAME?serial=SERIENNUMER)

Wie scanne ich damit?
Unter Linux mit XSane. Backend "net" verwenden und IP-Adresse der Fritz!Box angeben. Unter Windows genauso mit XSane-Win32, s. http://www.xsane.org/xsane-win32.html oder mit SaneTwain.
Falls das wider Erwarten nicht funktionieren sollte, mal mit "sane-find-scanner" und "scanimage -L" auf der Box testen, ob der Scanner ansprechbar ist bzw. wo es scheitert.

Welche Pakete sind enthalten?
libusb-0.1.12, sane-backends-1.0.19, micro_inetd, hplip-2.8.12, hp-utils-0.3.2

Ich will's selbst kompilieren!
Post ff. (aktuellere Patches hier im Anhang)
 

Anhänge

  • patches.tar.bz2
    13.8 KB · Aufrufe: 56
  • hplip-addon-0.4.3.tar.bz2
    277.7 KB · Aufrufe: 43
  • hplip-addon-0.4.3-kernel_2.6.tar.bz2
    294.9 KB · Aufrufe: 59
  • hplip-addon-0.4.3-freetz.tar.bz2
    295 KB · Aufrufe: 50
Zuletzt bearbeitet:
hp-utils

Ich hab mal Teile von HPLIP nach C portiert. Momentan veröffentliche ich nur die Tintenstandsabfrage, hp-levels. Allerdings is alles noch in nem sehr frühen Stadium, aber wer's testen will...
 
Zuletzt bearbeitet:
Hi,

dieses "Projekt" find ich klasse. Hab's mal mit meinem HP PSC 1210 getestet. Krieg zwar nen Segfault, wenn der Drucker ausgeschaltet ist, aber bei eingeschaltetem Drucker funktioniert's prima.
Werde später mal den Output posten.

Danke,
Whoopie
 
Und wenn Du Segfault sagst, dann meinst Du auch SIGSEGV? Sollte nicht sein. Ich hab zwar nicht besonders defensiv programmiert, aber wenn der Drucker aus is, sollte ne Assertion zuschlagen und dann bricht das Programm mit SIGABRT ab. Das is im Ggs. zu SIGSEGV durchaus beabsichtigt.
 
Hi,

mit "DEFS += -DNDEBUG" krieg ich den SIGSEGV:

Code:
/var/media/ftp/uStor01/hplip/usr/bin # strace /tmp/hp-levels
execve("/tmp/hp-levels", ["/tmp/hp-levels"], [/* 132 vars */]) = 0
svr4_syscall()                          = -1 ERRNO_4090 (Unknown error 4090)
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libhpmud.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libhpmud.so.0", O_RDONLY) = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\20\24\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 1167360, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aabd000
old_mmap(0x2aabd000, 66292, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aabd000
old_mmap(0x2ab0d000, 1852, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x10000) = 0x2ab0d000
old_mmap(0x2ab0e000, 833080, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ab0e000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\300\30\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 122880, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2abda000
old_mmap(0x2abda000, 53876, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2abda000
old_mmap(0x2abf7000, 1020, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x2abf7000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libc.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY)        = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\260\272\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 462848, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2abf8000
old_mmap(0x2abf8000, 370340, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2abf8000
old_mmap(0x2ac63000, 4452, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x5b000) = 0x2ac63000
old_mmap(0x2ac65000, 15096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ac65000
close(3)                                = 0
mprotect(0x2abf8000, 370340, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x2aaae000, 4096)                = 0
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libsane.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libsane.so.1", O_RDONLY) = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\260\22\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 290816, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ac69000
old_mmap(0x2ac69000, 25892, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2ac69000
old_mmap(0x2acaf000, 1763, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x6000) = 0x2acaf000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libusb-0.1.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libusb-0.1.so.4", O_RDONLY) = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\360\20\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 290816, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2acb0000
old_mmap(0x2acb0000, 23020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2acb0000
old_mmap(0x2acf5000, 7960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x5000) = 0x2acf5000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libdl.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libdl.so.0", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.0", O_RDONLY)       = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0 \7\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 73728, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2acf7000
old_mmap(0x2acf7000, 6096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2acf7000
old_mmap(0x2ad08000, 2160, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x2ad08000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libjpeg.so.62", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libjpeg.so.62", O_RDONLY) = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0000\36\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 397312, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ad09000
old_mmap(0x2ad09000, 132756, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2ad09000
old_mmap(0x2ad69000, 2696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20000) = 0x2ad69000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libm.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libm.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/lib/libm.so.0", O_RDONLY)        = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\340\30\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 176128, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ad6a000
old_mmap(0x2ad6a000, 109220, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2ad6a000
old_mmap(0x2ad94000, 3228, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1a000) = 0x2ad94000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/home/whoopie/openwrt/trunk/staging_dir/mipsel/usr/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libpthread.so.0", O_RDONLY)  = 3
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\3403\0\0004\0\0\0"..., 4096) = 4096
old_mmap(NULL, 147456, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ad95000
old_mmap(0x2ad95000, 50996, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2ad95000
old_mmap(0x2adb2000, 18092, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x2adb2000
old_mmap(0x2adb7000, 6560, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2adb7000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
mprotect(0x2abf8000, 370340, PROT_READ|PROT_EXEC) = 0
ioctl(0, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 2902
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=715820868}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2040*1024, rlim_max=718916376}) = 0
rt_sigaction(SIGRT_0, {SIG_DFL}, NULL, 16) = 0
rt_sigaction(SIGRT_1, {SIG_DFL}, NULL, 16) = 0
rt_sigaction(SIGRT_2, {SIG_DFL}, NULL, 16) = 0
rt_sigprocmask(SIG_BLOCK, [RT_0], NULL, 16) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 16) = 0
brk(0)                                  = 0x443000
brk(0x444000)                           = 0x444000
stat("/dev/bus/usb", 0x7fd649a0)        = -1 ENOENT (No such file or directory)
stat("/proc/bus/usb", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/proc/bus/usb", O_RDONLY)         = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
brk(0x445000)                           = 0x445000
getdents(3, /* 4 entries */, 3933)      = 68
close(3)                                = 0
stat("/proc/bus/usb", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/proc/bus/usb", O_RDONLY)         = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents(3, /* 4 entries */, 3933)      = 68
brk(0x446000)                           = 0x446000
getdents(3, /* 0 entries */, 3933)      = 0
close(3)                                = 0
stat("/proc/bus/usb/001", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/bus/usb/001", O_RDONLY)     = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents(3, /* 6 entries */, 3933)      = 96
brk(0x447000)                           = 0x447000
open("/proc/bus/usb/001/004", O_RDWR)   = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0x7fd62a50) = 0
read(4, "\22\1\0\2\0\0\0@\31\32(\26\0\1\1\2\3\1", 18) = 18
read(4, "\t\2 \0\1\1\0\200", 8)         = 8
read(4, "2\t\4\0\0\2\10\6P\0\7\5\201\2@\0\0\7\5\2\2@\0\0", 24) = 24
close(4)                                = 0
brk(0x448000)                           = 0x448000
open("/proc/bus/usb/001/003", O_RDWR)   = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0x7fd62a50) = 0
read(4, "\22\1\20\1\340\1\1@\260\rpi%\5\0\0\0\1", 18) = 18
read(4, "\t\2\301\0\3\1\0\200", 8)      = 8
read(4, "2\t\4\0\0\3\340\1\1\0\7\5\201\3\20\0\1\7\5\2\2@\0\1\7\5\202\2@\0\1\t"..., 185) = 185
close(4)                                = 0
brk(0x449000)                           = 0x449000
open("/proc/bus/usb/001/002", O_RDWR)   = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0x7fd62a50) = 0
read(4, "\22\1\0\2\t\0\0@\343\5\6\6\2\7\0\1\0\1", 18) = 18
read(4, "\t\2\31\0\1\1\0\340", 8)       = 8
read(4, "2\t\4\0\0\1\t\0\0\0\7\5\201\3\1\0\377", 17) = 17
close(4)                                = 0
brk(0x44a000)                           = 0x44a000
open("/proc/bus/usb/001/001", O_RDWR)   = 4
ioctl(4, USBDEVFS_CONNECTINFO, 0x7fd62a50) = 0
read(4, "\22\1\20\1\t\0\0\10\0\0\0\0\0\0\0\2\1\1", 18) = 18
read(4, "\t\2\31\0\1\1\0@", 8)          = 8
read(4, "\0\t\4\0\0\1\t\0\0\0\7\5\201\3\10\0\377", 17) = 17
close(4)                                = 0
getdents(3, /* 0 entries */, 3933)      = 0
close(3)                                = 0
open("/proc/bus/usb/001/004", O_RDWR)   = 3
ioctl(3, USBDEVFS_IOCTL, 0x7fd64620)    = -1 ENOTTY (Inappropriate ioctl for device)
close(3)                                = 0
open("/proc/bus/usb/001/003", O_RDWR)   = 3
ioctl(3, USBDEVFS_IOCTL, 0x7fd64620)    = -1 ENOTTY (Inappropriate ioctl for device)
close(3)                                = 0
open("/proc/bus/usb/001/002", O_RDWR)   = 3
ioctl(3, USBDEVFS_IOCTL, 0x7fd64620)    = 5
close(3)                                = 0
open("/proc/bus/usb/001/001", O_RDWR)   = 3
ioctl(3, USBDEVFS_IOCTL, 0x7fd64620)    = 2
close(3)                                = 0
open("/proc/bus/usb/001/004", O_RDWR)   = 3
close(3)                                = 0
open("/proc/bus/usb/001/003", O_RDWR)   = 3
close(3)                                = 0
open("/proc/bus/usb/001/002", O_RDWR)   = 3
close(3)                                = 0
open("/proc/bus/usb/001/001", O_RDWR)   = 3
close(3)                                = 0
write(1, "Probing usb bus for HP devices.."..., 71Probing usb bus for HP devices... found 0 device(s). Using 1st device.
) = 71
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

Ohne "DEFS += -DNDEBUG" krieg ich SIGABRT:
Code:
/tmp/hp-levels
Probing usb bus for HP devices... found 0 device(s). Using 1st device.
/tmp/hp-levels: hp-levels.c: 61: main: Assertion `s != ((void *)0)' failed.
Aborted
 
Aso, ja das is klar. -DNDEBUG deaktiviert nämlich die Assertions. ;)
 
EDIT: Zusammengefaßt im Anfangsposting.
 
Zuletzt bearbeitet:
Hallo tehron!
Ist die Version hier geeignet, um nochmal mit sane zu testen? Oder ist die Scanfunktionalität gleich geblieben? Mein Problem von damals habe ich nämlich auch noch nicht gelöst bekommen :)
 
Ist die Version hier geeignet, um nochmal mit sane zu testen? Oder ist die Scanfunktionalität gleich geblieben?
Naja, probier's einfach noch mal aus ^^
Aber ich denk nciht, daß es jetz gehen wird. Es is nur ne neuere Version von sane-backends im Paket. Da fällt mir auf, daß ich das oben noch dazu schreiben sollte...
Mein Problem von damals habe ich nämlich auch noch nicht gelöst bekommen :)
Ich hab jetzt etwas mehr Zeit und schaus mir noch mal an. Ich fürchte aber, daß da nicht viel rauskommen wird, weil man da mit Gerät testen und schauen muß, worans liegt. Aber vll. find ich ja nen offensichtlichen Fehler im Code. ;)
 
AndreR: Ich hab jetzt mal die HPLIP im Paket aktualisiert. Evtl. löst das ja Dein Problem, denn ich kann ohne das Gerät zum Testen zu haben nicht viel machen.
 
Ziel: Ich habe einen LaserJet 1000 und würde diesen gern von Windows aus nutzen - natürlich ohne USB-Fernanschluss, sondern als Netzwerkdrucker.

Versuche also gerade dein Addon in mein Freetz-Image zu integrieren. Kurze Anmerkung: deine Endung ist .gz, sollte aber .bz lauten :)
Jedenfalls entnehme ich der FAQ, dass in meinem Fall "HPIJS only" reicht. Ich werde mal ein wenig probieren, komme bestimmt mit konkreten Fragen wieder.
Unabhängig davon frage ich mich, wie geht's dann weiter. Hier habe ich gelernt, dass kein Samba mehr notwendig ist. Na mal schauen...
 
Wieso benutzt Du nicht einfach den Printserver der Fritzbox?
Du willst nicht wirklich CUPS, HPIJS, Ghostscript etc. auf der Box laufen lassen...

Und welche Endung .gz meinst Du?
 
Na ja... bliebe mir nichts anderes übrig: der LJ1000 ist ein GDI-Drucker
 
Naja, meiner Erfahrung nach nimmt die Box diese Einschränkung nicht allzu ernst. Hast Du's überhaupt ausprobiert?
 
Normalerweise reicht es, einen Windows Treiber zu installieren, der Druckdaten für den Drucker aerstellen kann. Die Box gibt diese dann unverändert weiter.

Leider gibt es zum Teil sogar Netzwerkdrucker, deren Treiber darauf besteht, die Daten nur direkt an den Drucker weiterzuleiten.
 
Was ich alles schon probiert habe. Jedenfalls einfach einen Netzwerkdrucker unter Windows einrichten reicht nicht.

Ich hoffte, wenn ich die Firmware, die nach jedem Einschalten hochgeladen wird, manuell hochlade, dann klappt's. Geht aber auch nicht. Vermutlich, weil der Drucker selbst dann kein PJL spricht.

Ich habe unter Windows mal ein mehrseitiges Dokument in eine Datei gedruckt und diese nach "cat ./firmware >/dev/usblp0" mittels "cat ./raw-dokument >/dev/usblp0" abgeschickt. Das klappt, allerdings ist der Drucker sogar so doof, dass wenn ihm ihr das Papier ausgeht er auf einen Befehl vom USB-Host wartet, dass er weiter drucken darf (nachdem Papier nachgelegt wurde).
 
Daß du von Einrichten eines Netzwerkdruckers und vom erfolgreichen Drucken in eine Datei schreibst, verwirrt mich. Du hast bei Deinen Tests unter Windows schon einen TCP/IP-Port eingerichtet und den Drucker nicht versucht als Netzwerkdrucker einzurichten? Denn wenn das Drucken in ne Datei und dann cat an das Device klappt, dann sollte es doch auch über den Printserver gehen, wie z.B. hier beschrieben.
 
Ich habe den Treiber an einen Raw-Port-9100-Anschluss gebunden. Habe auch schon mit dem Druckprozessor (RAW oder IMFPrint) experimentiert. Passiert einfach nichts. Hmm... könnte ja mal den Netzwerktraffic belauschen, ob da überhaupt etwas rübergeht. Evtl. streikt ja einfach der Treiber - wäre natürlich sehr schade.
 
Boah! Ich konnte gerade die Windows-Testseite über den AVM-printserv an meinen HP LaserJet 1000 drucken.

Das muss ich jetzt natürlich noch weiter untersuchen. Weil die .63er Labor noch nicht in Freetz ist, fehlt natürlich der automatische Upload der Druckerfirmware - kann man aber auch remote mittels netcat machen (netcat fritz.box 9100 < sihp1000.img). Und man muss die bidirektionale Unterstützung deaktivieren.
 
Addon-Paket hplip-addon-0.3.1.tar.bz2 / hplip-addon-0.3.1-kernel_2.6.tar.bz2

Was kann man damit machen?
  • Scannen mit HP-Multifunktionsgeräten
  • Tintenstand von HP-Druckern in Webinterface anzeigen (http://fritz.box:83/)
  • Anzeigen des Tintenstands mit dem Commandline-Tool hp-levels

Der HAMMER! :)
Vielen Dank für das geniale Mod - hat alles out-of-the-box funktionert!
Warum sollte man viel Geld für ein sog. "netzwerk-taugliches" Gerät ausgeben wenns Linux gibt!? ;)

Gruß
tetzlav
 
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.