Site Tools


software:openwrt:printserver

This is an old revision of the document!


Введение

Эта инструкция по созданию сервера печати на базе OpenWRT.
Имеющиеся в продаже готовые решения примитивны и неоправданно дорого стоят.

Features

  • возможность получить и установить свежую прошивку
  • широкий выбор аппаратной платформы
  • поддержка IPv6, DHCPv6 и тп
  • поддержка USB хабов
  • поддержка WiFi (встроенного или через дополнительный PCI/USB адаптера)
  • возможность одновременной работы с несколькими принтерами
  • автоматическая загрузка прошивки в принтер при включении сервера печати или принтера

Установка

Лучше посмотреть инструкции по установки для выбранного устройства на сайте openwrt.
На NanoPi NEO установка сводится к:

  1. скачать squashfs образ
  2. с помощью dd залить его на MicroSD флешку
  3. вставить флешку в NanoPi NEO

Настройка

Заходим в веб интерфейс, адрес по умолчанию: 192.168.1.1, логин root, пароля нет.

Включение DHCP клиента

Переключаем для работы в качестве DHCP клиента, это более предпочтительно для сервера печати.

  1. Переходим в Network->Interfaces
  2. Edit для LAN
  3. Вкладка General Settings, Protocol: выбираем DHCP Client и Switch protocol, Save, Save & Apply
  4. Переходим в вебгуй на новом адресе чтобы примерились настройки, иначе через 90 секунд настройки откатяся

Фиксация MAC адреса

Для NanoPi NEO требуется зафиксировать mac адрес, чтобы он не генерировал новый после каждой перезагрузки.

  1. Переходим в Network->Interfaces
  2. Edit для LAN
  3. Вкладка Advanced Settings, Override MAC address: вводим примерно тоже самое что там отображается и Save, Save & Apply

Устанавливаем необходимые компоненты

  1. Переходим в System->Software
  2. Update lists… (интернет должен быть уже настроен),
  3. В появившемся окне: Dismiss
  4. Устанавливаем: p910nd, luci-app-p910nd, kmod-usb-printer, kmod-lp

Либо через SSH вводим

opkg update
opkg install p910nd luci-app-p910nd kmod-usb-printer kmod-lp

Скрипт 10-prnt-helper

Функционал

При подключении принтера скрипт автоматически

  1. создаёт symlink /dev/PRINTER_SERIAL_NUMBER на /dev/usb/lpX - это нужно чтобы при наличии двух одинаковых принтеров они всегда получали один и тот же TCP порт, не зависимо от порядка включения/загрузки
  2. загружает прошивку с именем ${DEV_VID}-${DEV_PID}.dl из /etc/fw в принтер
  3. выводит информацию о своих действиях в Status->System Log

Установка

  1. Подключаемся по ssh:
    ssh root@192.168.1.1
  2. Создаём папку:
    mkdir -p /etc/hotplug.d/usbmisc/
  3. Скачиваем скрипт:
    wget -O /etc/hotplug.d/usbmisc/10-prnt-helper http://www.netlab.linkpc.net/download/software/openwrt/print_server/10-prnt-helper
  4. Устанавливаем права:
    chmod 0755 /etc/hotplug.d/usbmisc/10-prnt-helper
  5. Устанавливаем владельца:
    chown root:root /etc/hotplug.d/usbmisc/10-prnt-helper

Установка прошивок

  1. Переходим в Status->System Log и ищем строчки содержащие prnt-helper, если принтер подключён и всё сделано правильно они обязательно будут, как пример для HP 1018 будет примерно так:
    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
  2. Создаём папку:
    mkdir -p /etc/fw/
  3. Скачиваем прошивку для HP 1018:
    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

Заголовок

  1. Переходим в System->Backup / Flash Firmware, вкладка Configuration
  2. Добавляем текст:
    /etc/hotplug.d/usbmisc/10-prnt-helper
    /etc/fw/*
  3. Save
software/openwrt/printserver.1610758741.txt.gz · Last modified: 2021/01/16 00:59 by root