Sane - подключаем сканер или МФУ к маршрутизатору

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1116
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 19 авг 2015, 14:39

Пакет Sane (Scanner Access Now Easy) - http://www.sane-project.org/ это стандартизированный интерфейс доступа к сканерам в linux. Установка пакета sane позволит подключить к роутеру сканер и использовать его по сети.

Краткая инструкция по настройке (со старого форума - http://forum.zyxmon.org/topic82-sane-na-keenetic.html).

1. Убеждаемся, что имеющийся сканер поддерживается в sane на странице http://www.sane-project.org/sane-mfgs.html читаем документацию проекта
2. Устанавливаем пакет командой: "opkg install sane-backends".
3. Редактируем два конфигурационных файла: (1) <...>/etc/sane.d/saned.conf и (2) <....>/etc/sane.d/dll.conf. В файле saned.conf добавляем разрешения для компьютеров, которым разрешен доступ к сканеру и sane. Если роутер имеет ip=192.168.1.1, маску 255.255.255.0, то добавляем в этот файл строку

Код: Выделить всё

192.168.1.1/24

В файле dll.conf оставляем поддержку только подключеного сканера (п. 1).
4. Проверяем работу, запустив sane из консоли руками командой "saned".
5. Удобно настроить работу sane через xinetd. Для этого установим пакет xinetd ("opkg install xinetd") и настроим его.
В папку <....>/etc/xinetd.d поместим такой файл saned

Код: Выделить всё

service saned
{
type = UNLISTED
socket_type = stream
server = <...>/sbin/saned
protocol = tcp
port=6566
user = root
group = root
wait = no
}

(Пере)запустим xinetd. При запуске sane через xinetd, демон sane будет автоматически загружаться при сканировании и выгружаться, когда не нужен.

В качестве windows клиентов sane успешно использовались sanetwain и XSane для windows.

laforsh
Сообщения: 23
Зарегистрирован: 23 авг 2015, 21:41

Сообщение laforsh » 23 ноя 2015, 13:14

В процессе прикручивания своего МФУ к ББ набрел на интересные скрипты - может для роутера они и будут в самый раз.
Как это выглядит: http://www.youtube.com/watch?v=mN90FeMCqJ8
Источник:
 
http://techno-mind.ru/soft/sharing-skannera-po-xytytypy.html
http://scannerserver.online02.com/. На этом сайте предлагается веб-аппликация, позволяющая раздать доступ к сканнеру
через http, т.е. все операции сканирования производятся через браузер, по сети.
В целом система довольно надежная и у нее есть неоспоримый плюс, по сравнению с аналогами – она не требует НИКАКОГО
дополнительного софта на клиентских машинах, ибо браузер есть у всех. Я лично доволен, как слон.
Итак, если решите ставить, то прежде всего поимейте ввиду что софтина эта работает с SANE API, потому стоит проверить
поддерживается ли ваш сканнер здесь. Если да (и скорей всего да, потому что я лично еще не видел сканнера, который
не поддерживается SANE. На это разработчики даже в имени проекта намекают: SANE — Scanner Access Now Easy.
Установка всего этого дела довольно проста. Инструкции для Ubuntu (пользователи более слакварных линуксов без проблем
адаптируют их для себя), я по большому счету копирую вам сюда с сайта проекта, добавив пару интересных пунктов, которые
на мой взгляд могут помочь решить возможные проблемы. Вдобавок, я заметил, что разработчики малость забили на проект,
так что если сайт исчезнет, тут останется хоть какая-то инфа по этому делу. Саму аппликацию я тоже выложу, на всякий
пожарный, на своем сайте. Итак, для начала установим следующие аппликации – netpbm и tesseract-ocr –eng (для
трансформирования изображений), sane-utils (тот самый SANE, для работы со сканнером), apache2 – веб-сервер.
Для этого в терминале выполним следующие команды:
sudo su

(эта команда введет вас в root мод – смотрите не наломайте вводя команды)

$ apt-get install netpbm sane-utils tesseract-ocr-eng apache2

По идее, теперь SANE должен увидеть наш сканнер. Это можно проверить следующей командой:

$ scanimage –L

Если в ответ линукс отпишет вам модель вашего сканнера, то можно продолжать. Если нет – значит что-то пошло криво и надо
рыть сайт SANE на предмет решения проблем с установкой. К сожалению это вам придется делать самим, поскольку проблем тут
может быть целый спектр и описать даже малую часть я не смогу. Наделим веб-сервер правами доступа к сканнеру:

$ adduser www-data scanner

Разрешим выполнение CGI скриптов:

$ echo 'AddHandler cgi-script .cgi' >> /etc/apache2/apache2.conf
$ cat /etc/apache2/sites-available/default | sed 's/FollowSymLinks MultiViews/FollowSymLinks MultiViews ExecCGI/g' > /tmp/default
$ mv /tmp/default /etc/apache2/sites-available/default

И перезапустим веб-сервер для достижения эффекта:

$ /etc/init.d/apache2 restart

Теперь установим утилитку для доступа к сканнеру по сети:

$ cd /var/www
$ wget http://scannerserver.online02.com/downl ... _1.1.9.tar
$ tar -xvvf scan_*.tar
$ rm scan_*.tar

На сайте разработчиков присутствует так-же бета-версия 1.2, которая тоже нормально работает, при этом каких-то
отличий от версии 1.1.9 я не нашел. Ссылка http://scannerserver.online02.com/downl ... _Beta1.tar.
На всякий случай оба архива продублированы на моем сайте: http://techno-mind.ru/files/linux_serve ... _1.1.9.tar
и http://techno-mind.ru/files/linux_serve ... _Beta1.tar.

Можно выйти из root’а:
$ exit

Теперь можете пойти на другую машину в сети, и набрать в адресной строке браузера: http://<ваш_IP_адрес>/scan,
например http://192.168.1.100/scan. Должно сработать.
Имейте ввиду, если ваш компьютер подсоединен к интернету, то нужно отредактировать файл .htaccess, чтобы весь мир не
смог видеть содержимое папки к отсканированными изображениями. Вот полная инструкция, как это делать. Стоит отметить, что
иногда могут быть проблемы в правами доступа к сканнеру. Это зависит от конфигурации компьютера и, видимо, фазы луны.
К счастью в большинстве случаев все эти проблемы очень похожи друга на друга, так что пути их решения озвучены на форуме
разработчиков. Я на всякий случай скопипестил все в файлик. Мне всегда помогали эти инструкции и заметки других пользователей.


Добавлено от меня: Сайт разработчика давно сдох и проект, видимо, заброшен. :-( На ББ с Убунтой 12.04 все это работает. Нашел четвертый патч к версии 1.2 Бета и разница все-таки есть, поэтому ставим бета версию, копируем патч в /var/www/scan/scan_1.2_Beta4.patch и применяем его:
sudo patch -p1 --directory /var/www/scan --input=/var/www/scan/scan_1.2_Beta4.patch
Свернуть
У вас нет необходимых прав для просмотра вложений в этом сообщении.

yuoras
Сообщения: 35
Зарегистрирован: 21 сен 2015, 18:22

Сообщение yuoras » 09 дек 2015, 20:18

Что не так ?

Код: Выделить всё

saned[16295]	saned (AF-indep+IPv6) from sane-backends 1.0.24 starting up
9 дек 18:50:36	saned[16295]	check_host: getpeername failed: Socket operation on non-socket
9 дек 18:50:36	saned[16295]	init: access by host [error] denied
9 дек 18:50:36	saned[16295]	saned exiting
9 дек 19:08:43	xinetd[16337]	Reading included configuration file: /opt/etc/xinetd.d/saned [file=/opt/etc/xinetd.conf] [line=6]
9 дек 19:08:43	xinetd[16337]	Attribute port needs a space before operator [file=/opt/etc/xinetd.d/saned] [line=7]
9 дек 19:08:43	xinetd[16337]	16337 {init_services} no services. Exiting...

Вот конфиг saned

Код: Выделить всё

service saned
{
type = UNLISTED
socket_type = stream
server = /opt/sbin/saned
protocol = tcp
port=6566
user = root
group = root
wait = no
}
Белый-Белый ZyXEL Keenetic I серии Zyxware перешёл на Entware

yuoras
Сообщения: 35
Зарегистрирован: 21 сен 2015, 18:22

Сообщение yuoras » 09 дек 2015, 20:24

попробовал запустить через saned -a.
Вот лог

Код: Выделить всё

9 дек 19:22:15	saned[16344]	saned (AF-indep+IPv6) from sane-backends 1.0.24 starting up
9 дек 19:22:15	saned[16344]	do_bindings: " sane-port " service unknown on your host; you should add
9 дек 19:22:15	saned[16344]	do_bindings: sane-port 6566/tcp saned # SANE network scanner daemon
9 дек 19:22:15	saned[16344]	do_bindings: to your /etc/services file (or equivalent). Proceeding anyway.
9 дек 19:22:15	saned[16344]	do_bindings: [0] socket failed: Address family not supported by protocol
9 дек 19:22:15	saned[16345]	Now daemonized
Белый-Белый ZyXEL Keenetic I серии Zyxware перешёл на Entware

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1116
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 10 дек 2015, 08:01

yuoras писал(а):Источник цитаты Attribute port needs a space before operator [file=/opt/etc/xinetd.d/saned] [line=7]

На чистом ангельском написано, что перед номером порта в строке 7 должен быть пробел.

sabsem
Сообщения: 9
Зарегистрирован: 13 ноя 2015, 16:47

Сообщение sabsem » 21 дек 2015, 01:17

что то не так, не хочет работать

Код: Выделить всё

Dec 21 01:12:56xinetd[2990]Reading included configuration file: /opt/etc/xinetd.d/saned [file=/opt/etc/xinetd.conf] [line=6]
Dec 21 01:12:56xinetd[2990]xinetd Version 2.3.15 started with loadavg options compiled in.
Dec 21 01:12:56xinetd[2990]Started working: 1 available service
Dec 21 01:12:56rootStarted xinetd from .
Dec 21 01:13:32saned[3008]saned (AF-indep+IPv6) from sane-backends 1.0.25 starting up
Dec 21 01:13:32saned[3008]check_host: access by remote host: 192.168.77.40
Dec 21 01:13:32saned[3008]check_host: getaddrinfo for local hostname failed: Name or service not known

 
service saned
{
type = UNLISTED
socket_type = stream
server = /opt/sbin/saned
protocol = tcp
port = 6566
user = root
group = root
wait = no
}
Свернуть

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1116
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 21 дек 2015, 08:01

sabsem писал(а):Источник цитаты что то не так, не хочет работать


Запускайте с дебаг логом без inetd в консоли. Ничего криминального в приведенном логе нет - вроде как запустился.

sabsem
Сообщения: 9
Зарегистрирован: 13 ноя 2015, 16:47

Сообщение sabsem » 21 дек 2015, 09:56

лог из консоли
 
~ # SANE_CONFIG_DIR=/opt/etc/sane.d saned -d128
[saned] main: starting debug mode (level 128)
[saned] read_config: searching for config file
[saned] read_config: done reading config
[saned] saned (AF-indep+IPv6) from sane-backends 1.0.25 starting up
[saned] do_bindings: trying to get port for service "sane-port" (getaddrinfo)
[saned] do_bindings: " sane-port " service unknown on your host; you should add
[saned] do_bindings: sane-port 6566/tcp saned # SANE network scanner daemon
[saned] do_bindings: to your /etc/services file (or equivalent). Proceeding anyway.
[saned] do_bindings: [0] socket () using IPv6
[saned] do_bindings: [0] setsockopt ()
[saned] do_bindings: [0] bind () to port 6566
[saned] do_bindings: [0] bind failed: Address already in use
[saned] do_bindings: [1] socket () using IPv4
[saned] do_bindings: [1] setsockopt ()
[saned] do_bindings: [1] bind () to port 6566
[saned] do_bindings: [1] bind failed: Address already in use
[saned] do_bindings: couldn't bind an address. Exiting.
[saned] FATAL ERROR; bailing out, waiting for children...
[saned] bail_out: all children exited
Свернуть

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1116
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 21 дек 2015, 14:30

Ну и? Кто-то занял порт 6566. Может ранее запущенный sane, может еще кто.

sabsem
Сообщения: 9
Зарегистрирован: 13 ноя 2015, 16:47

Сообщение sabsem » 21 дек 2015, 15:27

проверил не занят порт
~ # netstat -atp
 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:40200 0.0.0.0:* LISTEN 281/miniupnpd
tcp 0 0 0.0.0.0:netbios-ssn 0.0.0.0:* LISTEN 272/nqcs
tcp 0 0 0.0.0.0:jetdirect 0.0.0.0:* LISTEN 249/nprint
tcp 0 0 localhost:41230 0.0.0.0:* LISTEN 31/ndm
tcp 0 0 localhost:41231 0.0.0.0:* LISTEN 31/ndm
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 243/ag
tcp 0 0 localhost:41232 0.0.0.0:* LISTEN 31/ndm
tcp 0 0 my.keenetic.net:tproxy 0.0.0.0:* LISTEN 69/nhtproxy
tcp 0 0 0.0.0.0:ftp 0.0.0.0:* LISTEN 241/pure-ftpd (SERV
tcp 0 0 0.0.0.0:domain 0.0.0.0:* LISTEN 95/ndnproxy
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 271/dropbear
tcp 0 0 0.0.0.0:microsoft-ds 0.0.0.0:* LISTEN 272/nqcs
tcp 0 0 localhost:51162 localhost:41230 ESTABLISHED 243/ag
tcp 0 0 localhost:51167 localhost:41230 ESTABLISHED 281/miniupnpd
tcp 0 0 localhost:41230 localhost:51162 ESTABLISHED 31/ndm
tcp 0 0 10.2.172.15:44481 mail.ru:http TIME_WAIT -
tcp 0 0 localhost:48772 localhost:41232 ESTABLISHED 243/ag
tcp 0 0 localhost:41232 localhost:48772 ESTABLISHED 31/ndm
tcp 0 0 10.2.172.15:44479 mail.ru:http TIME_WAIT -
tcp 0 0 192.168.77.1:microsoft-ds 192.168.77.40:65234 ESTABLISHED 272/nqcs
tcp 0 0 10.2.172.15:44480 mail.ru:http TIME_WAIT -
tcp 0 0 localhost:41230 localhost:56578 CLOSE_WAIT 31/ndm
tcp 0 0 localhost:41230 localhost:51167 ESTABLISHED 31/ndm
tcp 0 52 192.168.77.1:ssh 192.168.77.40:7907 ESTABLISHED 27534/dropbear
tcp 0 0 :::jetdirect :::* LISTEN 249/nprint
tcp 0 0 :::domain :::* LISTEN 95/ndnproxy
tcp 0 0 :::ssh :::* LISTEN 271/dropbear
tcp 0 0 :::telnet :::* LISTEN 244/telnetd
Свернуть

запустил заново
~ # SANE_CONFIG_DIR=/opt/etc/sane.d saned -d128
 
[saned] main: starting debug mode (level 128)
[saned] read_config: searching for config file
[saned] read_config: done reading config
[saned] saned (AF-indep+IPv6) from sane-backends 1.0.25 starting up
[saned] do_bindings: trying to get port for service "sane-port" (getaddrinfo)
[saned] do_bindings: " sane-port " service unknown on your host; you should add
[saned] do_bindings: sane-port 6566/tcp saned # SANE network scanner daemon
[saned] do_bindings: to your /etc/services file (or equivalent). Proceeding anyway.
[saned] do_bindings: [0] socket () using IPv6
[saned] do_bindings: [0] setsockopt ()
[saned] do_bindings: [0] bind () to port 6566
[saned] do_bindings: [0] listen ()
[saned] do_bindings: [1] socket () using IPv4
[saned] do_bindings: [1] setsockopt ()
[saned] do_bindings: [1] bind () to port 6566
[saned] do_bindings: [1] bind failed: Address already in use
[saned] run_standalone: waiting for control connection
Свернуть


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 1 посетитель :: 0 зарегистрированных, 0 скрытых и 1 гость (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость