[solved]HP LaserJet 1018 drukuje kiedy chce

Tylko tematy nie mieszczące się powyżej.
gregor1975
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 27 lut 2008, 17:31
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

[solved]HP LaserJet 1018 drukuje kiedy chce

Post autor: gregor1975 »

Witam,


Moja drukarka HP LaserJet 1018 nigdy nie pracowała prawidłowo na Linuxie z serii Ubuntu, począwszy od dystrybucji 7.10 a skończywszy na 9.10. Najlepiej jej szło na dystrybucji 9.04 i było to jakoś tak dziwnie, że pracowała normalnie zaraz po zainstalowaniu aktualizacji anonsowanych przez menedżera, kilkanaście dni później odmawiała posłuszeństwa a po kolejnych aktualizacjach znowu normalnie pracowała jakiś czas. I tak w kółko. Zawsze jednak było tak, że odmawiała posłuszeństwa wtedy, kiedy najbardziej była mi potrzebna. Nie może tak być, bo teraz możliwość drukowania jest dla mnie kluczowa.

Staję zatem przed dylematem ? zmienić system, czy zmienić drukarkę. Tego pierwszego nie chcę robić, bo ogólnie jestem zadowolony z Linuxa i przyzwyczajony. To drugie jest nieekonomiczne i mało pewne. Bardzo zatem proszę o pomoc.

Zanim podam garść konkretów napiszę, że w poszukiwaniu rozwiązania przeorałem to forum wzdłuż i wszerz (jak i kilka innych) a wszelkie możliwe warianty wypróbowałem. Bez zadowalającego rezultatu.

Do rzeczy:

system Ubuntu 9.10 (instalka z płyty)
jądro 2.6.31-14-generic
absolutnie wykluczona awaria sprzętowa (drukarka, porty USB, kable, etc.)

Polecenie lsusb mówi:

Kod: Zaznacz cały

gregor@gregor-desktop:~$ lsusb 
Bus 001 Device 032: ID 03f0:4117 Hewlett-Packard Printing Support 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 003 Device 002: ID 15ca:00c3 Textech International Ltd. Mini Optical Mouse 
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Na żadnym sterowniku drukarka nie dawała zadowalających rezultatów i ostatnie próby to były raczej strzały na ślepo. Nadzieja pojawiła się przedwczoraj. Sposób postępowania (któraś z kolei próba) stąd: http://foo2zjs.rkkda.com

Nie działało, dopóki w terminalu nie dałem komendy printconf. Konsola pomyślała trochę czasu i z automatu w system > administracja > drukowanie pojawia się drukarka o następujących parametrach:

Opis: HP LaserJet 1018
Położenie: USB Printer #1
Adres URI urządzenia: usb://HP/LaserJet%201018
Producent i model: HP LaserJet 1018 Foomatic/foo2zjs(recomended)

Drukarka od ręki wydrukowała stronę testową oraz plik office (.odt). Po restarcie komputera dalej było w porządku. Przekonany, że oto nastąpił koniec długotrwałej walki z tym zagadnieniem wyłączyłem komputer i poszedłem spać.

Rano drukarka nie drukowała. Po komendzie printconf zaczęła działać ponownie. Do momentu, kiedy usiłowałem wydrukować dużo ważący plik, a konkretnie .jpeg. Drukarka wydrukowała go po kilku minutach namysłu, a potem nie wydrukowała już nic. Zakolejkowane zadanie kończyło się komunikatem przetwarzane.

Ponowna komenda printconf dała rezultat (tylko jako root):

Kod: Zaznacz cały

root@gregor-desktop:~# printconf 
Configuring HP LaserJet 1018 on usb:/dev/usb/lp0 with foo2zjs driver as queue 
"laserjet_1018". 
Use of uninitialized value $str in substitution (s///) at /usr/share/perl5/Foomatic/DB.pm line 5191. 
Use of uninitialized value $str in substitution (s///) at /usr/share/perl5/Foomatic/DB.pm line 5192. 
Use of uninitialized value $str in substitution (s///) at /usr/share/perl5/Foomatic/DB.pm line 5193. 
Use of uninitialized value $str in substitution (s///) at /usr/share/perl5/Foomatic/DB.pm line 5194. 
Use of uninitialized value $str in substitution (s///) at /usr/share/perl5/Foomatic/DB.pm line 5195. 
Use of uninitialized value $ms in string eq at /usr/share/perl5/Foomatic/DB.pm line 3265. 
Use of uninitialized value $ms in regexp compilation at /usr/share/perl5/Foomatic/DB.pm line 3265. 

 * Reloading Common Unix Printing System: cupsd                          [ OK ] 
If printconf was unable to install all of your printers, please visit 
http://www.linuxprinting.org/ for printer information and support from fellow 
users.
Wymienione (i sąsiadujące ? dla czytelności) linie tego pliku wyglądają tak:

Kod: Zaznacz cały

3265 $drvfield .= "," . $devidkey .

3266		($ms eq "1" ? "1" : ($dat->{make} =~ m,^($ms)$,i ? "1" : "0"));

5186 # Prepare strings for being part of an HTML document by, converting

5187 # "<" to "<", ">" to ">", "&" to "&", "\"" to """,

5188 # and "'" to  "&apos;"

5189 sub htmlify {

5190    my $str = $_[0];

5191    $str =~ s!&!&!g;

5192    $str =~ s/\</\</g;

5193    $str =~ s/\>/\>/g;

5194    $str =~ s/\"/\"/g;

5195    $str =~ s/\'/\&apos;/g;

5196    return $str;

5197 }
Zupełnie nie wiem o co tu chodzi i nie wiem jakich wartości mam użyć w tych liniach. Nie wiem w ogóle za co odpowiada ten plik.

Spróbowałem z HPlip ? i tym już zainstalowanym w systemie (3.9.8 ) i tym najnowszym (3.9.12). Po instalacji dałem w terminalu komendę hp-check i otrzymałem szereg komunikatów, między innymi o wymaganych zależnościach. Doinstalowałem wymagane pakiety. Oprócz jednego:

Kod: Zaznacz cały

error: 1 error or warning.
Summary of needed commands to run to satisfy missing dependencies:
sudo aptitude install --assume-yes cupsddk cupsddk-driver

Please refer to the installation instructions at:
http://hplip.sourceforge.net/install/index.html
Pakiet cupsddk jest zainstalowany, natomiast pakietu cupsddk-drivers nie ma w repozytoriach, synaptic tego nie widzi.

Oczywiście system widzi drukarkę

Kod: Zaznacz cały

HP_LaserJet_1018
----------------
Type: Printer
Device URI: hp:/usb/HP_LaserJet_1018?serial=KP3BEH5
PPD: /etc/cups/ppd/HP_LaserJet_1018.ppd
PPD Description: HP LaserJet 1018 hpijs, 3.9.8.36
//usr/lib/pymodules/python2.6/gtk-2.0/gtk/__init__.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK

  set_interactive(1)

Printer status: drukarka HP_LaserJet_1018 jest bezczynna. włączona od śro, 24 lut 2010, 09:38:08
Required plug-in status: Installed
Communication status: Good
Fragment kodu, który pogrubiłem jest dla mnie niezrozumiały.

Poza tym coś tu się nie zgadza, czyli to:

Kod: Zaznacz cały

Current contents of '~/.hplip/hplip.conf' file:

[last_used]
printer_name = HP_LaserJet_1018
working_dir = .
device_uri = serial:/dev/ttyS0?baud=115200

z tym:

Kod: Zaznacz cały

HP_LaserJet_1018
----------------
Type: Printer
Device URI: hp:/usb/HP_LaserJet_1018?serial=KP3BEH5

i z tym:

Kod: Zaznacz cały

USB I/O SETUP |
-----------------
Checking for permissions of USB attached printers...
HP Device 0x4117 at 001:090: 
Device URI: hp:/usb/HP_LaserJet_1018?serial=KP3BEH5

    Device node: /dev/bus/usb/001/090
    Mode: 066
Dałem komendę hp-setup.

W system > administracja > drukowanie pojawia się drukarka:

Opis: (brak wpisu w tym polu)
Położenie: (brak wpisu w tym polu)
Adres URI urządzenia: hp:/usb/HP_LaserJet_1018?serial=KP3BEH5
Producent i model: HP LaserJet 1018 hpijs, 3.9.8.36

Próba drukowania na tak skonfigurowanej drukarce daje komunikaty, że zadanie wystartowało a następnie, że zostało ukończone. Fizycznie nic się nie drukuje.

Popatrzyłem na pliki PPD. Według terminala baza plików PPD znajduje się tu: /usr/share/ppd/hplip. I rzeczywiście, jest tam plik o nazwie hp-laserjet_1018-hpijs.ppd.
Konsola podaje jednocześnie, że plik PPD znajduje się tutaj: /etc/cups/ppd/HP_LaserJet_1018.ppd.
Te pliki różnią się nazwą. Tak to ma być?


Pomoże mi ktoś to ogarnąć?
verdorben
Wytworny Kaczor
Wytworny Kaczor
Posty: 470
Rejestracja: 30 mar 2009, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: ARM

Odp: HP LaserJet 1018 drukuje kiedy chce

Post autor: verdorben »

Ja mam canona ale miałem podobny problem, a mianowicie po instalacji drukarki po restarcie kompa widziałem zawsze dwie drukarki i cups mi wariował.
Zrobiłem tak: usunąłem stery drukarki, z /etc/cups wszystkie wpisy dotyczące canona + pliki które mają 0 (zero) w nazwie. Wyłączyłem drukarkę i cupsa, zainstalowałem pakiety canona, włączyłem cups, cups znalazł mi drukarkę i zainstalował ją samoczynnie, wyłączyłem ponownie cupsa, drukarke i wyrzuciłem pakiet o nazwie system-config-printer-udev.
Na tym nie skończyły się problemy, wszystkiemu był winny moduł lp Io/error (lsmod |grep lp), na usblp działa wszystko jak należy.

Jeśli chodzi o Twoje pliki PPD to skopiowałbym je w dwa różne miejsca żeby się nie pogubić i raz jednym raz drugim nadpisałbym te w /usr/share/ppd i /etc/cups/ppd.
Zanim to zrobisz to zapisz tylko sobie który do jakiego katalogu należy.
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
Inny OS: PLD Linux
gregor1975
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 27 lut 2008, 17:31
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

[solved]Odp: HP LaserJet 1018 drukuje kiedy chce

Post autor: gregor1975 »

Problem został rozwiązany. Odinstalowałem hplip oraz foo2zjs i zrestartowałem komputer. Potem postępowałem dokładnie według http://foo2zjs.rkkda.com/INSTALL (ważne: najpierw czytamy całość, a potem zabieramy się do roboty).

A więc:

Kod: Zaznacz cały

$ sudo apt-get install build-essential
$ sudo apt-get install foomatic-filters
$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
$ tar zxf foo2zjs.tar.gz
$ cd foo2zjs
$ sudo make uninstall
$ make
$ ./getweb 1018
$ sudo make install install-hotplug cups
$ sudo system-config-printer
W systemie pojawia się drukarka o adresie URI:

Kod: Zaznacz cały

usb://HP/LaserJet%201018

obsługiwana przez sterownik Foomatic/foo2zjs (recommended).

Profilaktycznie zrestartowałem komputer. Następnie w terminalu, będąc w katalogu /home/<nazwa użytkownika>/foo2zjs dałem:

Kod: Zaznacz cały

# make install-hotplug
wyłączyłem drukarkę i ponownie włączyłem. Drukarka nadal nie działała.

Sprawdziłem, czy załadował się firmware:

Kod: Zaznacz cały

# usb_printerid /dev/usb/lp0
Terminal zwrócił komunikat:

Kod: Zaznacz cały

Error: Input/output error: GET_DEVICE_ID on '/dev/usb/lp0'
Uznałem, że problem tkwi w ładowaniu firmwaru do drukarki. Lektura kilkunastu naprowadzających wątków sprawiła, że:

Wyedytowałem plik:

Kod: Zaznacz cały

/etc/udev/rules.d/11-hplj10xx.rules
i wszędzie tam, gdzie było:

Kod: Zaznacz cały

{product}
zmieniłem na:

Kod: Zaznacz cały

{idProduct}
Nie wiem, czy był tam błędny zapis, czy nie, w każdym razie widziałem w tym jakąś niekonsekwencję i pozmieniałem to.

Wyedytowałem plik:

Kod: Zaznacz cały

/etc/hotplug/usb/hplj1018
i tam gdzie było:

Kod: Zaznacz cały

DEV=/dev/usb/lp0
DEV=" "
zmieniłem na:

Kod: Zaznacz cały

DEV=/dev/usb/lp0
# DEV=" "
i zrestartowałem komputer (nie wyłączając drukarki). Po uruchomieniu próba druku nie przyniosła rezultatu.

Dałem komendę:

Kod: Zaznacz cały

cat /usr/share/foo2zjs/firmware/sihpp1018.dl > /dev/usb/lp0

Kontrolki drukarki pomigały sobie przez kilka sekund. Ponownie sprawdziłem, czy załadował się firmware:

Kod: Zaznacz cały

# usb_printerid /dev/usb/lp0
Terminal zwrócił komunikat:

Kod: Zaznacz cały

GET_DEVICE_ID string:
        MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS: PRINTER;\
                    DES:HP LaserJet 1018;FWVER:20050309
co oznacza, że firmware załadował się.
Próba druku zakończyła się sukcesem i drukarka (na razie) działa.

Dziękuję za zaangażowanie i mam nadzieję, że ten temat okaże się dla kogoś pomocny.

P.S.1. Istotnie pomocne okazały się dla mnie następujące źródła:
http://bugs.gentoo.org/166537
http://www.abclinuxu.cz/poradna/linux/s ... m2wvva60il

P.S.2. Proszę zwrócić uwagę na to (z http://foo2zjs.rkkda.com/INSTALL):

Kod: Zaznacz cały

On Linux with USB connected printer:
            If you are running Linux and the printer is connected via USB, you
            can arrange for the firmware to be automatically downloaded to the
            printer by performing one more installation step:

            # make install-hotplug

            Power off then on the printer. Light should flash orange for
            ~5 seconds as the firmware is getting downloaded.

        On another OS or with a parallel port connected printer:

            You must send a firmware file to the printer each time you power it
            up.  If you downloaded the extra files for the HP above, a typical
            command line to load the firmware would be ONE of these:

           # cat /usr/share/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0

Mimo że mam podłączoną drukarkę do portu USB (a nie równoległego) i używam Linuxa, musiałem ręcznie zadać komendę:

Kod: Zaznacz cały

# cat /usr/share/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0
co oznacza, że albo szwankowała (i ewentualnie będzie szwankować) u mnie obsługa hotplug, albo ten opis jest nieścisły.
ODPOWIEDZ

Wróć do „Inne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 14 gości