Problemy z hplip


#1

Mam drukarkę HP1018, która dobrze pracuje pod linuksem. Niestety w Manjaro (archlinuksie i jego pochodnych) mam problem; drukarka przestaje pracować gdy ją lub komputer zrestartuję. Hplip nie potrafi utworzyć odpowiedniego “adresu URI” i po prostu nie widzi drukarki. Mam tymczasowe rozwiązanie polegające na:

  1. Usunięciu drukarki z systemu.
  2. Odinstalowaniu hplip-plugin.
  3. Zrestartowaniu drukarki.
  4. Zainstalowaniu hplip-plugin.
  5. Zainstalowaniu drukarki.
  6. Skonfigurowaniu drukarki.

To działa ale jest bardzo denerwujące. Może ktoś spotkał się z podobnym problemem i wie jak sobie z nim poradzić.
System oczywiście rozpoznaje podłączoną drukarkę (widać to dzięki lsusb i dmesg). Sprawdziłem wszystkie sugestie z wiki archlinuksa.


#2

Nie miałem takiego problemu, ale może warto połączyć za pomocą innego protokołu lub adresu? Np. u mnie system za cholerę nie chce się połączyć jak używam prawidłowej nazwy drukarki, ale nie ma problemu z inną nazwą, którą znalazłem na jakimś forum pomocy. Poza tym odkryłem, że drukarka może działać dobrze podłączona dwoma różnymi sposobami, więc jest jakieś pole do eksperymentów.

W ostateczności zawsze można podłączyć po kablu. Ale przy sieciowej łatwiej znaleźć drukarkę w GUI jak ma się zainstalowany pakiet python-pysmbc, który umożliwia wyszukiwanie i prezentacje wyników w GUI dodawania drukarki (bez tego trzeba ręcznie wprowadzać). Przynajmniej tak było jakiś czas temu, możliwe, że coś się zmieniło w tym zakresie.

No i sprawdź journalctl czy tam się pojawia jakiś błąd związany z drukarką:

journalctl -b -p3 (dla bieżącego uruchomienia)


#3

Nie wiem czy zaglądałeś https://wiki.archlinux.org/index.php/CUPS_(Polski)
https://forum.manjaro.org/t/to-install-hp-printer/4092
https://wiki.manjaro.org/index.php/Printer_Configuration

Czy masz również zainstalowany cups ?


#4

Dziękuję za wszystkie sugestie, to jest stara drukarka i działa tylko po kablu usb.
jurnalctl - pokazuje błędy z niemożliwością otwarcia adresu, na którym drukarka pracuje

io/hpmud/musb.c 153: unable get_string_descriptor -7: Resource temporarily unavailable
io/hpmud/musb.c 605: invalid product id string ret=-7
io/hpmud/musb.c 1151: unable to open hp:/usb/HP_LaserJet_1018?serial=KP3AZTW
prnt/backend/hp.c 824: ERROR: open device failed stat=12: hp:/usb/HP_LaserJet_1018?serial=KP3AZTW
io/hpmud/musb.c 153: unable get_string_descriptor -7: Resource temporarily unavailable
io/hpmud/musb.c 605: invalid product id string ret=-7
io/hpmud/musb.c 1151: unable to open hp:/usb/HP_LaserJet_1018?serial=KP3AZTW
prnt/backend/hp.c 824: ERROR: open device failed stat=12: hp:/usb/HP_LaserJet_1018?serial=KP3AZTW
...
io/hpmud/musb.c 2099: Invalid usb_open: Permission denied

Ta drukarka drukuje, ale za każdym razem, po restarcie muszę przejść wyżej opisaną procedurę.
Jak pisałem wiki archlinuksa przestudiowałem, także wiki i forum manjaro, oraz kilku innych dystrybucji.
Użytkownik jest w grupach lp i sys. cups oczywiście jest zainstalowane.


#5

Logi sugerują błędne uprawnienia… sprawdź poleceniem:

ls -l /dev/bus/usb/0*

Na jakim jądrze działasz? Może spróbuj zainstalować jakieś starsze, któreś z wydań LTS.


#6
ls -l /dev/bus/usb/001
crw-rw-r--+ 1 root lp   189, 5 01-05 00:41 006

uname -a
Linux manjaro 4.19.13-1-MANJARO #1 SMP PREEMPT Sat Dec 29 15:43:56 UTC 2018 x86_64 GNU/Linux

Z tym problemem w manjaro borykam się od długiego czasu (na innych dystrybucjach od czasu do czasu), jedynie w debianie działa prawidłowo.
Zainstaluję ostatniego LTS’a i sprawdzę.

Na linux 4.14.91 jest tak samo.


#7

Zapytam profilaktycznie, po instalacji cups i hplip-plugin doinstaluj hp-toolbox. Skonfiguruj wszystko.
W momencie gdy wszystko działa polecenie:

sudo systemctl enable org.cups.cupsd.service
sudo systemctl start org.cups.cupsd.service


#8

Widać tu, że korzystasz z ACL (Access Control List), więc przyda się jeszcze wyjście z:

getfacl /dev/bus/usb/001

#9

A może by zajrzeć w sam pakiet hplip-plugin, a dokładnie jakie polecenia wykonywane są podczas instalacji. Można by na tej podstawie stwierdzić z czym jest problem. Prawdopodobnie problem także może leżeć po stronie kabla usb, jeśli jest to typ USB B, może wina leży po jego stronie, taki kabel, rodzaj złącza używa się gdy urządzenie nie potrzebuje zasilania hosta, a korzysta z własnego. USB w takim wypadku służy jedynie do wymiany danych. Patrząc na logi, właśnie na to by wskazywał brak dostępu do urządzenia.

Oczywiście mogę się mylić.


#10
getfacl /dev/bus/usb/001

Niestety nie pomogło na mój problem.

hp-toolbox jest zainstalowany. Service org.cups.cupsd.service działa.

Drukarka, na tym co mam przewodzie działa, ale tylko do czasu restartu jej lub komputera. Aby ją uruchomić muszę przejść procedurę opisaną w pierwszym poście.


#11
getfacl /dev/bus/usb/001

Ale to nie ma pomóc na twój problem tylko wyświetlić jakie są dokładnie uprawnienia do tego pliku :slight_smile:


#12
getfacl /dev/bus/usb/001

# file: dev/bus/usb/001
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

getfacl /dev/bus/usb/001/011
# file: dev/bus/usb/001/011
# owner: root
# group: lp
user::rw-
user:zbig:rw-
group::rw-
mask::rw-
other::r--

#13

Nie do końca ogarniam… ale wygląda na to, że coś zmienia uprawnienia - może jakaś reguła udev(?).

Próbowałbym na twoim miejscu ogarnąć temat w ten sposób, aby porównać uprawnienia do tych plików w momencie kiedy drukarka działa i kiedy już nie działa. Wtedy dalej szukać… np. co i dlaczego zmienia uprawnienia…


#14

To co podałem to uprawnienia do katalogu /dev/bus/usb/001 i do pliku odwołującego się do drukarki /dev/bus/usb/001/011.
Jak drukarka działa i nie działa uprawnienia się nie zmieniają.

To jednak coś z hplip-plugin. Jak jest odinstalowany to hplip potrafi utworzyć odpowiedni adres URL, ale bez pluginu nie wydrukuje dlatego należy go doinstalować. Jak hplip-plugin jest zainstalowany, to po restarcie hplip nie potrafi utworzyć dobrego adresu URL i krzyczy, że nie znalazł urządzenia.