среда, 25 февраля 2015 г.

Подключение принтера HP LaserJet 1018 к Raspberry Pi

Пытаюсь скрестить Raspberry Pi Model B+, принтер HP LaserJet 1018 и сканер Mustek 1200CU и получить домашний МФУ, доступный через ethernet. Но вот засада - не получается пока каменный цветок.

Сначала не получалось запустить установку минимального raspbian, используя raspbian-ua-netinst. В конце концов оно заработало и я получил чистую систему без lxde и прочих излишеств. Настала очередь оживить принтер, который был "отломан" в процессе отказа от стационарного компа, ранее выполнявшего и роль сервера печати.

Подключаю принтер к USB порту и проверяю, что он теперь виден в системе:

# lsusb 
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 008: ID 03f0:4117 Hewlett-Packard LaserJet 1018

Теперь нужно установить cups и printer-driver-foo2zjs

# apt-get update
# apt-get install -o APT::Install-Recommends=false cups printer-driver-foo2zjs
# cupsctl --remote-admin
# cupsctl --remote-any
# getweb 1018

После установки можно зайти в интерфейс настройки CUPS (https://hostname:631/). Чтобы начать работу с принтером нужно загрузить в него прошивку - для этого проще всего выключить и включить принтер снова.

kernel: [ 7019.844894] usb 1-1.3: new high-speed USB device number 8 using dwc_otg
kernel: [ 7019.985104] usb 1-1.3: New USB device found, idVendor=03f0, idProduct=4117
kernel: [ 7019.992207] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: [ 7020.001092] usb 1-1.3: Product: HP LaserJet 1018
kernel: [ 7020.005933] usb 1-1.3: Manufacturer: Hewlett-Packard
kernel: [ 7020.011090] usb 1-1.3: SerialNumber: KP0EL9M
kernel: [ 7023.171201] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
kernel: [ 7023.197038] usbcore: registered new interface driver usblp
kernel: [ 7023.226501] usblp0: removed
kernel: [ 7023.245471] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
/usr/sbin/hplj1018: foo2zjs: loading HP LaserJet 1018 firmware /lib/firmware/hp/sihp1018.dl to CUPS USB device ...
kernel: [ 7023.321255] usblp0: removed
kernel: [ 7031.385407] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
kernel: [ 7031.404279] usb 1-1.3: usbfs: interface 0 claimed by usblp while 'usb' sets config #1
/usr/sbin/hplj1018: foo2zjs: usb://HP/LaserJet%201018?serial=KP0EL9M... download successful.

Пробую добавить принтер в CUPS и не вижу его в списке, при этом в логе появляется сообщение о проблемах с принтером:

[  654.542227] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
[  717.077527] usblp0: removed

Пробую перезагрузить принтер, но все повторяется. Похоже без дебага не обойтись - расчехляю мультиметр и первым делом проверяю напряжение в точках PP3 (ground) и PP1 или PP2 (vcc).


В отличии от rPi Model B, Model B+ не имеет привычных точек проверки напряжения TP1 и TP2, вместо этого у нее есть супервизор питания (отображается красным светодиодом на плате) и точки PP3, PP1/2 . У меня показало 4.93V, что очень хорошо - похоже дело не в питании.

Значит придется разбираться с софтом. Сначала пробую обновить firmware до последней версии:

# apt-get install rpi-update
# rpi-update
# sed -i -e 's/^/#/' /boot/config.txt
# reboot

Обновление firmware и ядра результат не улучшило - принтер все так же отваливается при попытке его определить. Попробовал снизить скорость USB порта до USB 1.1 (12MBit/s). Для этого нужно добавить параметр dwc_otg.speed=1 в файл /boot/cmdline.txt и перезагрузиться:

# lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/5p, 12M
        |__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 12M
        |__ Port 3: Dev 8, If 0, Class=print, Driver=usblp, 12M

Хотя скорость порта и снизилась, но принтер все же отваливается. Пока новых идей нету...

4 комментария:

  1. Я пытался принтер подключить к вот этому http://catalog.onliner.by/wrouter/tp_link/tlwr842nd/ TP-Link'у по USB и в итоге не осилил :( принет HP P1005

    Может вот это поможет?: https://en.wikipedia.org/wiki/HP_Linux_Imaging_and_Printing

    ОтветитьУдалить
    Ответы
    1. Я пробовал hplip - еще хуже, чем foo2zjs. Похоже проблема в модуле dwc_otg или контроллере USB. Еще думаю попробовать подключить сканер - если тоже не будет работать, то скорее всего проблема не решится.

      Удалить
  2. Рекомендую ознакомится со статьей http://habrahabr.ru/post/134973/
    в частности: "5) Редактируем сценарий foo2zjs, выполняющийся при обнаружении принтера (отключаем модуль ядра usbpl сразу после загрузки firmware). Имя файла зависит от модели вашего принтера!(для 1000/1005/1018/1020 — /usr/sbin/hplj1018 )"

    Была такая же как у Вас проблема с принтером hp lj 1020 правда на cubietruck, данный метод мне помог.

    ОтветитьУдалить
    Ответы
    1. Спасибо за совет - попробую при случае. Сейчас подключил принтер и сканер к док станции и вроде всех устраивает.

      Удалить