Инструменты пользователя

Инструменты сайта


ru:software:openwrt:printserver

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:software:openwrt:printserver [2021/01/16 00:13]
root [Установка]
ru:software:openwrt:printserver [2021/02/28 01:59] (текущий)
root
Строка 2: Строка 2:
 Эта инструкция по созданию сервера печати на базе OpenWRT.\\ Эта инструкция по созданию сервера печати на базе OpenWRT.\\
 Имеющиеся в продаже готовые решения примитивны и неоправданно дорого стоят.\\ Имеющиеся в продаже готовые решения примитивны и неоправданно дорого стоят.\\
 +Из всех имеющихся на рынке готовых решений только Zyxel Keenetic на старой прошивке версии 1 (возможно на новых тоже) может автоматически загружать прошивку в принтер,​ но это не сервер печати а WiFi роутер.\\
  
  
 ===== Features ===== ===== Features =====
-  * возможность получить и установить свежую прошивку +  * Возможность получить и установить свежую прошивку 
-  * широкий выбор аппаратной платформы +  * Широкий выбор аппаратной платформы 
-  * поддержка IPv6, DHCPv6 и тп +  * Поддержка IPv6, DHCPv6 и тп 
-  * поддержка USB хабов +  * Поддержка USB хабов 
-  * поддержка WiFi (встроенного или через дополнительный PCI/USB адаптера) +  * Поддержка WiFi (встроенного или через дополнительный PCI/USB адаптера) 
-  * возможность одновременной работы с несколькими принтерами +  * Возможность одновременной работы с несколькими принтерами 
-  * автоматическая загрузка прошивки в принтер при включении сервера печати или принтера+  * Автоматическая загрузка прошивки в принтер при включении сервера печати или принтера
  
  
Строка 19: Строка 19:
 Лучше посмотреть инструкции по установки для выбранного устройства на сайте openwrt.\\ Лучше посмотреть инструкции по установки для выбранного устройства на сайте openwrt.\\
 На [[http://​wiki.friendlyarm.com/​wiki/​index.php/​NanoPi_NEO|NanoPi NEO]] установка сводится к: На [[http://​wiki.friendlyarm.com/​wiki/​index.php/​NanoPi_NEO|NanoPi NEO]] установка сводится к:
-  - скачать [[https://​downloads.openwrt.org/​releases/​19.07.5/​targets/​sunxi/​cortexa7/​openwrt-19.07.5-sunxi-cortexa7-sun8i-h3-nanopi-neo-squashfs-sdcard.img.gz|squashfs]] образ+  - скачать [[https://​downloads.openwrt.org/​releases/​19.07.7/​targets/​sunxi/​cortexa7/​openwrt-19.07.5-sunxi-cortexa7-sun8i-h3-nanopi-neo-ext4-sdcard.img.gz|ext4]] образ
   - с помощью dd залить его на MicroSD флешку   - с помощью dd залить его на MicroSD флешку
   - вставить флешку в [[http://​wiki.friendlyarm.com/​wiki/​index.php/​NanoPi_NEO|NanoPi NEO]]   - вставить флешку в [[http://​wiki.friendlyarm.com/​wiki/​index.php/​NanoPi_NEO|NanoPi NEO]]
Строка 48: Строка 48:
   - **Edit** для **LAN**   - **Edit** для **LAN**
   - Вкладка **Advanced Settings**, **Override MAC address**: вводим примерно тоже самое что там отображается и **Save**, **Save & Apply**   - Вкладка **Advanced Settings**, **Override MAC address**: вводим примерно тоже самое что там отображается и **Save**, **Save & Apply**
 +
 +
 +
 +===== Устанавливаем необходимые компоненты =====
 +  - Переходим в [[http://​192.168.1.1/​cgi-bin/​luci/​admin/​system/​opkg|System->​Software]]
 +  - **Update lists...** (интернет должен быть уже настроен),​
 +  - В появившемся окне: **Dismiss**
 +  - Устанавливаем:​ p910nd, luci-app-p910nd,​ kmod-usb-printer,​ kmod-lp
 +
 +Либо через SSH вводим
 +<​code>​opkg update
 +opkg install p910nd luci-app-p910nd kmod-usb-printer kmod-lp</​code>​
 +
  
  
  
 ===== Скрипт 10-prnt-helper ===== ===== Скрипт 10-prnt-helper =====
 +
  
 ==== Функционал ==== ==== Функционал ====
-При подключении принтера скрипт автоматически+При подключении принтера ​[[http://​www.netlab.linkpc.net/​download/​software/​openwrt/​print_server/​10-prnt-helper|скрипт]] автоматически
   - создаёт symlink /​dev/​PRINTER_SERIAL_NUMBER на /​dev/​usb/​lpX - это нужно чтобы при наличии двух одинаковых принтеров они всегда получали один и тот же TCP порт, не зависимо от порядка включения/​загрузки   - создаёт symlink /​dev/​PRINTER_SERIAL_NUMBER на /​dev/​usb/​lpX - это нужно чтобы при наличии двух одинаковых принтеров они всегда получали один и тот же TCP порт, не зависимо от порядка включения/​загрузки
-  - загружает прошивку с именем ​fw-${DEV_VID}-${DEV_PID}.dl из /etc/fw в принтер +  - загружает прошивку с именем ${DEV_VID}-${DEV_PID}.dl из /etc/fw в принтер 
-  - выводит информацию о своих действиях в [[http://​192.168.1.1/​cgi-bin/​luci/​admin/​status/​syslog|системный лог]]+  - выводит информацию о своих действиях в [[http://​192.168.1.1/​cgi-bin/​luci/​admin/​status/​syslog|Status->​System Log]] 
  
  
Строка 68: Строка 83:
  
  
 +
 +==== Установка прошивок ====
 +  - Переходим в [[http://​192.168.1.1/​cgi-bin/​luci/​admin/​status/​syslog|Status->​System Log]] и ищем строчки содержащие **prnt-helper**,​ если принтер подключён и всё сделано правильно они обязательно будут, как пример для HP 1018 будет примерно так:<​code>​Sat Jan 16 00:26:07 2021 user.notice prnt-helper:​ Device /​dev/​usb/​lp0 linked to /​dev/​DF32CGE
 +Sat Jan 16 00:26:07 2021 user.notice prnt-helper:​ Attempt to load /​etc/​fw/​03f0-4117.dl to /​dev/​usb/​lp0</​code>​
 +  - Создаём папку: <​code>​mkdir -p /​etc/​fw/</​code>​
 +  - Скачиваем прошивку для HP 1018: <​code>​wget -O /​etc/​fw/​03f0-4117.dl http://​www.netlab.linkpc.net/​download/​software/​openwrt/​print_server/​20051028_hp1018.dl</​code>​
 +
 +**DF32CGE** - Уникальный серийный номер принтера.\\
 +**03f0-4117.dl** - VID-PID для HP 1018.\\
 +**20051028_hp1018.dl** - прошивка к которой уже добавлены нужные заголовки.\\
 +Подробнее про прошивки и где/​как их добывать можно прочитать тут [[ru:​software:​win:​print:​fw_uploader|Printer firmware uploder / converter]]
 +
 +
 +
 +==== Автозапуск ====
 +На случай если принтер и принт сервер были обесточены а потом включены одновременно требуется чтобы при загрузке 10-prnt-helper запускался из стартовых скриптов,​ поскольку hotplug событие не отрабатывает такие ситуации.\\
 +
 +  - Переходим в [[http://​192.168.1.1/​cgi-bin/​luci/​admin/​system/​startup|System->​Startup]],​ вкладка **Local Startup**
 +  - перед "exit 0" добавляем:<​code>​
 +for _UMDIR in `find /​sys/​devices/​platform/​ -type d -name '​usbmisc'​`;​ do
 + _LPDIR_PATH=`find "​${_UMDIR}"​ -maxdepth 1 -type d -name '​lp*'​`
 + [ -z "​${_LPDIR_PATH}"​ ] && continue;
 + _LPNAME=`basename "​${_LPDIR_PATH}"​`
 + [ ! -c "/​dev/​usb/​${_LPNAME}"​ ] && continue;
 + _DEVPATH=`echo "​${_LPDIR_PATH}"​ | sed -e '​s|/​sys||'​`
 + echo "Force hotplug for: DEVNAME=usb/​${_LPNAME}"​
 + ACTION=add DEVNAME="​usb/​${_LPNAME}"​ DEVPATH="​${_DEVPATH}"​ /​etc/​hotplug.d/​usbmisc/​10-prnt-helper
 +done</​code>​
 +  - **Save**
 +
 +
 +
 +==== Персистентность ====
 +Чтобы скрипт и файлы прошивок сохранялись в бэкапах конфигурации а так же при обновлении нужно проделать следующее:​
 +  - Переходим в [[http://​192.168.1.1/​cgi-bin/​luci/​admin/​system/​flash|System->​Backup / Flash Firmware]], вкладка **Configuration**
 +  - Добавляем текст: <​code>/​etc/​hotplug.d/​usbmisc/​10-prnt-helper
 +/​etc/​fw/​*</​code>​
 +  - **Save**
 +
 +
 +
 +===== p910nd =====
 +  - Переходим в [[http://​192.168.1.1/​cgi-bin/​luci/​admin/​services/​p910nd|Services->​p910nd - Printer server]]
 +  - Включаем **enable**
 +  - В поле **Device** вместо **/​dev/​usb/​lp0** можно прописать **/​dev/​DF32CGE** (то что было в [[http://​192.168.1.1/​cgi-bin/​luci/​admin/​status/​syslog|Status->​System Log]])
 +  - Остальное на своё усмотрение
 +  - **Save & Apply**
 +
 +
 +
 +====== Обновление ======
 +  - Через WebUI загрузить ext4 образ (для NanoPi NEO)
 +  - Заново установить компоненты
 +  - Перезагрузить
 +
 +
 +
 +====== Заключение ======
 +Не рассмотрена настройка фаервола,​ безопасности и прочих базовых возможностей OpenWRT.\\
 +Расширенные функции,​ такие как автоматическое обнаружение тоже не настраивались,​ возможно это будет сделано позже и данная заметка будет дополнена.\\
 +\\
 +Ретроспективно,​ это четвёртая реализация сервера печати для HP 1018 за последние 14 лет:
 +  - Сервер печати TL-PS110U + [[ru:​software:​win:​print:​fw_uploader|Printer firmware uploder / converter]]
 +  - FreeBSD 9 на Equeleus 8132, самописный демон dprint и скрипт под devd для загрузки прошивки (почти не использовалось)
 +  - Zyxel Keenetic Giga - проработал долго, пока роутер не вышел из строя, после него использовался опять первый вариант
 +\\
 +Основная причина создания этого решения - необходимость автоматической загрузки прошивки в принтер,​ при этом более качественных и компактных принтеров,​ не прихотливых в обслуживании сейчас на рынке нет.\\
 +Возможности заменить плату на аналогичную с флешкой под прошивку и сетью - теоретически есть, но времени на реализацию уйдёт больше при не гарантированном результате.\\
 +\\
 +В планах на будущее:​
 +  * Добавить автоматическое обнаружение
 +  * Установить NanoPi NEO в металлический корпус
 +  * Подключить к NanoPi NEO сканер и настроить кнопки на нём для сканирования на сервер и копирования
 +====== Источники ======
 +
 +[[https://​openwrt.org/​docs/​guide-user/​services/​print_server/​p910nd.server|p910nd Printer Server]]\\
 +[[https://​openwrt.org/​docs/​guide-user/​base-system/​hotplug|Hotplug]]\\
 +[[http://​osboy.ru/​blog/​openwrt/​openwrt-hotplug.html|Настройка Hotplug на OpenWRT]]\\
 +[[ru:​software:​win:​print:​fw_uploader|Printer firmware uploder / converter]]\\
 +[[ru:​hardware:​printer:​gdi|GDI printer and net print server]]\\
 +[[http://​manpages.ubuntu.com/​manpages/​trusty/​man1/​usb_printerid.1.html|usb_printerid]]
  
  
  
ru/software/openwrt/printserver.1610756005.txt.gz · Последние изменения: 2021/01/16 00:13 — root