Доброго времени суток.
Есть принтер HP 1018
Он подключается.... очень странно....
В общем есть два способа
1) Вооружившись напильником установит пакет printer-driver-foo2zjs загрузить прошивку sihp1018.dl в /lib/firmware/hp (которой там, к слову, нет изкаробки) и юзать драйвер foo2zjs
Но это работает криво. При попытках расшарить принтер не печатает... но не долго.
2) Юзать hplip. (Буди прокляты проприетарные плагины, потому что я так и не понял, как он грузит фирмварь)
И это глючит так-же примерно.
А вот если заблеклистить usblp то время работы увеличивается.. но все равно нормально не работает.
Но вот что интересно...
На другом компе с Ubuntu принтер работает корректно изкаробки.... и нормально..
И я чувствую что дело не в драйвере, а в
процессе подключения.
Вот лог подключения с машины, на которой принтер плохо работает.
Feb 27 14:57:22 snab1 kernel: [18181.950274] usb 2-1.2: new high-speed USB device number 11 using ehci-pci
Feb 27 14:57:22 snab1 kernel: [18182.043260] usb 2-1.2: New USB device found, idVendor=03f0, idProduct=4117
Feb 27 14:57:22 snab1 kernel: [18182.043270] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb 27 14:57:22 snab1 kernel: [18182.043276] usb 2-1.2: Product: HP LaserJet 1018
Feb 27 14:57:22 snab1 kernel: [18182.043281] usb 2-1.2: Manufacturer: Hewlett-Packard
Feb 27 14:57:22 snab1 kernel: [18182.043285] usb 2-1.2: SerialNumber: KP3A896
Feb 27 14:57:22 snab1 udev-configure-printer: add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2
Feb 27 14:57:22 snab1 udev-configure-printer: device devpath is /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2
Feb 27 14:57:23 snab1 udev-configure-printer: URI match: usb://HP/LaserJet%201018?serial=KP3A896
Feb 27 14:57:23 snab1 udev-configure-printer: URI match: hp:/usb/HP_LaserJet_1018?serial=KP3A896
Feb 27 14:57:23 snab1 udev-configure-printer: URI of detected printer: usb://HP/LaserJet%201018?serial=KP3A896, normalized: laserjet 1018 serial kp3a896
Feb 27 14:57:23 snab1 udev-configure-printer: URI of detected printer: hp:/usb/HP_LaserJet_1018?serial=KP3A896, normalized: laserjet 1018 serial kp3a896
Feb 27 14:57:23 snab1 udev-configure-printer: URI of print queue: hp:/usb/HP_LaserJet_1018?serial=KP3A896, normalized: laserjet 1018 serial kp3a896
Что говорит udevadm
scatsrv@snab1:~$ sudo udevadm info --query=env /dev/bus/usb/002/011
Сбой /usr/sbin/share_hook. Код выхода: 1
BUSNUM=002
DEVNAME=/dev/bus/usb/002/011
DEVNUM=011
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_FOR_SEAT=usb-pci-0000_00_1d_0-usb-0_1_2
ID_HPLIP=1
ID_MODEL=HP_LaserJet_1018
ID_MODEL_ENC=HP\x20LaserJet\x201018
ID_MODEL_FROM_DATABASE=LaserJet 1018
ID_MODEL_ID=4117
ID_PATH=pci-0000:00:1d.0-usb-0:1.2
ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_2
ID_REVISION=0100
ID_SERIAL=Hewlett-Packard_HP_LaserJet_1018_KP3A896
ID_SERIAL_SHORT=KP3A896
ID_USB_INTERFACES=:070102:
ID_VENDOR=Hewlett-Packard
ID_VENDOR_ENC=Hewlett-Packard
ID_VENDOR_FROM_DATABASE=Hewlett-Packard
ID_VENDOR_ID=03f0
MAJOR=189
MINOR=138
PRODUCT=3f0/4117/100
SUBSYSTEM=usb
TAGS=:seat:uaccess:udev-configure-printer:
TYPE=0/0/0
USEC_INITIALIZED=182781449
hp_test=yes
libsane_matched=yes
sane_hpaio=yes
Какое устройство\сокет создает драйвер hpcups.... я пока не знаю но точно не /dev/usb/lp0
Вот лог загрузки с рабочей конфигурации другого компа с НР 1018
Feb 27 16:06:41 kassamars kernel: [26122.620112] usb 3-1: new high-speed USB device number 4 using xhci_hcd
Feb 27 16:06:41 kassamars kernel: [26122.659448] usb 3-1: New USB device found, idVendor=03f0, idProduct=4117
Feb 27 16:06:41 kassamars kernel: [26122.659460] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb 27 16:06:41 kassamars kernel: [26122.659466] usb 3-1: Product: HP LaserJet 1018
Feb 27 16:06:41 kassamars kernel: [26122.659472] usb 3-1: Manufacturer: Hewlett-Packard
Feb 27 16:06:41 kassamars kernel: [26122.659476] usb 3-1: SerialNumber: KP1RCQ0
Feb 27 16:06:52 kassamars python: io/hpmud/musb.c 150: unable get_string_descriptor -7: Resource temporarily unavailable
Feb 27 16:06:52 kassamars python: io/hpmud/musb.c 2211: invalid product id string ret=-7
Аналогичная инфа от udev
scatsrv@kassamars:~$ sudo udevadm info --query=env /dev/bus/usb/003/004
Сбой /usr/sbin/share_hook. Код выхода: 1
BUSNUM=003
DEVLINKS=/dev/hplj1018-1
DEVNAME=/dev/bus/usb/003/004
DEVNUM=004
DEVPATH=/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb3/3-1
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_FOR_SEAT=usb-pci-0000_03_00_0-usb-0_1
ID_HPLIP=1
ID_MODEL=HP_LaserJet_1018
ID_MODEL_ENC=HP\x20LaserJet\x201018
ID_MODEL_FROM_DATABASE=LaserJet 1018
ID_MODEL_ID=4117
ID_PATH=pci-0000:03:00.0-usb-0:1
ID_PATH_TAG=pci-0000_03_00_0-usb-0_1
ID_REVISION=0100
ID_SERIAL=Hewlett-Packard_HP_LaserJet_1018_KP1RCQ0
ID_SERIAL_SHORT=KP1RCQ0
ID_USB_INTERFACES=:070102:
ID_VENDOR=Hewlett-Packard
ID_VENDOR_ENC=Hewlett-Packard
ID_VENDOR_FROM_DATABASE=Hewlett-Packard
ID_VENDOR_ID=03f0
MAJOR=189
MINOR=259
PRODUCT=3f0/4117/100
SUBSYSTEM=usb
TAGS=:seat:uaccess:
TYPE=0/0/0
USEC_INITIALIZED=123431881
hp_test=yes
libsane_matched=yes
sane_hpaio=yes
Тут сразу видно, что там где работает, там не запускается udev-configure-printer
И если сделать пару файлов из результатов udev то получится это
scatsrv@snab1:~$ diff hp1 hp2
1,4c1,5
< BUSNUM=002
< DEVNAME=/dev/bus/usb/002/011
< DEVNUM=011
< DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2
---
> BUSNUM=003
> DEVLINKS=/dev/hplj1018-1
> DEVNAME=/dev/bus/usb/003/004
> DEVNUM=004
> DEVPATH=/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb3/3-1
8c9
< ID_FOR_SEAT=usb-pci-0000_00_1d_0-usb-0_1_2
---
> ID_FOR_SEAT=usb-pci-0000_03_00_0-usb-0_1
14,15c15,16
< ID_PATH=pci-0000:00:1d.0-usb-0:1.2
< ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_2
---
> ID_PATH=pci-0000:03:00.0-usb-0:1
> ID_PATH_TAG=pci-0000_03_00_0-usb-0_1
17,18c18,19
< ID_SERIAL=Hewlett-Packard_HP_LaserJet_1018_KP3A896
< ID_SERIAL_SHORT=KP3A896
---
> ID_SERIAL=Hewlett-Packard_HP_LaserJet_1018_KP1RCQ0
> ID_SERIAL_SHORT=KP1RCQ0
25c26
< MINOR=138
---
> MINOR=259
28c29
< TAGS=:seat:uaccess:udev-configure-printer:
---
> TAGS=:seat:uaccess:
30c31
< USEC_INITIALIZED=182781449
---
> USEC_INITIALIZED=123431881
Тут опять разница только в udev-configure-printer
Причем файлы отвечающие за установку данного параметра
идентичны на обоих системах
scatsrv@kassamars:~$ sudo cat /lib/udev/rules.d/70-printers.rules
# Low-level USB device add trigger
ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="07", ATTR{bInterfaceSubClass}=="01", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p"
# Low-level USB device remove trigger
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"
Почему в одном случае правило срабатывает, а в другом нет?Где в udev оно вызывается?