Эта инструкция по созданию сервера печати на базе OpenWRT.
Имеющиеся в продаже готовые решения примитивны и неоправданно дорого стоят.
Из всех имеющихся на рынке готовых решений только Zyxel Keenetic на старой прошивке версии 1 (возможно на новых тоже) может автоматически загружать прошивку в принтер, но это не сервер печати а WiFi роутер.
Лучше посмотреть инструкции по установки для выбранного устройства на сайте openwrt.
На NanoPi NEO установка сводится к:
Заходим в веб интерфейс, адрес по умолчанию: 192.168.1.1, логин root, пароля нет.
Переключаем для работы в качестве DHCP клиента, это более предпочтительно для сервера печати.
Для NanoPi NEO требуется зафиксировать mac адрес, чтобы он не генерировал новый после каждой перезагрузки.
Либо через SSH вводим
opkg update opkg install p910nd luci-app-p910nd kmod-usb-printer kmod-lp
При подключении принтера скрипт автоматически
ssh root@192.168.1.1
mkdir -p /etc/hotplug.d/usbmisc/
wget -O /etc/hotplug.d/usbmisc/10-prnt-helper http://www.netlab.linkpc.net/download/software/openwrt/print_server/10-prnt-helper
chmod 0755 /etc/hotplug.d/usbmisc/10-prnt-helper
chown root:root /etc/hotplug.d/usbmisc/10-prnt-helper
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
mkdir -p /etc/fw/
wget -O /etc/fw/03f0-4117.dl http://www.netlab.linkpc.net/download/software/openwrt/print_server/20051028_hp1018.dl
DF32CGE - Уникальный серийный номер принтера.
03f0-4117.dl - VID-PID для HP 1018.
20051028_hp1018.dl - прошивка к которой уже добавлены нужные заголовки.
Подробнее про прошивки и где/как их добывать можно прочитать тут Printer firmware uploder / converter
На случай если принтер и принт сервер были обесточены а потом включены одновременно требуется чтобы при загрузке 10-prnt-helper запускался из стартовых скриптов, поскольку hotplug событие не отрабатывает такие ситуации.
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
Чтобы скрипт и файлы прошивок сохранялись в бэкапах конфигурации а так же при обновлении нужно проделать следующее:
/etc/hotplug.d/usbmisc/10-prnt-helper /etc/fw/*
Не рассмотрена настройка фаервола, безопасности и прочих базовых возможностей OpenWRT.
Расширенные функции, такие как автоматическое обнаружение тоже не настраивались, возможно это будет сделано позже и данная заметка будет дополнена.
Ретроспективно, это четвёртая реализация сервера печати для HP 1018 за последние 14 лет:
Основная причина создания этого решения - необходимость автоматической загрузки прошивки в принтер, при этом более качественных и компактных принтеров, не прихотливых в обслуживании сейчас на рынке нет.
Возможности заменить плату на аналогичную с флешкой под прошивку и сетью - теоретически есть, но времени на реализацию уйдёт больше при не гарантированном результате.
В планах на будущее: