Принт-сервер на OpenWrt: пошаговая настройка печати через роутер

Принтер, подключенный к USB-порту роутера с OpenWrt, не виден в сети до тех пор, пока не установлен и запущен пакет p910nd — именно отсутствие этого демона чаще всего становится причиной ситуации, когда устройство определяется в системе как /dev/usb/lp0, но печатать на него по сети невозможно. Проверить это просто: выполните opkg list-installed | grep p910 через SSH, и пустой ответ сразу укажет на причину.

Роутер на OpenWrt с USB-портом способен полностью заменить отдельный сетевой принт-сервер: обычный домашний принтер без Ethernet и Wi-Fi становится доступен всем компьютерам в локальной сети. Ниже разберем установку пакетов, настройку через LuCI и командную строку, подключение со стороны Windows и Linux, а также типичные ошибки, из-за которых печать не работает.

Что потребуется для настройки

Прежде чем приступать, убедитесь, что роутер соответствует минимальным требованиям. Нужен USB-порт на устройстве, установленная прошивка OpenWrt с доступом в интернет (для загрузки пакетов) и права root для работы по SSH. Объем свободной флеш-памяти тоже имеет значение: на устройствах с 4–8 МБ встроенной памяти места может не хватить, и тогда потребуется extroot или выбор минимального варианта сервера печати.

  • 🔌 Роутер с USB-портом и прошивкой OpenWrt актуальной версии
  • 🖨️ Принтер с USB-кабелем, корректно работающий при прямом подключении к ПК
  • 💻 Компьютер в той же локальной сети для настройки и проверки печати
  • 🌐 Доступ роутера к интернету для установки пакетов через opkg
⚠️ Внимание: не все принтеры корректно работают через принт-сервер. Некоторые модели Canon и HP с фирменными протоколами (CAPT, LIDIL) требуют специальных драйверов и фильтров, которых может не быть под архитектуру вашего роутера. Перед настройкой проверьте поддержку модели в базе OpenPrinting.

Выбор между p910nd и CUPS

В OpenWrt есть два основных способа организовать печать. Первый — p910nd, легковесный демон, который просто пробрасывает данные из TCP-порта (по умолчанию 9100) на USB-устройство принтера. Вся обработка заданий при этом выполняется драйвером на компьютере клиента. Второй вариант — CUPS, полноценная система печати, которая может сама обрабатывать задания, но требует заметно больше памяти и вычислительных ресурсов.

Критерийp910ndCUPS
Потребление RAMМинимальноеВысокое
Обработка заданийНа компьютере клиентаНа роутере
Сложность настройкиНизкаяСредняя и выше
Поддержка фильтров и PPDНетДа
Подходит для слабых роутеровДаОбычно нет

Для большинства домашних сценариев оптимален именно p910nd: он практически не нагружает роутер и настраивается за несколько минут. CUPS имеет смысл рассматривать, когда роутер достаточно мощный, а печатать нужно с устройств, где установка полноценного драйвера затруднена.

Установка и настройка p910nd

Подключитесь к роутеру по SSH и обновите список пакетов. Затем установите демон и модули поддержки USB-принтеров:

opkg update

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

Пакет luci-app-p910nd добавляет раздел настройки в веб-интерфейс: Службы → p910nd - Print server. В нем нужно включить сервис, указать устройство /dev/usb/lp0, порт 9100 и активировать опцию Bidirectional mode, если принтер должен сообщать статус (уровень чернил, ошибки) обратно на компьютер.

☑️ Проверка после установки p910nd

Выполнено: 0 / 5

Если устройство /dev/usb/lp0 не появляется, проверьте, загружен ли модуль ядра командой lsmod | grep usblp, и посмотрите журнал dmesg сразу после подключения принтера. Отсутствие строк о USB-принтере обычно означает проблему с кабелем, питанием по USB или незагруженный модуль kmod-usb-printer.

⚠️ Внимание: некоторые принтеры HP требуют загрузки прошивки (firmware) при каждом включении — без нее устройство видится в системе, но не печатает. Для таких моделей понадобится пакет с поддержкой hotplug-загрузки прошивки, и его наличие зависит от версии OpenWrt. Проверяйте документацию именно вашей модели принтера.
📊 Какой вариант принт-сервера вы используете или планируете настроить?
p910nd — просто и легко
CUPS — нужна полноценная обработка заданий
Пока выбираю между ними
Ничего не выходит, печать не работает

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

На компьютере с Windows принтер добавляется как локальный через TCP/IP-порт. Откройте Панель управления → Устройства и принтеры → Добавление принтера, выберите добавление локального принтера и создайте новый порт типа Standard TCP/IP Port, указав IP-адрес роутера и порт 9100.

На следующем шаге мастер может не определить устройство автоматически — это нормально, выберите тип порта Raw и укажите драйвер вашего принтера из списка или с диска производителя. Важно: драйвер должен точно соответствовать модели, так как рендеринг заданий выполняется на компьютере, а роутер лишь передает поток данных.

Подключение в Linux и настройка CUPS-клиента

В десктопных дистрибутивах Linux принтер добавляется через системный CUPS. В веб-интерфейсе по адресу http://localhost:631 выберите добавление принтера с протоколом AppSocket/HP JetDirect и укажите URI вида:

socket://192.168.1.1:9100

Далее подберите драйвер (PPD-файл) для вашей модели. Если готового PPD нет, для многих принтеров подходят универсальные драйверы из пакетов gutenprint или foomatic. После добавления отправьте тестовую страницу: если задание уходит в очередь, но принтер молчит, проверьте, включен ли двунаправленный режим в p910nd — иногда его отключение, наоборот, решает проблему зависания заданий.

Почему задание «зависает» в очереди и не печатается

Частые причины: несовпадение драйвера с моделью принтера, включенный bidirectional mode на принтере, который его не поддерживает корректно, отсутствие загруженной прошивки у некоторых моделей HP, а также конфликт, если принтер одновременно подключен к ПК напрямую. Проверяйте лог роутера командой logread и очередь печати на клиенте.

Типичные проблемы и их диагностика

Разберем ситуации, с которыми чаще всего сталкиваются при эксплуатации принт-сервера на OpenWrt. Сначала всегда проверяйте цепочку по шагам: видит ли роутер принтер, запущен ли демон, доступен ли порт с клиентской машины. Проверить доступность порта можно с компьютера командой telnet 192.168.1.1 9100 или через PowerShell.

  • 🖨️ Принтер виден, но не печатает — неверный драйвер на клиенте или требуется прошивка принтера
  • 🔌 /dev/usb/lp0 отсутствует — не установлен kmod-usb-printer или проблема с кабелем/питанием
  • 🌐 Порт 9100 недоступен — p910nd не запущен либо привязан не к тому интерфейсу
  • 📄 Печатается «мусор» из символов — драйвер клиента не соответствует языку принтера (PCL/PostScript/проприетарный)

Если принтер после перезагрузки роутера получает другой номер устройства (например, lp1 вместо lp0), настройте автозапуск p910nd с привязкой к событию hotplug либо просто убедитесь, что в конфигурации указано верное устройство. Для одного принтера проблема обычно не возникает, но при нескольких USB-устройствах порядок нумерации может меняться.

Ограничения метода

Стоит понимать, что p910nd — это именно «транспорт», а не полноценный сервер печати. Сканирование на МФУ через него работать не будет: для сканера потребуется отдельное решение, например SANE с сетевым доступом, и его работоспособность зависит от модели МФУ и доступности бэкендов под архитектуру роутера.

Также учитывайте, что статусные функции (мониторинг чернил, двусторонняя печать, фирменные утилиты) могут работать некорректно или не работать вовсе — это зависит от того, как драйвер взаимодействует с принтером через однонаправленный поток. Если эти функции критичны, тестируйте конкретную связку «модель принтера + драйвер» заранее.

Часто задаваемые вопросы

Подойдет ли любой USB-принтер для принт-сервера на OpenWrt?

Нет. Принтеры со стандартными языками (PCL, PostScript) и те, для которых есть драйверы под Windows/Linux на стороне клиента, обычно работают без проблем. Модели с закрытыми протоколами, требующие загрузки прошивки при включении или специальных фильтров, могут оказаться несовместимыми. Проверяйте модель в базе OpenPrinting до покупки или настройки.

Чем p910nd отличается от CUPS на роутере?

p910nd только передает данные с TCP-порта на USB-принтер, а обработку выполняет драйвер на компьютере. CUPS — полноценная система печати с фильтрами и очередями на самом роутере, но она требует значительно больше оперативной и флеш-памяти, что критично для слабых устройств.

Будет ли работать сканер МФУ через такой принт-сервер?

Через p910nd — нет, он передает только поток печати. Для сканирования существует отдельный вариант с пакетом SANE и сетевым доступом к сканеру, но поддержка зависит от конкретной модели МФУ и наличия нужных бэкендов в репозитории OpenWrt.

Windows не находит принтер автоматически — это нормально?

Да. p910nd не анонсирует принтер в сеть, поэтому автопоиск его не обнаружит. Принтер добавляется вручную: создается Standard TCP/IP Port с IP-адресом роутера и портом 9100, затем выбирается драйвер модели.

Что делать, если печать обрывается на середине страницы?

Проверьте стабильность питания принтера и качество USB-кабеля, попробуйте переключить режим Bidirectional в настройках p910nd, а также убедитесь, что драйвер на клиенте точно соответствует модели. Полезно посмотреть лог роутера командой logread в момент сбоя — там видны отключения USB-устройства.