Настройка Принт-сервера на примере TL-WR842ND и HP LJ 1020 с использованием p910nd
Версия прошивки OpenWrt: OpenWrt Attitude Adjustment 12.09-rc1 / LuCI 0.11 Branch (0.11+svn9425)
Устанавливаем необходимые для работы принт-сервера пакеты и редактор nano, для комфортного редактирования файлов конфигурации
opkg update opkg install kmod-usb-printer usbutils p910nd nano
Многие принтеры от Hewlett Packard для печати требуют особый набор команд (прошивку), которые необходимо загружать до начала печати. Всем известный Олег, выложил некоторые прошивки на своем сайте. Посмотреть названия файлов можно по ссылке http://oleg.wl500g.info/hplj Нам нужен драйвер от HP 1020 - выбираем sihp1020.dl (А для МФУ hp M1005, например нужен sihp1005.dl) Переходим в каталог, где будем хранить прошивку и загружаем ее
cd /usr/lib/ wget http://oleg.wl500g.info/hplj/sihp1020.dl
Для того чтобы загрузка прошивки происходила автоматически, при каждом подключении принтера создадим файл
nano /etc/hotplug.d/usb/20-printer
В который добавим следующую информацию
#!/bin/sh FIRMWARE="/usr/lib/sihp1020.dl" DEVICE=/dev/usb/lp0 LOGFILE=/var/log/printer if [ "$PRODUCT" = "3f0/2b17/100" -a "$ACTION" = "add" ] then for i in $(seq 30); do if [ -c $DEVICE ]; then echo "$(date) : Sending firmware to printer." > $LOGFILE cat $FIRMWARE > $DEVICE echo "$(date) : done." >> $LOGFILE exit fi sleep 1 done fi
Обратите внимание на запись 3f0/2b17 - это VID и PID принтера HP LJ 1020 (Первые нули удаляются 03f0). У другой модели, они будут другие. Узнать можно например из панели управления в Windows ну или подключив принтер к роутеру и набрав команду:
lsusb -v | grep ID
Откуда и получите эти данные:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 03f0:3b17 Hewlett-Packard LaserJet M1005 MFP
Следующие две команды найдены на польском форуме, истинное значение мне пока не ясно. У меня пару раз без них не работало
uci set p910nd.@p910nd[0].enabled=1 uci commit p910nd
Открываем файл конфигурации p910nd
nano /etc/config/p910nd
где меняем один параметр - вместо /dev/lp0 пишем /dev/usb/lp0
config p910nd option device /dev/usb/lp0 option port 0 option bidirectional 1 option enabled 1
Открываем в файрволе доступ к принтеру из сети по порту 9100, для этого редактирум файл конфигурации файрвола
nano /etc/config/firewall
В самый конец дописываем следующие строки
# Allow printer config rule option src lan option proto tcp option dest_port 9100 option target ACCEPT
Настройка почти закончена... Осталось только включить демона принт-сервера в автозагрузку и перезагрузить роутер
/etc/init.d/p910nd enable reboot