- Твой Сетевичок
- Все о локальных сетях и сетевом оборудовании
- Как сделать usb принт сервер своими руками?
- Как сделать виртуальный принт сервер?
- Принт сервер usb своими руками
- Самодельный принт сервер: формирование образа
- Принт-сервер на RaspberryPI 1
- Подготовка
- Ставим CUPS
- Принтер HP LaserJet Pro 1102
- Сканер HP Deskjet F2180
- OpenWRT.su
- Принт-сервер p910nd OpenWRT на примере Samsung SCX-3400
- Устанавливаем необходимые пакеты
- Настройка Принт-сервера при помощи UCI
- Настройки межсетевого экрана OpenWRT в uCI для корректной работы Принт-сервера p910nd
- Настройка Принт-сервера при помощи веб-интерфейса LuCI
- Настройки межсетевого экрана OpenWRT в LuCI для корректной работы Принт-сервера p910nd
- Настройка сетевого принтера в Windows 10
- Комментарии
Твой Сетевичок
Все о локальных сетях и сетевом оборудовании
Как сделать usb принт сервер своими руками?
Итак, есть принтер Ecosys FS-1120D, подключенный к одному компьютеру. Все остальные компьютеры в сети используют его как сетевой. Но если этот компьютер сломается, все останутся без распечатки. Как убрать из цепи Компьютер-Компьютер-Принтер среднее звено? Первый вариант – купить принт-сервер, второй – приобрести принтер с сетевой картой. И то, и другое требует затрат, да и не интересно. Поэтому надо покопаться на пыльных полках.
Итого: латанная материнская плата на AM2, старенький блок питания, двухъядерный Celeron и два гигабайта оперативной памяти. Это – будущий usb принт сервер, который мы сделаем своими руками.
Как сделать виртуальный принт сервер?
Этап первый, система
Дальнейшее всё делается на виртуальной машине. В качестве операционной системы используется Ubuntu Server 16.04, в основном из-за широкого списка поддерживаемого оборудования.
Устанавливаем систему на виртуальную машину:
- 1. Задаём имя компьютера prints.
- 2. Задаём имя пользователя print_admin, устанавливаем пароль.
- 3. Разбиение диска оставим по умолчанию (это совершенно не важно).
- 4. Отключаем автоматическое обновление.
- 5. Убирается всё из списка пакетов – устанавливается необходимый минимум, всё остальное установится вручную. Чем меньше будет объем системы, тем лучше.
- 6. Перезагружаемся.
Получилась базовая система. В неё надо добавить пакеты:
sudo apt-get update
sudo apt-get install samba samba-common cups mc
Настраиваем samba (/etc/samba/smb.conf)
В стандартном конфиге редактируем (или добавляем, если отсутствует):
[global]
workgroup = Network
netbios name = prints
security = user
map to guest = bad user
Закомментировать строки:
#; interfaces =
#; bind interfaces only = yes
[printers]
guest ok = yes
browseable = yes
[print$]
guest ok = yes
read only = no
Настраиваем CUPS (/etc/cups/cupsd.conf)
#Listen localhost:631
#Browsing Off
Добавить строки:
ServerAdmin user@nh.local
DefaultEncryption Never
Browsing on
Listen 631
Исправить:
# Restrict access to the server…
Order allow,deny
Allow All
# Restrict access to the admin pages…
Order allow,deny
Allow All
В файл /etc/rc.local надо добавить строку (cups затыкается после запуска samba):
service cups restart
Теперь перезагрузить сервер.
Принт сервер usb своими руками
Этап второй, принтер
Добавляем принтер в CUPS.
- 1. Подключаем принтер.
- 2. Открываем web-интерфейс — http://prints:631/admin
- 3. Add printer, вводим логин и пароль (print_admin)
- 4. Выбираем подключенный принтер.
- 5. Вбиваем и запоминаем имя принтера.
- 6. Добавляем драйвер. Если принтер есть в списке поддерживаемых, его надо просто выбрать. Если нет – нужен файл драйвера (PPD). «Выберите файл» > PPD > «Add printer»
- 7. Открываем «Administration» > «Manage printers» > (Нужный принтер).
- 8. Выбираем из списка Print test page.
- 9. Ура, наш программный принт сервер работает!
Принтер подключается в Windows как сетевой по адресу \\prints\имя_принтера
Делаем лазейку для горячей настройки – добавляем в /etc/rc.local строку “/media/cdrom/cdrom/script.sh” (сюда автоматически монтируется флешка). Сценарий script.sh будет запускаться с правами root.
Самодельный принт сервер: формирование образа
Устанавливаем xresprobe и pinguybuilder
sudo wget https://launchpad.net/ubuntu/+source/xresprobe/0.4.24ubuntu9/+build/1274262/+files/xresprobe_0.4.24ubuntu9_amd64.deb
sudo wget http://downloads.sourceforge.net/project/pinguy-os/ISO_Builder/pinguybuilder_4.3-8_all-beta.deb
sudo dpkg -i xresprobe_0.4.24ubuntu9_amd64.deb
sudo dpkg -i pinguybuilder_4.3-8_all-beta.deb
Если есть неудовлетворённые зависимости, выполняется:
sudo apt-get –f install
Чистим систему
sudo apt-get -f install
sudo apt autoclean
sudo apt autoremove
Создаём образ
sudo PinguyBuilder backup
Если процесс был прерван, надо удалить временные файлы:
sudo PinguyBuilder clean
Программа создаст образ ISO (размером 500-600 Мб), который надо записать на флешку, флешку воткнуть в материнскую плату и всё это положить в коробку. Материнскую плату надо настроить на включение при подаче питания и запитать от одного выключателя вместе с принтером.
Источник
Принт-сервер на RaspberryPI 1
Долго меня мучала идея из старенького RPI сделать принт-сервер (удаленная печать и сканирование) и наконец я до этого добрался.
Исходим из того, что у нас есть набор из RPI, флешки с Raspbian, Wi-Fi адаптера, принтера HP LaserJet Pro 1102, МФУ HP Deskjet F2180 и usb-хаба. Основная машина (ББ), которая будет использовать принт-сервер живет на Linux (впрочем, отличия в использовании для Windows будут минимальны).
Подготовка
Дабы не коннектиться к RPI по проводу, добавим автоподключение по wi-fi. Для этого вставим флешку с Raspbian в ББ и зайдем на /boot, где создадим 2 файла:
- ssh (пустой) — включает ssh;
- wpa_supplicant.conf, который содержит данные для подключения к нашему wi-fi:
В RPI вставляем флешку, wi-fi адаптер (напрямую, а не в хаб — он для принтеров), подключаем питание. Через минуту залазим на wi-fi роутер, чтобы узнать адрес, что он выдал RPI, и заходим на него по SSH.
Выполним конфигурацию RPI запустив raspi-config.
Если вас не устраивает адресация по IP, то можно настроить имя хоста, чтоб работать через mDNS. Пишем имя в /etc/hostname и в /etc/hosts например, printserver.local, коммитим изменения sudo /etc/init.d/hostname.sh и уходим в reboot. После перезагрузки RPI через mDNS будет доступен по адресу printserver.local. Для Linux mDNS работает по умолчанию, а для Windows надо поставить службу печати Bonjour.
Ставим CUPS
Затем установим CUPS
Чтобы можно было управлять принтерами в CUPS надо добавить какого-нибудь юзера в группу lpadmin. Исходим из того, что мы работаем под дефолтным юзера — pi. Вот его и добавим:
Поскольку принт-сервер находится в домашней сети, разрешаем ему быть доступным для всех, а затем рестартим:
В принципе у нас есть готовый CUPS, который доступен по адресу https://printserver.local:631/ и, вероятно, для многих принтеров он подойдет и таким, но не в нашем случае.
Принтер HP LaserJet Pro 1102
Для этого зверя в стандартной поставке подходящих драйверов не нашлось. Пришлось поставить драйвер от foomatic:
и выбрать другой драйвер для этого принтера в админке: HP LaserJet 1022 Foomatic/foo2zjs-z1
Он стал печатать, но очень медленно и иногда тупо пропуская мои команды.
Я оставил конфигурацию с этим драйвером, поскольку она позволяет печатать с любого устройства без установки драйверов, хоть и долго и в основном одностранично. Для больших же объемов пришлось настроить другую конфигурацию того же принтера в CUPS.
Мы воспользуемся xinetd, чтоб сэмулировать HP-jetdirect-принтер. Для начала установим xinetd:
Теперь сконфигурируем наш сервис для xinetd:
HP_LaserJet_Professional_P1102_direct — то, как будет называться профиль jet-direct-принтера в CUPS.
Запустим:
Теперь проходим в админку и создаем новый принтер с именем HP_LaserJet_Professional_P1102_direct. Главное выбрать вот этот драйвер: Local Raw Printer. В итоге наш принтер будет иметь сетевую ссылку https://printserver.local:631/printers/HP_LaserJet_Professional_P1102_direct, которую нужно использовать при настройке печати на ББ.
Всё, теперь главное установить драйвер на ту машину, с которой печатаем и вуаля — большие объемы печатаются с нормальной скоростью.
Сканер HP Deskjet F2180
Вообще-то, это не сканер, а МФУ, но я его используют только как сканер.
Для сканирования нам нужен sane
Затем воспользуемся утилитой, что позволяет посмотреть, что у нас есть за сканеры
В случае с HP Deskjet F2180 сканера вы, скорее всего, не увидите.
Ставим драйвера от hp:
Теперь повторим поиск:
Отлично, теперь попробуем глянуть может ли наш сканер принимать команды
то есть, на RPI сканер работает.
Далее на удаленном линухе установливаем sane и sane-utils и лезем в /etc/sane.d/net.conf, чтобы в самом низу добавить адрес RPI
К сожалению, на удаленной машине sudo scanimage -L выдал.
Просканировав порты RPI увидел, что порт 6566 закрыт. Что ж, еще немного поконфигурируем xinetd
Выходим, сохраняем и рестартим сервис:
Повторяем на удаленной машине sudo scanimage -L и видим
То что надо. Можно приступать к сканированию запустив xsane.
Источник
OpenWRT.su
Open.Wireless.Super and LEDE
Принт-сервер 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
и подтвердить изменение в конфигах
после чего запустить наш принт-сервер:
Ну и добавить его в автозагрузку:
Дальше открываем любой браузер, в адресной строке вводим 192.168.1.1:9100 и наблюдаем как Samsung SCX – 3400 моргает нам зеленым глазком состояния. Перегружаем роутер чтобы закрепить результат:
Настройки межсетевого экрана 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’
Внести изменения в конфиги
Перезагрузить конфиги в фаерволл
Настройка Принт-сервера при помощи веб-интерфейса LuCI
После установки необходимых пакетов, указанных в начале статьи, у нас появится пункт меню Сервисы – p910nd сервер печати. Открываем его и переходим к настройке:
Если бывает, что вас принт-сервер не отвечает после одной печати, можно отключить двунаправленный режим, бывает спасает от забитого порта. Ну и конечно, можно выбрать интерфейс с какого можно будет отправлять вам на печать документы, у меня например он не определен — документы на печать прилетают и из локальной сети, так же от устройств подключенных к Wi-Fi сети. Но для этого нужно открыть порт принтера в межсетевом экране OpenWRT.
Настройки межсетевого экрана OpenWRT в LuCI для корректной работы Принт-сервера p910nd
Переходим в меню Сеть -> Межсетевой экран, вкладка Правила траффика и создаем правило:
Таким вот макаром отроем порт 9100 принтера всем из любой сети, кто захочет им воспользоваться. Незабываем сохраняться и применять правила межсетевого экрана.
Настройка сетевого принтера в Windows 10
Заходим в панель управления — > Оборудование и звук — > Устройства и принтеры — > Добавление принтера. Windows поищет-поищет но не найдет, после чего нужно нажать пункт «Необходимый принтер отсутствует в списке». Далее в списке выбрать «Добавить принтер по его TCP/IP-адресу или имени узла». Тип устройства — Устройство TCP/IP. Имя или IP-адрес — здесь указываем адрес нашего роутера в сети. у меня это 192.168.0.104. Имя порта он пишет автоматически не нужно его править. Затем начинается новый поиск порта нашего принтера. Опять выйдет сообщение что устройство не найдено. Далее ждем далее ничего не меняя, в следующем окне находим производителя и модель своего принтера или устанавливаем дрова с диска, далее использовать уже установленный драйвер, потом задаете имя принтера какое вашей душе угодно и пробуете печать пробной страницы.
Комментарии
#!/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
Тут само словосочетание «по умолчанию в OpenWRT» уже некорректно — речь нужно вести о конфигурации по умолчанию для конкретного девайса: OpenWRT поддерживает огромное число девайсов, в т.ч. и без USB-порта, и с 4МБ flash — в таких аппаратах по очевидным причинам (бессмысленно — в первом случае, нехватка flash — во втором) не предустановлено упомянутых модулей. Но вот конфигурация без внесения каких-либо изменений из скачанного репозитория v. 18.06.02 :
Источник