Меню Рубрики

Установка sane на openwrt

OpenWRT.su

Open.Wireless.Super and LEDE

Беспроводной сканер на OpenWRT на примере Samsung SCX-3400

Не успел я установить и протестировать OpenWRT принт-сервер p910nd на своем МФУ Samsung SCX-3400, как захотелось научить его также сканированию документов и изображений по сети. Для решения данной задачи вам не хватит дисковой памяти, если у вас на роутере всего 4 мб из которых после установки OpenWRT всего 300кб свободно, поэтому сначала расширьте ее путем подключения внешней overlay флешки. После чего можно приниматься за дело. Запускать беспроводной сканер будем на базе роутера TP-LINK MR3020 с Chaos Calmer 15.05.1 OpenWRT.

Кроме дисковой памяти вам, конечно, не хватит usb порта. Лучше всего взять usb-хаб с внешним питанием, так как кто знает, какие еще энергопотребляющие устройства вы будете подключать к своему роутеру в будущем. Я взял себе 4-х портовый usb-хаб с внешним питанием GiNZZU GR-384UAB и пока полностью им доволен.

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

Возможность сканирования в Linux, да и в OpenWRT в частности осуществляется при помощи универсального интерфейса сканирования Sane. На его базе, скорее всего есть программы под любую ОС, которые в случае поддержки железа сканера в Sane, помогут вам его запустить. Для начала смотрим на странице Sane поддерживается ли наш сканер и к какому типу железа и встроенного в него ПО он относится. Мой МФУ Samsung SCX-3400 оказался в числе поддерживаемых устройств и был классифицирован как типовое мфу от Xerox.

Значит сначала ставим пакет поддержки МФУ нашего типа

opkg install sane-xerox_mfp

Он потянет за собой зависммости, это нормально

Installing libsane (1.0.25-1) to root.
nstalling libusb-compat (0.1.4-1) to root.
Installing libusb-1.0 (1.0.19-1) to root.
Installing libpthread (0.9.33.2-1) to root.
Installing librt (0.9.33.2-1) to root.

Далее ставим пакет самого sane, он потянет за собой поддержку библиотек изображений

opkg install sane-frontends

Installing libjpeg (9a-1) to root.
Installing libpng (1.2.56-1) to root.
Installing zlib (1.2.8-1) to root.

Ну и заодно поставим демона sane

И перезагрузим наш роутер

2. Настройка среды Sane в OpenWRT

Попробуем найти наш сканер

Если OpenWRT видит наш сканер, то мы увидим сообщение типа

found USB scanner (vendor=0x04e8, product=0x344f [SCX-3400 Series]) at libusb:00 1:003

Далее посмотрим виден ли наш драйвер в Sane

Мое мфу было проснулось, но в ответ была получена фига

No scanners were identified.

Как оказалось, что именно моего уникального номера оборудования Vendor и Product в конфигах sane-xerox.mfp не оказалось. Тут я уже решил подправить ручками:

Переходим в режим редактировать при помощи клавиши

Самой первой свободной незакомментированной строкой пишем usb и и vendor и product номера нашего принтера из ответа чуть выше

Выходим из режима редактирования при помощи клавиши Esc, cимволом двоеточия указываем редактору что нужно сохранить изменения w и выйти q

Пробуем опять найти сканер в Sane

И удовлетворяющий меня ответ на этот раз был

device `xerox_mfp:libusb:001:003′ is a Samsung SCX-3400 Series multi-function peripheral

Уже веселее. Раз Sane увидел, можно попробовать посканировать пока без сети

scanimage —format=png —resolution=150 > scan.png

В результате в текущей папке у вас должен появиться отсканированный файл с разрешением 150 точек в формате png.

Далее немного оптимизируем загрузку Sane. Для начала отключим поддержку тех драйверов принтеров, которых у нас и так нет. Для этого открываем файл /etc/sane.d/dll.conf и комментируем все строчки кроме net и драйверов вашего мфу, у меня остались только net и мой xerox_mpf. Таким образом при запуске Sane не будет перебирать список, а сразу подцепит только нужные там файлы и начнет сканирование.

На этом считаем оболочку рабочей. Далее нужно разобраться со сканированием по сети. В данном случае роутер будет своеобразным сервером, к которому будут подцепляться клиенты. Причем последние могут быть под управлением разных ОС.

Во всех официальных руководствах и man страницах пакетов все в один голос трубят, что нужно организовывать раздачу через пакет xinetd, который позволяет подгружать демон sane при обращении к сканеру, и так же успешно его выгружать когда клиент заканчивает пользоваться сетевым сканером. Xinetd вместо Saned слушает порт 6566. Я честно не люблю посредников, какими бы они были полезными. Поэтому я в первую очередь настроил сетевое сканирование при помощи одного только демона saned.

3. Настройка для сканирование по сети через демона Saned в OpenWRT

Указываем IP адреса клиентов, которые будут иметь доступ к демону saned через сеть:

В виду того, что всем домашним устройствам в моей сети присвоены постоянные ip адреса, я просто их перечислил

Можете указать сразу всю свою подсеть чтобы не парится

Примеры использования есть в самом файле.

Далее нужно открыть порт 6566 в firewall. Но Sane также нужен еще диапазон портов для обмена информацией с клиентом. Если вы откроете только один порт 6566, то на начале сканирования постоянно будите терять связь с «сервером». Сначала укажем sane какие порты ему по доброте душевной мы выдаем для его дел, для этого в этом же конфиг файле saned.d задаем диапазон из 100 портов:

data_portrange = 30000 — 30100

Сохраняем конфиг и выходим.

Открывать сто портов абы кому не очень хорошая идея, поэтому надо позаботиться, чтобы в межсетевом экране доступ к ним имели только клиенты-члены нашей подсети. У меня доступ к моему роутеру к определенным портам имею все айпи из диапазона 192.168.0.1-192.168.0.255

Далее проверяем обозначенность порта 6566 как порта для saned.

cat /etc/services | grep sane

sane-port 6566/udp
sane-port 6566/tcp sane saned

Если какой то из строк нет — добавляем вручную через редактор нужную строчку в /etc/services

Читайте также:  Установка звукового оповещателя нормы

Так как разработчики изначально подточили демона saned под xinetd у него нет своей отдельной службы запуска, как например, у принт-свервера p910nd. Запустим его вручную в фоновом режиме

Далее проверяем случает ли порт наш помощник

netstat -l | grep sane
tcp 0 0 . sane-port . * LISTEN

Это значит, что порт на прослушке и ждет команду. Таким образом можно попробовать с клиентской машины из сети произвести сканирования. Разнообразие клиентов зашкаливает, выбрать тут так-то есть из чего из списка на официальном сайте Sane.

Я же решил попробовать посканировать прямо на Android смартфон при помощи приложения для сканирования по сети SANEDroid, о том как это работает можно глянуть ниже:

Под Windows достаточно неплохо справляется SaneTwain, хотя и давно не обновлялся. Каждый найдет себе приложение по душе, есть даже порт XSane под Windows. В любом случае обзор клиентов — это тема отдельной статьи.

4. Добавляем демона saned в автозагрузку

Так как своей службы у него нет — запихаем его в пользовательский раздел автозагрузки. Для этого в файл /etc/rc.local перед exit 0 добавляем строчку

Либо в LuCI в меню Система — Загрузка, листаем вниз, в форму Локальная загрузка набиваем ту же команду

Что собственно одно и то же. Это запустит демона сетевой службы сканирования в фоновом режиме. Теперь сканируйте в свое удовольствие откуда хотите. Если остались вопросы — задаем их в комментариях.

источник

OpenWrt Project

User Tools

Site Tools

Table of Contents

saned scanner server

This page attempts to document how to get a simple USB scanner working and accessible via network by using The SANE project.

Requirements

USB port

Note: I’m having a printer-scanner, which is why the “scanner” is recognized as a printer. I’m not actually sure, if this is needed for scanning functionality!

Now plug in scanner, run dmesg and look for lines similar to the following ones:

Parallel port

In case you have a parallel port scanner, you will need this:

Check the output of the dmesg . If there is a device node /dev/printers/0 then the installation succeeded.

TIP: p910nd is reported as working with some noname USB-to-Parport adapter/converter as well; maybe the same is true for some scanners?

Install xinetd

Xinet makes possible to run saned only when the port is accessed via network. Because we’re lazy, let’s go trough this route. Install xinetd (if not already installed):

Installation

Command line

At minimum, we need saned and a working backend. The SANE project has a partial list of supported scanners. If you are not sure, what backend you need, xerox_mfp is a good starting point.

Installing sane-all will presumably pull in all backends, but usually this is not needed and takes up unnecessary space. Sane-frontends is not strictly needed, but recommended for testing/troubleshooting as it includes scanimage. Scanimage will also tell you, what frontend it uses when/if it finds your scanner, so if unsure, one could install -all and remove the unneeded backends afterwards.

(Optional): testing the scanner

Run this on the router to see if the scanner is found and working:

You most probably do not have the right backend installed. Please try again after installing the right backend. You should get something similar to this:

Presumably you could try to brute-force, install all backends and then remove them as scanimage will tell you which backend it is using if/when it finds your scanner.

Configuration

Use xinetd to start saned

sane-daemon should have come with a configuration file, enable it in /etc/xinet.d/sane-port:

(i.e. change disable = yes to no)

Start saned without xinetd

TODO: Tell how to do this without xinetd and enable saned.

Enable saned to be accessible from the LAN

Put your subnet in /etc/sane.d/saned.conf :

Firewall rules

TODO: Placeholder. Add examples here to open port 6566 if closed.

Zeroconf with avahi-daemon

Access from your computer (client) on the network

You probably want to access the scanner from some client software.

Linux

Your scanner is now ready to use!

OS X, Windows and other OSes

TODO: find out if LibreOffice requires a local running saned, or is it usable without one, and us such usable OOTB for a saned running somewhere on the network?

Troubleshooting

TODO: Just some placeholders here. If not feasible / applicable, delete this paragraph.

источник

Установка sane на openwrt

Последняя версия: OpenWrt 19.07.2
В данной теме необходимо размещать изображения под спойлером

OpenWrt — встраиваемая операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов. Основные компоненты включают в себя ядро Linux, util-linux, uClibc или musl и BusyBox. Исходный код открытый. Распространяется под лицензией GNU GPL

Проект LEDE разработан на основе линукса, встраиваемый мета-дистрибутив базирующийся на OpenWRT, ориентирован на широкий спектр беспроводных маршрутизаторов SOHO и не-сетевых устройств. “Linux Embedded Development Environment” (Встраиваемая среда разработки линукс).
LEDE отвернулся от материнского проекта в мае 2016 года, с целью продолжить разрабатывать лучшее программное обеспечение в открытой модели управления и поощрение новых разработчиков внести свой вклад и усилия в области развития.

  • Данная тема предназначена для обсуждения настроек, процесса установки на ваш маршрутизатор и всего что связано с прошивкой OpenWrt/LEDE.
  • В данной теме не обсуждают компиляцию из исходных кодов и пересборку, для этого есть тема Сборка OpenWrt/LEDE из исходных кодов

Настройка TFTP-сервера tftpd-hpa

содержащий настройки сервера. Приведём его к следующему виду:

Читайте также:  Установка балконных ящиков для цветов

В настройках указаны дополнительные опции:
create разрешает серверу создавать новые файлы,
ipv4 предписывает ему ожидать подключений только на адресах IPv4,
umask предписывает сбрасывать бит записи для группы и все биты доступа для остальных пользователей,
permissive предписывает не проводить никаких проверок прав доступа к файлу сверх производимых операционной системой.
Создадим каталог для tftp-сервера, дадим серверу доступ к каталогу:

sudo chown tftp:tftp /var/tftp

Можно также поменять домашний каталог пользователя tftp в файле /etc/passwd на /var/tftp.

Теперь просто прописываем нужные нам ip адреса через gnome network manager и все.

Осталось перезапустить демона, чтобы он начал работу с новым каталогом:

Сообщение отредактировал stp101 — 17.03.20, 16:08

Где найти прошивку для TP-Link TL-WR941N/ND v3.1

Мощность датчика на максимум. Перебрал все каналы. На телефон выдает почему то максимум 65.0 Mbit/s хотя он поддерживает 72 Mbit/s. Родная прошивка выдает ему всегда скорость 130. У DD-WRT тоже с этим проблемы!
Тем устройствам которым положено в режиме N на 40hz работать на всю катушку — присваивается ограниченная скорость. Пока что не могу понять в чем дело.

Сообщение отредактировал yarikx600 — 01.08.18, 19:19

Сообщение отредактировал stp101 — 01.08.18, 19:49

Убедитесь что в /etc/config/igmpproxy

config igmpproxy
option quickleave 1
# option verbose 1

config phyint
option network wan
option zone wan
option direction upstream
list altnet 192.168.0.0/16
list altnet 172.16.0.0/12
list altnet 10.0.0.0/8

config phyint
option network lan
option zone lan
option direction downstream

config rule
option name ‘Allow-IPTV-IGMPPROXY’
option src ‘wan’
option proto ‘udp’
option dest_ip ‘224.0.0.0/4’
option target ‘ACCEPT’
option family ‘ipv4’
option dest ‘lan’

config rule
option name ‘Allow-IGMP’
option src ‘wan’
option proto ‘igmp’
option family ‘ipv4’
option target ‘ACCEPT’

Еще проблема может быть из-из появившейся поддержки IGMP snooping.

В разных темах замечал что люди интересовались как выключать wifi в OpenWrt в заданное время, собственно вот небольшая инструкция.
Есть два варианта.

Для этого нужно перейти в Cистема -> Запланированные задания
И вписать нужную команду в это окно

Подробно расписано тут: DD-WRT — альтернативная прошивка (Пост stp101 #52504079) принцип одинаковый, так что будет работать и в OpenWrt

Вариант 2 — через веб интерфейс.
Это вот такая штука

Или через консоль, подключаемся по ssh и даем команды opkg update (обновляем список пакетов) и ставим opkg install luci-app-wifischedule (все остальные пакеты должны сами подтянуться, если не подтянутся, доустановите вручную opkg install wifischedule и opkg install luci luci-i18n-wifischedule-ru)
Вот и все 🙂 Теперь можно переходить в Сервисы -> Wi-Fi планировщик и настраивать расписание работы WIFI

Сообщение отредактировал stp101 — 06.09.18, 16:07

1) Подготовить USB-флешку. На флешке два раздела. Первый на 1 ГБ с файловой системой ext4. Второй — на всё оставшееся пространство тоже с файловой системой ext4.

2) Воткнуть флешку в роутер. Обновить список пакетов и установить необходимые:

3) В LuCi появится новый пункт меню, связанный с монтированием разделов накопителя (System → Mount Points). Там нужно нажать кнопку Generate Config, которая обнаружит разделы на подключённом накопителе — в Mount Points появятся разделы /dev/sda1 (1024 MB) и /dev/sda2

4) Нажать Edit возле sda1, включить Enable this mount, в качестве Mount point выбрать /overlay. Точно так же включить автомонтирование sda2 в качестве /data
В /data можно закачивать торренты и т. п. Это просто раздел под ваши нужды. У меня туда статистика использования трафика собирается, например.

5) Скопировать содержимое /overlay на флешку. В терминале:

6) Перезагрузить роутер (если всё получилось, то на странице Software должно прибавиться количество свободного места)

В случае проблем (допустим, накосячили с настройками так, что потеряли доступ к роутеру) вы всегда можете выключить роутер, воткнуть флешку в компьютер, поправить настройки.

Для любителей микрооптимизации: во-первых, читать это
Если желание оптимизировать ещё не пропало, можно заменить ext4 на F2FS (соответственно вместо kmod-fs-ext4 ставить kmod-fs-f2fs)
Если к использованию F2FS вы не готовы, а желание сэкономить ресурс флешки сильнее страха приключений на пятую точку, то:
— в п.1 после создания на флешке разделов выполнить в терминале:

Сообщение отредактировал Dart Raiden — 08.04.19, 22:43

Скрипт, который автоматически выполняет все необходимые действия. Если вы хотите сделать всё то же самое вручную, то читайте дальше.

Предварительные требования:
— прошита OpenWrt 18.06
— установлен веб-интерфейс LuCi
— роутер имеет доступ в Интернет

1) Обновить список пакетов (System → Software → Update lists), установить OpenVPN:

Впрочем, будет работать и openvpn-openssl. Если вы используете что-то более ранее, чем OpenWrt 18.06, то жизненно необходимо установить openvpn-openssl вместо openvpn-mbedtls.

2) Скачать файл конфигурации, положить .ovpn в /etc/openvpn
Я не буду подробно описывать процесс перемещения файлов в файловую систему роутера, вы можете воспользоваться WinSCP, SFTP-плагином для Total Commander (плагин умеет работать и по SCP), либо прямо из консоли с помощью wget и unzip, способов много.

Отредактировать этот файл, дописав куда-нибудь в его середину строку:

config openvpn antizapret

option enabled 1
option config /etc/openvpn/antizapret-tcp.ovpn

(опять же, способ редактирования конфига оставлен на усмотрение читателя: одному удобно через vi, другому через тот же WinSCP). antizapret-tcp.ovpn — это файл, который вы на прошлом шаге копировали. Если его название изменилось, то, соответственно, исправьте его и тут в конфиге.

4) Включить и запустить VPN (System → Startup). Проверить, что всё запустилось корректно. В Status → System Log будет примерно следующее:

5) Создать новый интерфейс (Network → Interfaces → Add new interface):
Name of the new interface: antizapret
Protocol of the new interface: unmanaged
Cover the following interface: Ethernet Adapter: «tun0»
Advanced settings → Bring up on boot
Firewall Settings → Create: → antizapret
Save and Apply

Читайте также:  Установка деревянной полки 2112

6) Настроить зону файерволла antizapret (Network → Firewall → antizapret → Edit):
Input: reject
Включить Masquerading и MSS clamping
Allow forward from source zones: lan
Save and Apply

7) Исправить /etc/config/dhcp:
значение

8) Указать DNS-сервер, который будет использоваться, если подключение к VPN-серверу разорвано:
в настройках обоих интерфейсов WAN и WAN6 (Network → Interfaces) отключить Use DNS servers advertised by peer на вкладке Advanced settings
в настройках интерфейса WAN в поле Use custom DNS servers вписать адрес 1.1.1.1
Save and Apply

На сообщения «WARNING: this configuration may cache passwords in memory» в журнале внимания обращать не нужно, это неактуально, потому что паролей у нас нет. Если напрягает, можете добавить в файл конфигурации строчку

Плюсы:
— через VPN идёт лишь трафик до заблокированных доменов, остальной трафик идёт «напрямую» (нет потери скорости, у вас не меняется IP)
— следствие из предыдущего: трафик небольшой и поддержание бесплатного сервиса не бьёт по карману владельца

Скрипт, который автоматически выполняет все необходимые действия. Если вы хотите сделать всё то же самое вручную, то читайте дальше.

Предварительные требования:
— прошита OpenWrt 18.06
— установлен веб-интерфейс LuCi
— роутер имеет доступ в Интернет

1) Обновить список пакетов (System → Software → Update lists), установить OpenVPN, собранный с поддержкой mbed TLS:

Впрочем, будет работать и openvpn-openssl. Если вы используете что-то более ранее, чем OpenWrt 18.06, то жизненно необходимо установить openvpn-openssl вместо openvpn-mbedtls.

2) Скачать файл конфигурации, положить .ovpn в /etc/openvpn
Я не буду подробно описывать процесс перемещения файлов в файловую систему роутера, вы можете воспользоваться WinSCP, SFTP-плагином для Total Commander (плагин умеет работать и по SCP), либо прямо из консоли с помощью wget и unzip, способов много.

3) Заменить содержимое /etc/config/openvpn на:

option enabled 1
option config /etc/openvpn/zaborona-help.ovpn

(опять же, способ редактирования конфига оставлен на усмотрение читателя: одному удобно через vi, другому через тот же WinSCP). zaborona-help.ovpn — это файл, который вы на прошлом шаге копировали. Если его название изменилось, то, соответственно, исправьте его и тут в конфиге.

4) Включить и запустить VPN (System → Startup). Проверить, что всё запустилось корректно. В Status → System Log будет примерно следующее:

5) Создать новый интерфейс (Network → Interfaces → Add new interface):
Name of the new interface: zaborona
Protocol of the new interface: unmanaged
Cover the following interface: Ethernet Adapter: «tun0»
Advanced settings → Bring up on boot
Firewall Settings → Create: → zaborona
Save and Apply

6) Настроить зону файерволла zaborona (Network → Firewall → zaborona → Edit):
Input: reject
Включить Masquerading и MSS clamping
Allow forward from source zones: lan
Save and Apply

7) Если у вас пропал доступ в Интернет после этого пункта, не делайте его. В настройках интерфейса «WAN» (Network → Interfaces) отключить Use DNS servers advertised by peer на вкладке Advanced settings. В Use custom DNS servers вписать адрес 74.82.42.42. Нажать рядом «+», во вторую появившуюся строку вписать адрес 77.88.8.8. Save and Apply.

В настройках интерфейса «WAN6» (Network → Interfaces) отключить Use DNS servers advertised by peer на вкладке Advanced settings. В Use custom DNS servers вписать адрес 2001:4860:4860::8888. Нажать рядом «+», во вторую появившуюся строку вписать адрес 2001:4860:4860::8844. Save and Apply.

На сообщения «WARNING: this configuration may cache passwords in memory» в журнале внимания обращать не нужно, это неактуально, потому что паролей у нас нет. Если напрягает, можете добавить в файл конфигурации строчку

Плюсы:
— через VPN идёт лишь трафик до заблокированных доменов, остальной трафик идёт «напрямую» (нет потери скорости, у вас не меняется IP)
— следствие из предыдущего: трафик небольшой и поддержание бесплатного сервиса не бьёт по карману владельца

1) задать пароль администратора (через LuCI)

2) в разделе System → Administration включить Dropbear на интерфейсе «lan» (если включить на «wan», то он будет доступен всему интернету (если у вас белый IP), вскоре его начнут подбирать трудолюбивые китайцы. Поэтому, не вешайте на «wan»).

3) с помощью WinSCP подключиться со следующими параметрами:
Host name: 192.168.1.1
Login: root
Password: пароль_который_вы_установили_на_шаге_1

Получаете обычный 2-панельный файловый менеджер, с помощью которого можно перетаскивать файлы с ПК на роутер и обратно, а также править файлы на роутере).

1) задать пароль администратора (через LuCI)

2) в разделе System → Administration включить Dropbear на интерфейсе «lan» (если включить на «wan», то он будет доступен всему интернету (если у вас белый IP), вскоре его начнут подбирать трудолюбивые китайцы. Поэтому, не вешайте на «wan»).

3) с помощью SFTP-плагина для TC/DC (этот плагин, вопреки своему названию, умеет работать и по SCP) подключиться со следующими параметрами:
Connect to: 192.168.1.1
User name: root
Password: пароль_который_вы_установили_на_шаге_1

Если вы создаёте или редактируете файл в Windows, а затем копируете его на роутер, то перед копированием убедитесь, что переносы строк в файле UNIX-овские, а не Windows-овские! Для этого достаточно открыть файл в Notepad++ и в статусной строке внизу справа найти «Unix (LF)». Если там «Windows (CR LF)», то щёлкните правой кнопкой по надписи, выберите «Unix (LF)» и сохраните файл. Всё это нужно повторять после каждого редактирования, поэтому сначала редактируете как душе угодно, а затем уже проверяете переносы и заливаете на роутер.

Сообщение отредактировал Dart Raiden — 10.12.19, 17:19

источник

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