OpenWRT.su

Open.Wireless.Super and LEDE

Принт-сервер p910nd OpenWRT на примере Samsung SCX-3400

Принт-сервер p910nd OpenWRT на примере Samsung SCX-3400

До недавних пор нам хватало обычного USB подключенного принтера Samsung SCX 3400 для всех наших нужд. Но с ростом количества компьютеров, ноутбуков и даже смартфонов, которые им пользуются, было принято решение сделать из обычного USB принтера беспроводной, а на помощь нам как раз подоcпела одна из моих любимых коробочек TP-Link MR3020 с OpenWRT на борту. Тем самым отпала необходимость держать свой ноутбук, к которому был подключен принтер ранее, постоянно включенным, дабы другие участники сети имели к нему доступ. Ну и, конечно, освободил USB порт на ноутбуке для других задач.

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

opkg update
opkg install kmod-usb-printer

Пакет kmod-usb-printer собственно обеспечивает нам поддержку самого USB принтера в OpenWRT.

opkg install p910nd

А пакет p910nd представляет собой небольшой демон сервера печати, который копирует любую информацию, которая поступает через указанный порт на принтер, работая в фоновом режиме.

Если будите настраивать все используя веб-интерфейс LuCI, то нужно еще установить:

opkg install luci-app-p910nd

Ну а если еще ваша душа желает, чтобы все было в настройках по-русски:

opkg install luci-i18n-p910nd-ru

Если ваш OpenWRT роутер жалуется, что у вас не хватает дисковой памяти, то можете ее расширить имея под рукой флешку и немного времени. 

Настройка Принт-сервера при помощи UCI

Настроить все можно из под встроенной командной оболочки BusyBox – Ash Shell. Актуально для тех, кто борется за размер прошивки и уже давно вырезал LuCI и настраивает все при помощи команд UCI. Сначала заходим по сетевому протоколу SSH на наш роутер при помощи, например, программы PuTTY. Вводим IP роутера, протокол SSH и жмем соединиться. Вводим логин root, пароль и получаем доступ к оболочке. Для начала втыкаем наш принтер в USB порт роутера и смотрим, определился ли он:

dmesg | grep printer

Если все хорошо, в ответ получаем что-нибудь типа этого:

usblp 1-1:1.1: usblp0: USB Bidirectional printer dev 4 if 1 alt  proto 2 vid 0x04E8 pid 0x344F

Таким образом OpenWRT видит наш USB принтер и назначило ему устройство usblp0. Далее

uci show p910nd

Получим список конфигов нашего демона принт-сервера, что-то типа такого:

p910nd.@p910nd[0]=p910nd
p910nd.@p910nd[0].device='/dev/usb/lp0'
p910nd.@p910nd[0].port='0'
p910nd.@p910nd[0].bidirectional='1'
p910nd.@p910nd[0].enabled='0'

Вторая строка гласит, что устройство определил он верно usb/lp0. Третья строка с параметром port=’0’ устанавливает на какой порт нашего роутера нужно будет отсылать команду на печать. IP адрес моего роутера 192.168.0.1, если параметр port установлен в 0 то доступен принт-сервер будет по адресу http://192.168.1.1:9100. Если установите в 1, то по адресу http://192.168.1.1:9101 и так далее.

4й параметр bidirectional указывает на то, что принтер может обмениваться информацией с инициатором печати, а 5й параметр enabled собственно и включает всю нашу сборную солянку в работу. Таким образом, нам надо было только изменить последний параметр, а сделать это можно следующей командой:

uci set p910nd.@p910nd[0].enabled=1

и подтвердить изменение в конфигах

uci commit

после чего запустить наш принт-сервер:

/etc/init.d/p910nd start

Ну и добавить его в автозагрузку:

/etc/init.d/p910nd enable

Дальше открываем любой браузер, в адресной строке вводим 192.168.1.1:9100 и наблюдаем как Samsung SCX – 3400 моргает нам зеленым глазком состояния. Перегружаем роутер чтобы закрепить результат:

reboot

Настройки межсетевого экрана OpenWRT в uCI для корректной работы Принт-сервера p910nd 

uci add firewall rule

uci show firewall

Смотрим порядковый номер правила, которое только что создалось:

У меня допустим это 10. Далее задаем собственно само правило, начнем с названия:

uci set firewall.@rule[10].name='PrintServer'

Потом указываем зз каких интерфейсов чтобы был доступен принтер, * - из любых, lan - только локальная сеть, wwan - только wifi и т.д.

uci set firewall.@rule[10].src='*'

Какой порт открыть для доступа

uci set firewall.@rule[10].dest_port='9100'

uci set firewall.@rule[10].target='ACCEPT'

Внести изменения в конфиги

uci commit

Перезагрузить конфиги в фаерволл

/etc/init.d/firewall reload

/etc/init.d/firewall restart

Настройка Принт-сервера при помощи веб-интерфейса LuCI

После установки необходимых пакетов, указанных в начале статьи, у нас появится пункт меню Сервисы – p910nd сервер печати. Открываем его и переходим к настройке:

Если бывает, что вас принт-сервер не отвечает после одной печати, можно отключить двунаправленный режим, бывает спасает от забитого порта. Ну и конечно, можно выбрать интерфейс с какого можно будет отправлять вам на печать документы, у меня например он не определен - документы на печать прилетают и из локальной сети, так же от устройств подключенных к Wi-Fi сети. Но для этого нужно открыть порт принтера в межсетевом экране OpenWRT.

Настройки межсетевого экрана OpenWRT в LuCI для корректной работы Принт-сервера p910nd 

Переходим в меню Сеть -> Межсетевой экран, вкладка Правила траффика и создаем правило:

Таким вот макаром отроем порт 9100 принтера всем из любой сети, кто захочет им воспользоваться. Незабываем сохраняться и применять правила межсетевого экрана.

Настройка сетевого принтера в Windows 10

Заходим в панель управления - > Оборудование и звук - > Устройства и принтеры - > Добавление принтера.  Windows поищет-поищет но не найдет, после чего нужно нажать пункт "Необходимый принтер отсутствует в списке". Далее в списке выбрать "Добавить принтер по его TCP/IP-адресу или имени узла".  Тип устройства - Устройство TCP/IP. Имя или IP-адрес - здесь указываем адрес нашего роутера в сети. у меня это 192.168.0.104. Имя порта он пишет автоматически не нужно его править. Затем начинается новый поиск порта нашего принтера. Опять выйдет сообщение что устройство не найдено. Далее ждем далее ничего не меняя, в следующем окне находим производителя и модель своего принтера или устанавливаем дрова с диска, далее использовать уже установленный драйвер, потом задаете имя принтера какое вашей душе угодно и пробуете печать пробной страницы. 

Комментарии  

salexa
+6 # salexa 09.02.2018 21:41
Цитата:
uci add firewall rule
Смотрим порядковый номер правила, которое только что создалось...
Дабы не следить за порядковыми номерами, удобнее давать секциям осмысленные имена:
uci set firewall.PrintServer=rule
- при этом будет создана секция firewall.PrintServer с типом rule (вместо безликой firewall.@rule[n]). Ну а делее - "по тексту":
uci set firewall.PrintServer.name='PrintServer'
uci set firewall.PrintServer.src='*'
uci set firewall.PrintServer.dest_port='9100'
...
Ответить | Ответить с цитатой | Цитировать
Wrtman
0 # Wrtman 10.02.2018 21:07
Спасибо за полезное дополнение :roll:
Ответить | Ответить с цитатой | Цитировать
alex
0 # alex 12.09.2018 21:40
Принтер samsung ml-1641 и роутер delink dir-320 ни как не могу подружит, рецепт описанный в статье не универсален.
Ответить | Ответить с цитатой | Цитировать
Wrtman
0 # Wrtman 12.09.2018 21:45
Никто не претендует на универсальность. В чем же проблема?
Ответить | Ответить с цитатой | Цитировать
salexa
+2 # salexa 10.07.2018 10:18
Кстати, если маршрутизатор используется не исключительно как принт-сервер, а принтер включен/подключен не постоянно, то имеет смысл и p910nd запускать только на время, пока включен принтер:
Цитирую /etc/hotplug.d/usb/20-printer:
#!/bin/sh
VID_PID="3f0/3817" # LaserJet P2015 series
SERVICE="/etc/init.d/p910nd"

[ "$VID_PID" = "$(echo $PRODUCT | cut -d/ -f1-2)" ] || exit 0
[ "$ACTION" = add ] && "$SERVICE" start
[ "$ACTION" = remove ] && "$SERVICE" stop
Ответить | Ответить с цитатой | Цитировать
NinjaNet
0 # NinjaNet 01.09.2018 23:29
То что нужно, спс!
Ответить | Ответить с цитатой | Цитировать
z11aalex
0 # z11aalex 24.11.2018 18:30
Спасибо большое!
Не знаю почему но у этого oldwiki.archive.openwrt.org/doc/howto/p910nd.server туториала отсутствует установка конфига дэмона p910nd
Ответить | Ответить с цитатой | Цитировать
Wrtman
+1 # Wrtman 24.11.2018 23:41
Ну они посчитали это не необходимым ) вообще у них там перетрубация старых и новых руководств идет
Ответить | Ответить с цитатой | Цитировать
Александр
+1 # Александр 21.04.2019 16:57
/etc/init.d/p910nd enable не добавляет в автозагрузку. как быть? принт сервер не стартует сам.
Ответить | Ответить с цитатой | Цитировать
Linux_Addict
0 # Linux_Addict 21.04.2019 18:44
ручной запуск в в файл /etc/rc.local перед exit 0 добавить строчку /etc/init.d/p910nd start как вариант?
Ответить | Ответить с цитатой | Цитировать
Александр
0 # Александр 21.04.2019 22:37
Цитирую Linux_Addict:
ручной запуск в в файл /etc/rc.local перед exit 0 добавить строчку /etc/init.d/p910nd start как вариант?

Не сработало. На буржуйских форумах находил, что у многих такая проблема. И вроде как связано с новыми версиями ПО. Решения к сожалению не нашел. :-(
Ответить | Ответить с цитатой | Цитировать
Иван
-2 # Иван 18.06.2019 07:17
И ничего не заработает с самого начала. Просто потому, что в OpenWrt по умолчанию отсутствует поддержка USB. Для того, чтобы принтер вообще определился, нужно сначала установить хотя бы kmod-usb-core (поддержка USB 1.1). Для "провинутых" роутеров можно еще установить kmod-usb2 (за собой он потянет еще несколько пакетов).
Ответить | Ответить с цитатой | Цитировать
salexa
0 # salexa 18.06.2019 10:27
Цитирую Иван:
в OpenWrt по умолчанию отсутствует поддержка USB
Тут само словосочетание "по умолчанию в OpenWRT" уже некорректно - речь нужно вести о конфигурации по умолчанию для конкретного девайса: OpenWRT поддерживает огромное число девайсов, в т.ч. и без USB-порта, и с 4МБ flash - в таких аппаратах по очевидным причинам (бессмысленно - в первом случае, нехватка flash - во втором) не предустановлено упомянутых модулей. Но вот конфигурация без внесения каких-либо изменений из скачанного репозитория v. 18.06.02 :


P.S. И, кстати, kmod-usb-core - базовая поддержка USB, как такового; kmod-usb-ohci/kmod-usb-uhci - поддержка контроллеров USB 1.x; kmod-usb2/kmod-usb-dwc2 - поддержка контроллеров USB 2.0.
Ответить | Ответить с цитатой | Цитировать
Иван
0 # Иван 18.06.2019 10:31
Согласен, немного некорректно написал. Но сути дела это не меняет - без этих модулей принтер виден не будет.
Ответить | Ответить с цитатой | Цитировать
salexa
0 # salexa 18.06.2019 10:44
Так они как раз таки "по умолчанию" отмечены для предустановки (по крайней мере, в релизах 18.06.x): :-)
eximage.ru/image.php?di=UTCA
Ответить | Ответить с цитатой | Цитировать
Иван
0 # Иван 18.06.2019 10:50
Вы собираете через конфигуратор. Мне хватило места и после установки уже готовой прошивки в DIR-320. Все равно роутер ничем больше заниматься не будет.
Ответить | Ответить с цитатой | Цитировать
kolinzu
0 # kolinzu 18.07.2019 18:48
а у вас работает двусторонняя печать? у меня киосера 1040, если подключаю через роутер, в свойствах становится недоступна "двусторонняя печать"
Ответить | Ответить с цитатой | Цитировать
salexa
0 # salexa 18.07.2019 19:12
На серии HP LaserJet P2015 никаких проблем - и в настройках доступно, и на практике печатается:
eximage.ru/image.php?di=HGX1
Ответить | Ответить с цитатой | Цитировать
freeman774
0 # freeman774 03.10.2019 23:25
Подскажите пожалуйста, после отключения принтера и последующего включения перестает печатать пока не перезагрузишь роутер, что можно сделать?
Ответить | Ответить с цитатой | Цитировать
Иван
0 # Иван 04.10.2019 08:25
1. Проверьте, что устройство не изменило свое имя:
ls -l /dev/ttyUSB*
2. Если имя изменилось, то в сервисе нужно указать новое. В противном случае перезапустите сервис:
/etc/init.d/p910nd restart
Ответить | Ответить с цитатой | Цитировать
SSE
0 # SSE 07.12.2021 17:40
Подскажите пожалуйста.
Все настроил, все работает, печать идет. Но через некоторое время, всегда по разному, перестает работать пока не передернешь провод USB или не перезагрузишь роутер
Ответить | Ответить с цитатой | Цитировать
Иван
0 # Иван 07.12.2021 19:37
А не пробовали в крон добавлять перезапуск принт-сервера? Костыль, конечно, гл иногда некуда деваться
Ответить | Ответить с цитатой | Цитировать
Katia
0 # Katia 23.09.2023 14:16
Сегодня я хотел бы представить вам сео продвижение nemkovich marketing , которое специализируется на предоставлении услуг профессионального маркетолога.

Мы гордимся тем, что помогаем компаниям развиваться
и достигать успеха на рынке.
Наше агентство состоит из команды опытных и талантливых маркетологов, которые обладают
глубокими знаниями и пониманием современных маркетинговых тенденций.
Мы постоянно следим за изменениями в индустрии и адаптируем наши
стратегии, чтобы наши клиенты всегда оставались впереди конкурентов.

Что мы можем предложить вам
как профессиональный маркетолог?
Вот некоторые из наших услуг:
1. Разработка маркетинговых стратегий:
Мы поможем вам определить
вашу целевую аудиторию, разработать уникальное предложение и создать эффективный план действий для достижения ваших целей.


2. Исследование рынка: Мы проведем
глубокий анализ вашего рынка, изучим конкурентов и определим потенциальные возможности для вашего бренда.

3. Разработка брендинга:
Мы поможем вам создать сильный и узнаваемый бренд, который будет отражать ценности и уникальность вашей компании.


4. Создание маркетинговых кампаний: Мы разработаем и реализуем эффективные маркетинговые кампании,
которые помогут вам привлечь новых клиентов и удержать
существующих.
5. Онлайн-маркетинг: Мы предлагаем широкий спектр
услуг в области онлайн-маркетинга, включая SEO-оптимизацию,
контент-nemkovich design studio| немкович маркетинг студио| немкович дизайн студио| немкович студио| немкович маркетинг| немкович дизайн| nemkovich design| nemkovich studio| продвижение сайтов nemkovich marketing studio| nemkovich marketing}, социальные медиа и т.д.

6. Аналитика и отчетность: Мы предоставляем детальные
отчеты о результативности ваших маркетинговых кампаний, чтобы вы могли оценить их эффективность и внести необходимые корректировки.


сео продвижение nemkovich
marketing
стремимся к долгосрочным партнерским отношениям с нашими клиентами и всегда готовы адаптироваться к их
потребностям. Мы понимаем, что каждая компания уникальна, и поэтому наши решения
всегда индивидуальны и ориентированы на достижение ваших
конкретных целей.
Если вы ищете профессионального маркетолога,
который поможет вам развить ваш
бренд и достичь успеха на рынке, обратитесь к
нам. Мы готовы помочь вам воплотить ваши маркетинговые идеи в реальность.
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий

Если вы хотите получать сообщения c ответами на ваши комментарии - то укажите свой настоящий e-mail. Если же вы тут проездом, чтобы оставить комментарий укажите в поле email no@openwrt.su