Чудные win-принтеры вообще железки капризные при попытках их использовать под *NIX и по сети, а тут возникла необходимость подключить HP LaserJet 1000 к конструктору D-Link DIR-320 для печати без проводов. Принт-сервер из коробочки вроде эту возможность не поддерживает, комплект от йота-самоделкиных не проверял.
Мой рецепт под катом.
Принтер требует загрузки прошивки, это можно осуществить на рутере при подключении принтера к USB. Сервер печати нужно выбрать такой, который выставит наружу RAW-интерфейс, по которому с клиентов будут приходить полностью подготовленные задания. Для поддержки загрузки прошивки и запуска принт-сервера необходима прошивка рутера с поддержкой USB, а также включение поддежки USB, дополнительной памяти и печати в его настройках.
Есть вариация на эту тему — загружать прошивку с клиентского компьютера. Но она похоже не работает, т.к. чтобы удалённо можно было загрузить прошивку, нужно сначала расшарить принтер, а для этого нужно загрузить прошивку ;-)
Возможно, будет работать и с виндового клиента. Для Mac видимо работа и установка проще, чем локальное подключение. Минус такой, что по факту драйвер foo2zjs хуже, чем драйвера hplip (опыт использования на локальной машине под Ubuntu 9.x). Возможно, можно установить hplips + cups, но далеко не факт.
Мой рецепт под катом.
Общая концепция
Принтер требует загрузки прошивки, это можно осуществить на рутере при подключении принтера к USB. Сервер печати нужно выбрать такой, который выставит наружу RAW-интерфейс, по которому с клиентов будут приходить полностью подготовленные задания. Для поддержки загрузки прошивки и запуска принт-сервера необходима прошивка рутера с поддержкой USB, а также включение поддежки USB, дополнительной памяти и печати в его настройках.
Есть вариация на эту тему — загружать прошивку с клиентского компьютера. Но она похоже не работает, т.к. чтобы удалённо можно было загрузить прошивку, нужно сначала расшарить принтер, а для этого нужно загрузить прошивку ;-)
Конкретика
- Установка прошивки рутера. В данном случае, dd-wrt.v24-13577_NEWD_mini_usb.bin от eko. Инструкции можно посмотреть тут
- Настройка рутера. Не забываем устанавливать пароль и настраивать mac-адрес, выход в интернет и маршрутизацию. После чего включаем на вкладке Администрирование в разделе USB поддержку JFFS2, Core USB Support, USB 1.1 Support, USB 2.0 Support, USP Printer Support. Затем включаем сервис SSHd в разделе сервисов и опцию доступа к рутеру по SSH.
- Принтер и сервер печати. Подключаем принтер к рутеру, ребутим рутер, заходим на него рутом по ssh (192.168.1.1). Готовим прошивку:
mkdir -p /jffs/usr/share/foo2zjs/firmware
cd /jffs/usr/share/foo2zjs/firmware
wget oleg.wl500g.info/hplj/sihp1000.dl
Устанавливаем принт-сервер для печати по протоколу JetDirect:
ipkg update
ipkg install p910nd
По идее, в правильной прошивке рутера уже должны быть модули kmod-usb-core, kmod-usb-uhci, kmod-usb-ohci, kmod-usb2, kmod-usb-printer, которые мы включали в настройках для загрузки.
Модифицируем (с помощью vi или cat) скрипт для подключения:
Файл /jffs/etc/config/usb.startup должен содержать загрузку прошивки и старт сервера
cat /jffs/usr/share/foo2zjs/firmware/sihp1000.dl > /dev/usb/lp0<br>
/jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0
Он также должен быть исполняемым — делаем права с +x и запускаем. В принципе, просто выполнения этих комманд вручную достаточно, если не планируется отключать ни рутер, ни принтер. Проверить статус подключения принтера можноdmesg | grep USB
, сервер на порту 9100netstat -na
. Всё можно сделать и без ssh выполнением комманд через веб-админку, но это неудобно, особенно для редактирования файлов.
- Настройка клиентов. В Linux просто ставим foo2zjs и gplgs из пакетов. В Mac OS ставим dmg
foo2zjs
foomatic + ghostscript
При создании принтера выбираем сетевой принтер HP LaserJet 1000 с драйвером foo2zjs по протоколу JetDirect по адресу 192.168.1.1 на порту 9100.
Заключение, открытые вопросы
Возможно, будет работать и с виндового клиента. Для Mac видимо работа и установка проще, чем локальное подключение. Минус такой, что по факту драйвер foo2zjs хуже, чем драйвера hplip (опыт использования на локальной машине под Ubuntu 9.x). Возможно, можно установить hplips + cups, но далеко не факт.