Linux в вечерней школе: настройка принтера HP LaserJet 1005 и сканера BENQ 5000U в Xubuntu Linux 7.10

Сразу после рассылки письма по всем школам города о проведении Mandriva Install Party 2007 в Краснодаре при помощи городского научно-методического центра, нам позвонили из вечерней школы и попросили прийти поставить Linux, т.к. привезти компьютеры возможности нет, а очень нужно. На месте выяснилось, что в школе нелицензионный софт и всякие органы пишут письма -- закупить лицензию или перейти на Линукс. И потом, как сказал зам. директора, он слышал что там "вирусов нет" и хотел бы попробовать. В вечерней школе нет компьютерного класса и всего два слабеньких компьютера. Как мы долго ставили Xubuntu Alternate на Celeron 700 c 98Мб памяти лучше не рассказывать, в общем в итоге из оборудования трудности были только с принтером HP LaserJet 1005 LPT и сканером BENQ 5000U USB. Сегодня все настроили и я записал последовательность действий.

С принтером проблема в необходимости скачивания и установки Firmware от Windows-драйвера, который вшивается компьютером в принтер при каждой перезагрузке девайса. По соображениям лицензионности Firmware этот не входит в бесплатный Linux и его надо докачивать и устанавливать, для чего написан штатный скрипт getweb. Он к сожалению содержит ошибку, еще с версии Ubuntu 7.04 качает не с того хоста и поэтому HP LaserJet 1000/1005/1018/1020 настраиваются с бубном. Буквально неделю назад багу пофиксили и даже решили доставание этих прошивок встроить в менеджер проприетарных драйверов. В общем можно и вручную поправить адреса в скрипте getweb или обновить из репозитариев пакеты foo2zjs и hplip и дальше выполнить:

getweb 1005
(или другую модель принтера, скачается и распакуется фирмвара)
sudo arm2hpdl sihp1005.img > sihp1005.dl
(это какое-то хитрое шаманство)
sudo cp sihp1005.dl /usr/share/foo2zjs/firmware/sihp1005.dl
(копируем где он должен быть)

Для USB-принтера HP LJ 1018 этого было достаточно. А LPT-принтер надо правильно добавить. Делается это и в Ubuntu и в Xubuntu одинаково через программу настройки принтеров. В ней нужно добавить модель принтера, что для 1005 по крайней мере можно сделать двумя путями, причем самый очевидный не работает :) Если добавить драйвер HP так что строка адреса принтера будет выглядеть hp:/par/hp_LaserJet_1005_series?device=/dev/parport0 или hp:/par/hp_LaserJet_1005_series?device=/dev/lp0, то просто не печатает. Нужно на первом экране визарда выбрать просто LPT#, а потом уже HP, тогда строка адреса принтера будет типа /dev/lp0 или /dev/parport0. А как узнать какое именно устройство соответствует порту? Ну не знаю, я скомандовал sudo cat /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/parport0, мне ответили что-то невнятное, потом сказал sudo cat /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/lp0, мне ответили что нет прав, сказал sudo chmod 777 /dev/lp0 и повторил sudo cat /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/lp0 -- принтер радостно захрюкал!

В процессе еще выяснилось что в логе CUPS пишется такое:

[11/Dec/2007:19:35:55 +0300] CUPS-Delete-Printer: Unauthorized
[11/Dec/2007:19:36:24 +0300] [cups-driverd] Unable to open PPD directory "/opt/share/ppd": No such file or directory
[11/Dec/2007:19:40:11 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:40:11 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:41:10 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:41:11 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:41:20 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:41:29 +0300] [cups-driverd] Unable to open PPD directory "/opt/share/ppd": No such file or directory
[11/Dec/2007:19:42:25 +0300] cupsdAuthorize: Local authentication certificate not found!
[11/Dec/2007:19:42:25 +0300] CUPS-Add-Modify-Printer: Unauthorized

Когда это было я не помню, кажется при настройке через драйвер HP, может потому он и не заработал.

Что же до сканера, ему тоже нужно положить куда-нибудь фирмварь от Windows-драйвера и прописать её в /etc/sane.d/snapscan.conf так:

firmware /usr/share/sane/snapscan/u96v121.bin

Причем заработало не с первого раза, а только с фирмварой 20FCV112.bin которая для этого сканера указана на http://snapscan.sourceforge.net/ и находится в драйвере конкретной версии 6.2.5000U на сайте BENQ (распаковать, найти в каталоге Bin и скопировать в /usr/share/sane/snapscan). При запуске xsane из консоли выяснилось, что в процессе сканирования вылет происходит из за невозможности калибровки:

[snapscan] calibrate: reading calibration data (2 lines)
[snapscan] usb_read Only 0 bytes read
[snapscan] read_calibration_data: snapscan_cmd command failed: Error during device I/O
[snapscan] calibrate: read_calibration_data command failed: Error during device I/O
[snapscan] sane_snapscan_start: calibration failed.

Нашел соответствующую багу, где люди пишут что в ранних (1.0.17) версиях sane это работало, а теперь поломалось. Чтобы даунгрейдиться надо снести всю систему печати, которую я только что настроил, по причине зависимости кучи пакетов печати от libsane (с чего бы?). Под Debian люди собирают libsane 1.0.17 из сорсов. Решение простое -- в опциях сканирования выбрать черно-белый вариант. При отсутствии цвета калибровка не происходит и все сканится. Сканер в школе используется вместо ксерокса, так что этого оказалось достаточно.

Ну что, сложно? Я лично считаю, что ни одна нормальная информатичка, зам. директора или тем более секретарша не в состоянии завести такой принтер в последней Ubuntu Linux. Так что проекту Linux в школах работы хватит, хотя сомневаюсь что у них руки дойдут до допиливания визардов настройки периферии. При отсутствии более-менее опытного линуксоида, внедрение Linux в школе обречено на провал, о чем мы недавно говорили с учителем информатики эксперементальной школы N25 г. Краснодара, где, как выяснилось, вся школа уже год как переведена под Ubuntu Linux. Но об этом попозже.

Из нерешенных проблем в этой школе осталась программа ведения базы учеников, сохраняющая все в mdb-файл MS Access и звонящая прямо по модему в гороно (замечу, в школе есть интернет, еще и модем стоит для конекта с гороно!) и отправляющая файл. Эта программа вроде бы во всех школах города стоит, так что мы с ней не раз встретимся еще. Все контакты авторов я записал. Будем спрашивать с них кроссплатформную версию.

P.S. В школе есть Интернет и мы его настроили на обоих компьютерах под Linux при помощи Антона из NCLUG (он знает на память адреса DNS-серверов городских провайдеров :). Настраивая принтер сегодня, я прямо из школы в блог скидывал что в консоли набирал, чтобы потом не забыть, и случайно опубликовал кусок с командами и логами. Прошу прощения что все его заагрегировали :) GiNeR тут же, заметив сообщение об ошибке в команде:

sudo arm2hpdl sihp1005.img > /usr/share/foo2zjs/firmware/sihp1005.dl
bash: /usr/share/foo2zjs/firmware/sihp1005.dl: Permission denied

предложил вариант без копирования, перенаправлением ввода-вывода под sudo :)

Блог: RU Linux

arm2hpdl sihp1005.img | sudo tee /usr/share/foo2zjs/firmware/sihp1005.dl

Поправочка: arm2hpdl sihp1005.img | sudo tee /usr/share/foo2zjs/firmware/sihp1005.dl > /dev/null

ну и получилось у кого-то это повторить?

На Fedora 8 таким образом установился 1018. Все нормуль! Автору респект!

Ну, наконец-то, нашел как настроить сканер BENQ 5000U под Линух. Долго икал, автору респект.

что-то не работает... мистика... буду пробовать еще... :(

Да г****линух апять превосходит все г****, даж принтер в нем непоставиш! МОЗОХИСТЫ ВСЕХ СТРАН ОБЪЕДЕНЯЮТСЯ ПОД ФЛАГОМ Г****ЛИНУХА!!!

Пшол н*х отсюда, пи**р е****й

объедИняются, присоединяйтесь и вы, может будете меньше ошибок в словах делать -- в линухе во всех основных браузерах давно спеллчекер встроен :)

Да получилось но гемору много, цветное не сканит виснет

OpenSuSE 11.4 - аналогичные принтер и сканер заработали из коробки Обзавидуйтесь поклонники окошек :)