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

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

Сообщение Zyxmon » 22 окт 2016, 08:31

Sasha писал(а):Источник цитаты роутер перестает видеть принтер

Пишите конкретно - видеть, подразумевает орган зрения. Найдете решение, отпишите для других.
Я бы копал в сторону отключения прошивочного сервера печати и настройки cups + hplip. Есть еще галочка, связанная с печатью, у sane клиента.

Sasha
Сообщения: 8
Зарегистрирован: 20 окт 2016, 22:06

Сообщение Sasha » 22 окт 2016, 09:25

Наверно не правильно выразился.
до сканирования:
 
print1.jpg
Свернуть

после:
 
print2.jpg
Свернуть

Zyxmon писал(а):Источник цитаты Я бы копал в сторону отключения прошивочного сервера печати и настройки cups + hplip. Есть еще галочка, связанная с печатью, у sane клиента.

А поподробнее можно?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Sasha
Сообщения: 8
Зарегистрирован: 20 окт 2016, 22:06

Сообщение Sasha » 26 ноя 2016, 19:40

Так и не получилось мне настроить cups + hplip, чтоб заработал принтер, как на Entware-Keenetic, так и Entware-3x.
При этом на Debian принтер настроился, но не удалось настроить сканер.

kolu4iy
Сообщения: 1
Зарегистрирован: 17 янв 2017, 23:19

Сообщение kolu4iy » 17 янв 2017, 23:26

Sasha писал(а):Источник цитаты Наверно не правильно выразился.


Только что поборол.

1. Создаёте скрипт /opt/sbin/saned.sh:

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

#!/bin/sh

/opt/sbin/saned

for devs in $(find /sys/bus/usb/devices/usb*/ -name idVendor); do
    (
	devid="$(cat $devs)"
	if [[ $devid == "03f0" ]]; then
		syspath="${devs%/idVendor}/authorized"
		echo 0 > $syspath
		echo 1 > $syspath
	fi
    )
done


и выполняете

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

chmod +x /opt/sbin/saned.sh


2. В настройках /etc/xinetd.d/saned.conf меняете

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

server = /opt/sbin/saned

на

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

server = /opt/sbin/saned.sh


Что делает скрипт:
1. Запускает saned.
2. После выхода из saned он ищет устройство USB с idVendor=03f0, что есть Hewlett-Packard.
3. Разавторизует его, авторизует обратно.

Итог: принтер обратно появляется в роутере.

Аватара пользователя
SphereBread
Сообщения: 3
Зарегистрирован: 26 дек 2019, 22:28

Сообщение SphereBread » 26 дек 2019, 22:33

Немного понекропощу:
Есть Keenetic GigaII, 2.16.D.1.0-0, Entware: mipselsf-k3.4/test/, Samsung SCX-4220.

Не взлетает SANE, хотя на 2.06 и каком-то легаси Entware (уже не помню версию) всё работало.

Вот логи после ввода xinetd:

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

[I] Dec 26 22:05:46 xinetd[12486]: Reading included configuration file: /opt/etc/xinetd.d/saned [file=/opt/etc/xinetd.conf] [line=6]
[W] Dec 26 22:05:46 xinetd[12486]: Bad service type: UNLISTED  [file=/opt/etc/xinetd.d/saned] [line=3]
[E] Dec 26 22:05:46 xinetd[12486]: Error parsing attribute type - DISABLING SERVICE [file=/opt/etc/xinetd.d/saned] [line=3]
[E] Dec 26 22:05:46 xinetd[12486]: Bad socket type: stream  [file=/opt/etc/xinetd.d/saned] [line=5]
[E] Dec 26 22:05:46 xinetd[12486]: Error parsing attribute socket_type - DISABLING SERVICE [file=/opt/etc/xinetd.d/saned] [line=5]
[E] Dec 26 22:05:46 xinetd[12486]: Server /opt/sbin/saned  is not executable [file=/opt/etc/xinetd.d/saned] [line=6]
[E] Dec 26 22:05:46 xinetd[12486]: Error parsing attribute server - DISABLING SERVICE [file=/opt/etc/xinetd.d/saned] [line=6]
[E] Dec 26 22:05:46 xinetd[12486]: Protocol tcp  not in /etc/protocols [file=/opt/etc/xinetd.d/saned] [line=7]
[E] Dec 26 22:05:46 xinetd[12486]: Error parsing attribute protocol - DISABLING SERVICE [file=/opt/etc/xinetd.d/saned] [line=7]
[E] Dec 26 22:05:46 xinetd[12486]: Unknown user: root  [file=/opt/etc/xinetd.d/saned] [line=8]
[E] Dec 26 22:05:46 xinetd[12486]: Error parsing attribute user - DISABLING SERVICE [file=/opt/etc/xinetd.d/saned] [line=8]
[E] Dec 26 22:05:46 xinetd[12486]: Unknown group: root  [file=/opt/etc/xinetd.d/saned] [line=9]
[E] Dec 26 22:05:46 xinetd[12486]: Error parsing attribute group - DISABLING SERVICE [file=/opt/etc/xinetd.d/saned] [line=9]
[E] Dec 26 22:05:46 xinetd[12486]: Bad value for wait: no  [file=/opt/etc/xinetd.d/saned] [line=10]
[E] Dec 26 22:05:46 xinetd[12486]: Error parsing attribute wait - DISABLING SERVICE [file=/opt/etc/xinetd.d/saned] [line=10]
[W] Dec 26 22:05:46 xinetd[12486]: attribute disable expects 1 values and 2 values were specified [file=/opt/etc/xinetd.d/saned] [line=11]
[I] Dec 26 22:05:46 xinetd[12486]: removing saned
[C] Dec 26 22:05:46 xinetd[12486]: 12486 {init_services} no services. Exiting...

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

Сообщение Zyxmon » 26 дек 2019, 22:51

SphereBread, пока вижу ошибки с xinetd и, возможно, с настройками xinetd.
PS Все "legacy" версии доступны (их репозитории никуда не делись).

Аватара пользователя
SphereBread
Сообщения: 3
Зарегистрирован: 26 дек 2019, 22:28

Сообщение SphereBread » 26 дек 2019, 23:15

Zyxmon, не хотелось бы откатывать Entware и/или прошивку ради сканера :(
Настраивал saned и xinetd по инструкции от TheBB.

Сейчас попробовал запустить saned отдельно:
логи Entware

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

~ # saned -d128
[saned] read_config: searching for config file
[saned] read_config: done reading config
[saned] saned (AF-indep+IPv6) from sane-backends 1.0.27 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: [1] socket () using IPv6
[saned] do_bindings: [1] setsockopt ()
[saned] do_bindings: [1] bind () to port 6566
[saned] do_bindings: [1] listen ()
[saned] do_bindings: [0] socket () using IPv4
[saned] do_bindings: [0] setsockopt ()
[saned] do_bindings: [0] bind () to port 6566
[saned] do_bindings: [0] bind failed: Address already in use
[saned] run_standalone: waiting for control connection
^C
~ # netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:4200            0.0.0.0:*               LISTEN      6868/shellinaboxd
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      362/nqcs
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      365/nprint
tcp        0      0 127.0.0.1:41230         0.0.0.0:*               LISTEN      156/ndm
tcp        0      0 127.0.0.1:79            0.0.0.0:*               LISTEN      363/nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      363/nginx
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      324/ndnproxy
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      354/dropbear
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      408/cupsd
tcp        0      0 0.0.0.0:88              0.0.0.0:*               LISTEN      6862/nginx: master
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      156/ndm
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      362/nqcs
tcp        0      0 0.0.0.0:222             0.0.0.0:*               LISTEN      401/dropbear
tcp        0      0 :::9100                 :::*                    LISTEN      365/nprint
tcp        0      0 :::53                   :::*                    LISTEN      324/ndnproxy
tcp        0      0 :::22                   :::*                    LISTEN      354/dropbear
tcp        0      0 ::1:631                 :::*                    LISTEN      408/cupsd
tcp        0      0 :::23                   :::*                    LISTEN      351/telnetd
tcp        0      0 :::222                  :::*                    LISTEN      401/dropbear
Свернуть

логи роутера после saned и saned -a

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

[I] Dec 26 22:53:00 saned[14449]: saned (AF-indep+IPv6) from sane-backends 1.0.27 starting up 
[I] Dec 26 22:53:00 saned[14449]: check_host: getpeername failed: Socket operation on non-socket 
[I] Dec 26 22:53:00 saned[14449]: init: access by host [error] denied 
[I] Dec 26 22:53:00 saned[14449]: saned exiting 
[I] Dec 26 23:02:14 saned[15742]: saned (AF-indep+IPv6) from sane-backends 1.0.27 starting up 
[I] Dec 26 23:02:14 saned[15742]: do_bindings: " sane-port " service unknown on your host; you should add 
[I] Dec 26 23:02:14 saned[15742]: do_bindings:      sane-port 6566/tcp saned # SANE network scanner daemon 
[I] Dec 26 23:02:14 saned[15742]: do_bindings: to your /etc/services file (or equivalent). Proceeding anyway. 
[I] Dec 26 23:02:14 saned[15742]: do_bindings: [0] bind failed: Address already in use 
[I] Dec 26 23:02:14 saned[15743]: Now daemonized 
Свернуть

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

Сообщение Zyxmon » 26 дек 2019, 23:40

SphereBread, подобные логи в теме есть. Похоже вместе с решением.

Аватара пользователя
SphereBread
Сообщения: 3
Зарегистрирован: 26 дек 2019, 22:28

Сообщение SphereBread » 27 дек 2019, 00:06

Zyxmon писал(а):Источник цитаты SphereBread, подобные логи в теме есть. Похоже вместе с решением.

Хм, подобные логи действительно есть, но помогло "перевтыкание" saned с ключом -a. В итоге он поднялся как демон и скан с винды и андроида завертелся. Нечто странное. Но работает. Спасибо)

kuchumovn
Сообщения: 1
Зарегистрирован: 12 мар 2020, 02:54

Сообщение kuchumovn » 12 мар 2020, 03:01

Инструкция по настройке МФУ Samsung SCX-4200 на маршрутизаторе Zyxel Keenetic Giga II:

* Изначально, требуется настроить на роутере "репозиторий пакетов" Entware, из которого уже будут устанавливаться пакеты для сканирования и печати. Репозиторий Entware — это "репозиторий пакетов": хранилище, откуда "установщик пакетов" скачивает сборки пакетов для конкретной архитектуры процессора роутера (x64, ARM, MIPS, MIPSEL). В качестве "установщика пакетов" на роутерах Zyxel Keenetic используется OPKG (обычно он уже установлен на роутере по умолчанию).

* Взять какую угодно USB-флешку (войдёт на любую). Отформатировать флешку в файловую систему ext4.

* Воткнуть флешку в роутер через обычный "пассивный" USB-хаб (на алиэкспрессе за 100 рублей). Также воткнуть принтер в роутер через этот же USB-хаб.

* В роутере войти в "Настройки" -> "Программы".

* В интерфейсе роутера, на странице "Программы", войти в принтер. Проверить, что он настроен как "Тип подключения: Прямое" (не CIFS) и "Порт: 9100".

* В интерфейсе роутера, на странице "Программы", войти во флешку. Нажать кнопку "Создать папку", назвать папку "install".

* Архитектура процессора роутера Zyxel Keenetic Giga II — MIPSEL, поэтому положить в папку "install" файл "mipsel-installer.tar.gz", скачанный, например, отсюда:

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

http://bin.entware.net/mipselsf-k3.4/installer/mipsel-installer.tar.gz


* Выбрать эту флешку в интерфейсе роутера в разделе "Настройки" -> "OPKG". Нажать "Сохранить".

* После этого автоматически запустится установка пакетов из Entware. Отслеживать процесс можно в "системном журнале" роутера. Когда роутер запустит ssh на порту 222 и напишет в системном журнале: "не забудьте сменить пароль", первичная установка пакетов завершена.

* Далее, зайти на mipsel по ssh: 

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

ssh 192.168.1.1 -l root -p 222


* Пароль: keenetic

* Сразу сменить пароль командой



* Далее поставить нужные пакеты (сканер sane, принтер cups, "запускатель сервисов" xinetd, сервис поддержки "AirPrint" avahi, редактор nano):

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

opkg update
opkg install sane-backends xinetd avahi-daemon nano


* Создать скрипт запуска сервиса сканирования sane на порту 6566 через "запускатель сервисов" xinetd:

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

nano /opt/etc/xinetd.d/saned


Вставить:

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

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


Далее выбрать драйверы для sane:

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

nano /opt/etc/sane.d/dll.conf


Оставить там только те драйверы, которые требуются для данной модели сканера. В случае с Samsung SCX-4200 — это драйвер "xerox_mfp". Также, видимо, оставляют драйвер "net":

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

net
xerox_mfp


Посмотреть драйвер для конкретной модели сканера:

http://www.sane-project.org/sane-mfgs.html  

Далее настроить адрес сканера:

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

nano /opt/etc/sane.d/net.conf


Добавить адрес:

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

192.168.1.1


Далее настроить подсеть, на которой будет слушать сканер:

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

nano /opt/etc/sane.d/saned.conf


Добавить подсеть:

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

192.168.1.0/24


Удалить неиспользуемый файл:

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

rm /opt/etc/init.d/S01sane-backends


Далее, настроить сервис печати CUPS. Настроить, кто может добавлять принтеры:

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

nano /opt/etc/cups/cups-files.conf


Там, где SystemGroup, оставить только:

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

SystemGroup root


Далее, настроить веб-интерфейс сервиса печати CUPS:

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

nano /opt/etc/cups/cups.conf  


Убрать строку "Listen ...", вместо неё сделать "Port 631", иначе веб-интерфейс CUPS не будет доступен.Ещё, чтобы из локальной сети пускало по адресу "/admin", не выдавало ошибку "Страница не найдена", внутри каждого "<Location/>" добавить в конце: "Allow 192.168.1.*" (некоторые вместо этого пишут "Allow @Local").

Перезапустить sane и cups:

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

/opt/etc/init.d/rc.unslung restart  


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

 Shutting down cupsd...              done.
 Starting cupsd...              done.
 Shutting down xinetd...              done.
 Starting xinetd...              done.


Попробовать зайти на CUPS по веб-интерфейсу:

http://192.168.1.1:631

Если заходит, зайти в подпуть "/admin", введя имя пользователя root и пароль (тот, на который сменили).

Далее, в этом интерфейсе CUPS будет добавляться новый принтер. Для этого, сначала установить пакет драйверов "splix":

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

opkg install splix


Драйверы ставятся в папку установки cups. Например, драйвер для Samsung SCX-4200 будет находиться по пути:

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

/opt/share/cups/model/samsung/scx4200.ppd  


Теперь перейти в веб-интерфейс CUPS, вкладка “Администрирование”, поставить галку “Разрешить совместный доступ к принтерам, подключенным к этой системе”, нажать кнопку "Добавить принтер". Если принтер уже есть в списке обнаруженных, то выбрать его и нажать "Применить", после чего выбрать драйвер для данной (или похожей) модели принтера (из списка или из файла). Иначе, выбрать тип подключения "AppSocket/HP JetDirect", задать имя принтера, адрес "socket://192.168.1.1:9100", после чего выбрать драйвер для данной (или похожей) модели принтера (из списка или из файла). Для особых случаев, есть возможность указать файл драйвера вручную.

После добавления принтера в CUPS, напечатать "тестовую страницу": вкладка “Принтеры”, выбрать принтер, меню “Обслуживание”, "Печать пробной страницы". Если напечатал, то драйвер подходит.

Теперь можно добавить принтер в Windows 10: Панель управления -> Устройства -> Добавить принтер -> "Принтера нет в списке" -> Выбрать внизу "Добавить локальный или сетевой принтер с параметрами, заданными вручную" -> Далее -> Выбрать "TCP/IP 192.168.1.1" (или создать такой, если нету) -> Выбрать драйвер данной модели принтера из списка -> "Не настраивать общий доступ" (для простоты) -> Напечатать пробную страницу. Вместо добавления принтера по TCP/IP, можно зайти в веб-интерфейс CUPS на страницу принтера, скопировать адрес ("http://192.168.1.1:631/printers/имя-принтера") из адресной строки браузера, и вставить этот адрес при добавлении принтера в Windows, выбрав тип подключения "Выбрать общий принтер по имени".

Таким же образом можно настроить печать с мобильных устройств используя различные специализированные (часто — не бесплатные) приложения:

https://help.keenetic.com/hc/ru/article ... 1%80%D0%B0

https://dmitrysnotes.ru/raspberry-pi-3- ... rvera-cups

Для работы со сканером на компьютере, можно установить SaneTwain или SaneWinDS (мы установили SaneWinDS и он сам заработал). После этого в программах, работающих со сканером, появится "устройство сканирования": "SaneTwain" или "SaneWinDS". Для сканирования на мобильных устройствах на базе Android'а есть бесплатное приложение "SANEDroid".

Есть несколько стандартов драйверов для сканеров. "TWAIN" — это стандарт драйверов сканера, принятый в Windows. "SANE" — это стандарт драйверов сканера, принятый в Linux. Соответственно, SaneTwain — это "мост", переводящий язык Twain в язык Sane, и обратно. 

На каком-то этапе почему-то перестал находится сканер в SaneWinDS.
При этом в системном журнале была странная ошибка:

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

check_host: getaddrinfo for local hostname failed: Name or service not known

Первая же ссылка в гугле даёт вроде как решение — добавить строчку в "/etc/hosts" на роутере:
https://habr.com/ru/post/127739/
Неизвестно, нужно ли это. Добавили — не заработало. Перезагрузили — заработало. Убирать не стали.
Такое ощущение, что Sane конфликтует с CUPS, и как будто сканер работает до того, как что-то напечатают.
У нас ещё галка стояла: "Разрешить двусторонний обмен". Видимо, её рекомендуют снимать. Хз, может из-за неё что-то было.


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

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

Всего 4 посетителя :: 1 зарегистрированный, 0 скрытых и 3 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 17:33

Сейчас этот форум просматривают: Yandex [Bot] и 3 гостя