Site Tools


software:openwrt:printserver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
software:openwrt:printserver [2022/02/04 18:34]
– ↷ Links adapted because of a move operation root
software:openwrt:printserver [2022/02/04 18:34]
– removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Введение ====== 
-Эта инструкция по созданию сервера печати на базе OpenWRT.\\ 
-Имеющиеся в продаже готовые решения примитивны и неоправданно дорого стоят.\\ 
-Из всех имеющихся на рынке готовых решений только Zyxel Keenetic на старой прошивке версии 1 (возможно на новых тоже) может автоматически загружать прошивку в принтер, но это не сервер печати а WiFi роутер.\\ 
- 
- 
-===== Features ===== 
-  * Возможность получить и установить свежую прошивку 
-  * Широкий выбор аппаратной платформы 
-  * Поддержка IPv6, DHCPv6 и тп 
-  * Поддержка USB хабов 
-  * Поддержка WiFi (встроенного или через дополнительный PCI/USB адаптера) 
-  * Возможность одновременной работы с несколькими принтерами 
-  * Автоматическая загрузка прошивки в принтер при включении сервера печати или принтера 
- 
- 
- 
-====== Установка ====== 
-Лучше посмотреть инструкции по установки для выбранного устройства на сайте openwrt.\\ 
-На [[http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO|NanoPi NEO]] установка сводится к: 
-  - скачать [[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 флешку 
-  - вставить флешку в [[http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO|NanoPi NEO]] 
- 
- 
- 
-====== Настройка ====== 
-Заходим в веб интерфейс, адрес по умолчанию: [[http://192.168.1.1/cgi-bin/luci/|192.168.1.1]], логин root, пароля нет.\\ 
- 
- 
- 
-===== Включение DHCP клиента ===== 
- 
-Переключаем для работы в качестве DHCP клиента, это более предпочтительно для сервера печати. 
- 
-  -  Переходим в [[http://192.168.1.1/cgi-bin/luci/admin/network/network|Network->Interfaces]] 
-  - **Edit** для **LAN** 
-  - Вкладка **General Settings**, **Protocol**: выбираем **DHCP Client** и **Switch protocol**, **Save**, **Save & Apply** 
-  - Переходим в вебгуй на новом адресе чтобы примерились настройки, иначе через 90 секунд настройки откатяся 
- 
- 
- 
-===== Фиксация MAC адреса ===== 
- 
-Для NanoPi NEO требуется зафиксировать mac адрес, чтобы он не генерировал новый после каждой перезагрузки. 
- 
-  -  Переходим в [[http://192.168.1.1/cgi-bin/luci/admin/network/network|Network->Interfaces]] 
-  - **Edit** для **LAN** 
-  - Вкладка **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 ===== 
- 
- 
-==== Функционал ==== 
-При подключении принтера [[http://www.netlab.linkpc.net/download/software/openwrt/print_server/10-prnt-helper|скрипт]] автоматически 
-  - создаёт symlink /dev/PRINTER_SERIAL_NUMBER на /dev/usb/lpX - это нужно чтобы при наличии двух одинаковых принтеров они всегда получали один и тот же TCP порт, не зависимо от порядка включения/загрузки 
-  - загружает прошивку с именем ${DEV_VID}-${DEV_PID}.dl из /etc/fw в принтер 
-  - выводит информацию о своих действиях в [[http://192.168.1.1/cgi-bin/luci/admin/status/syslog|Status->System Log]] 
- 
- 
- 
-==== Установка ==== 
-  - Подключаемся по ssh: <code>ssh root@192.168.1.1</code> 
-  - Создаём папку: <code>mkdir -p /etc/hotplug.d/usbmisc/</code> 
-  - Скачиваем скрипт: <code>wget -O /etc/hotplug.d/usbmisc/10-prnt-helper http://www.netlab.linkpc.net/download/software/openwrt/print_server/10-prnt-helper</code> 
-  - Устанавливаем права: <code>chmod 0755 /etc/hotplug.d/usbmisc/10-prnt-helper</code> 
-  - Устанавливаем владельца: <code>chown root:root /etc/hotplug.d/usbmisc/10-prnt-helper</code> 
- 
- 
- 
-==== Установка прошивок ==== 
-  - Переходим в [[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]]\\ 
-[[hardware:printer:gdi|GDI printer and net print server]]\\ 
-[[http://manpages.ubuntu.com/manpages/trusty/man1/usb_printerid.1.html|usb_printerid]] 
- 
- 
  
software/openwrt/printserver.txt · Last modified: 2022/02/05 05:29 by root