Печать из Mac OS по WiFi на GDI-принтер

    Чудные win-принтеры вообще железки капризные при попытках их использовать под *NIX и по сети, а тут возникла необходимость подключить HP LaserJet 1000 к конструктору D-Link DIR-320 для печати без проводов. Принт-сервер из коробочки вроде эту возможность не поддерживает, комплект от йота-самоделкиных не проверял.
    Мой рецепт под катом.

    Общая концепция


    Принтер требует загрузки прошивки, это можно осуществить на рутере при подключении принтера к USB. Сервер печати нужно выбрать такой, который выставит наружу RAW-интерфейс, по которому с клиентов будут приходить полностью подготовленные задания. Для поддержки загрузки прошивки и запуска принт-сервера необходима прошивка рутера с поддержкой USB, а также включение поддежки USB, дополнительной памяти и печати в его настройках.

    Есть вариация на эту тему — загружать прошивку с клиентского компьютера. Но она похоже не работает, т.к. чтобы удалённо можно было загрузить прошивку, нужно сначала расшарить принтер, а для этого нужно загрузить прошивку ;-)

    Конкретика


    1. Установка прошивки рутера. В данном случае, dd-wrt.v24-13577_NEWD_mini_usb.bin от eko. Инструкции можно посмотреть тут
    2. Настройка рутера. Не забываем устанавливать пароль и настраивать mac-адрес, выход в интернет и маршрутизацию. После чего включаем на вкладке Администрирование в разделе USB поддержку JFFS2, Core USB Support, USB 1.1 Support, USB 2.0 Support, USP Printer Support. Затем включаем сервис SSHd в разделе сервисов и опцию доступа к рутеру по SSH.
    3. Принтер и сервер печати. Подключаем принтер к рутеру, ребутим рутер, заходим на него рутом по 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, сервер на порту 9100 netstat -na. Всё можно сделать и без ssh выполнением комманд через веб-админку, но это неудобно, особенно для редактирования файлов.
    4. Настройка клиентов. В 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, но далеко не факт.
    Поделиться публикацией

    Комментарии 6

      +1
      Спасибо, полезно!
        0
        у меня dir-320 из коробки умеет с принтерами обращаться… и никаких проблем в настройке…
          0
          www.dlink.ru/ru/faq/75/355.html

          «HP Models
          В соответствии с HP Tech Support (& product spec), некоторые НР принтеры не могут быть установлены в сеть для использования через принт-сервер.

          Примеры таких моделей:

          HP DeskJet 1000,
          HP DeskJet 720,
          HP DeskJet 820
          Почему: Почему: Это принтеры использующие GDI (Graphic Device Interface) и использующие host-драйвер (и поэтому GDI принтеру нужна вычислительная мощность процессора Вашего компьютера. Таким образом, он может работать только с компьютером, непосредственно (напрямую) подсоединенного к принтеру через параллельный порт). Для уточнения подробностей, обращайтесь в HP поддержку.»
            0
            опс… сори… был неправ… у меня всё проще =)))
            0
            foo2zjs.rkkda.com/

            Довльно большой список GDI-принтеров HP, Minolta, Konica, а также Samsung, Xerox, Lexmark, Oki, Kyocera.

            Мне надо было как раз разнастроить принтер из таких неподдерживаемых моделей. Понятно, что у тех же производителей большая часть моделей будет нормально работать. Кстати, к печати и себестоимости страницы 1000-ный весьма хорош.
            0
            Ах, да. «Не забудьте выключить телевизор», в смысле, не забывайте после настроек выключать доступ по ssh (и сам сервис).

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое