Расшаривание сканера в сеть

Изображение пользователя sawa.

Сабж собствено.
На сервере, в терминале выполняю:
sudo su
все остальные команды соответственно выполняются автоматом от суперюзера.
Устанавливаю демон saned с зависимостями:

aptitude install sane sane-utils libsane xinetd
Проверяю наличие группы scanner:
cat /etc/group | grep scanner
если отсутствует то добавляю:
groupadd scanner
Добавляю пользователя saned (от него будет запускаться демон) в группы scanner и lp:
usermod -aG scanner,lp saned
Проверяю, видит ли sane сканер:
scanimage -L
У меня видит:
device `hp:libusb:002:002' is a Hewlett-Packard ScanJet 63x0C flatbed scanner
Если не видит: для некоторых новых сканеров требуется дополнительно установить пакет libsane-extras или специфические драйвера (искать на сайте производителя сканера).
Включаю у демона автоматический запуск:
nano /etc/default/saned
меняю
RUN=no
на
RUN=yes
nano /etc/init.d/saned
меняю
RUN=no
на
RUN=yes
Описываю порт занимаемый демоном:
echo 'service sane-port
{
disable = no
socket_type = stream
protocol = tcp
user = saned
group = scanner
wait = no
server = /usr/sbin/saned
}' > /etc/xinetd.d/sane-port

Редактирую:
nano /etc/sane.d/saned.conf
последней строкой добавляю свою подсеть (подсеть с которой разрешено обращение к сканеру):
192.168.0.0/24
Серевер готов, перегружаю.
На клиенте необходимо прописать IP адрес сервера:
sudo nano /etc/sane.d/net.conf
и последней строкой добавляю ip сервера.
Устанавливаю программу сканирования (мне достаточно skanlite):
sudo aptitude install skanlite
И сканирую.
Клиент для win32 брать здесь: ftp://ftp2.sane-project.org/pub/sane/old-ftp.sane-project.org/xsane/

Комментарии (26)

0
Mike - 12 Октябрь, 2012 - 20:15
Изображение пользователя Mike.

Это ок. Жалко только, что виндой к расшареному серверу не подключиться.

+5
sawa - 12 Октябрь, 2012 - 22:37
Изображение пользователя sawa.

Распакуйте zip архив в C:\ - будет создан каталог C:\sane . XSane будет работать только из C:\sane .
Отредактируйте C:\sane\etc\sane.d\net.conf и замените IP адрес по умолчанию на адрес вашего сервера.
Запустите XSane из: C:\sane\bin\xsane.exe

0
Mike - 13 Октябрь, 2012 - 07:12
Изображение пользователя Mike.

О! А вот за это - отдельный респект, спасибо!

+1
sawa - 15 Октябрь, 2012 - 02:43
Изображение пользователя sawa.

Ситуация: HP USB сканер обнаруживается, но сканирует через раз.
Выбрасывает ошибку: Error during device I/O.
Решение: увеличить значение переменной SANE_HP_RDREDO (количество повторов чтения до возврата ошибки, по умолчанию SANE_HP_RDREDO=1).

В случае локального сканера запускать так:
SANE_HP_RDREDO=100 [программа сканирования]
- [программа сканирования] это xsane, scanlite или другая используемая для сканирования через sane;
- количество повторов подбирать экспериментально.

В случае сетевого сканера:
sudo su
Переименовываю /usr/sbin/saned в /usr/sbin/sanedd
mv /usr/sbin/saned /usr/sbin/sanedd
Создаю скрипт /usr/sbin/saned:
echo '#!/bin/sh
SANE_HP_RDREDO=100 /usr/sbin/sanedd' > /usr/sbin/saned

Меняю права:
chmod 0755 /usr/sbin/saned
В случае обновления sane повторить.
Вот такой грязный хак:)

0
OSKiller - 16 Декабрь, 2016 - 00:14

Это параметр универсальный или только для сканнеров HP?
А где можно его настроить или всё так же этим методом пользоваться?

0
GreatKir - 16 Октябрь, 2012 - 12:18
Изображение пользователя GreatKir.

Вместо sudo su лучше sudo -i

0
Гость - 16 Октябрь, 2012 - 13:17

Я не знаю что такое расшаривание, да оно мне и не надо, тем более в сеть. У меня проблема более приземленная. Сканер (CanoScan Lide25) видит и сканирует кусок (часть) листа. На сканере валик или как его по научному, не знаю, двигается примерно четверть листа, а затем обратно. Могу ли я применить данное описание, а именно, в части демона у себя, т.е., добавить пользователя saned, группу lp, и далее. Я, как думаю, проблема с драйвером, но драйверов не нашел. Все команды и группа scanner есть. Спасибо.

0
Condor - 16 Октябрь, 2012 - 15:29
Изображение пользователя Condor.

У меня CanoScan Lide 110, логика и дрова по-любому в наших сканерах одинаковые.
У меня со сканером проблем вообще нет, правда требуется экранированный толстый и при этом короткий кабель.
Проверь свой сканер в винде у кого-нить, может проблема с железом самого сканера.

0
Гость - 16 Октябрь, 2012 - 16:10

Под Win7 все OK. Правда, кабель короткий, но не толстый. Родной от сканера.

0
sawa - 16 Октябрь, 2012 - 19:04
Изображение пользователя sawa.

Что lsusb и scanimage -Lq показывают?

0
Гость - 17 Октябрь, 2012 - 17:36
Все ОК. Я ж писал, что сканирует и т.д., но кусок листа во все окно просмотра. Не умею скрин показать. Ищу в гугле настройки xsane. Что то про область просмотра. Но пока не могу догадаться. Опять же в гугле нашел две проблемы, такие же. Но без ответа. Спасибо.
0
Гость - 18 Октябрь, 2012 - 03:34

В xsane можно менять размер области просмотра.
См. нижний левый угол: над кнопкой "Предварительное сканирование" есть кнопка выбора пресетов. При нажатии на эту кнопку можно выбрать размер видимой области сканирования: "Полный размер", "А3 портрет", ... и т.п. - выбор довольно большой.

0
Гость - 18 Октябрь, 2012 - 12:42

Спасибо за подсказку, все настроил. Правда, указанных кнопок не увидел, т. к. не могу открыть главное окно Xsane. Гдето в дебрях настроек нашел изменения области сканирования. Всем огромное спасибо.

0
nockdown - 24 Октябрь, 2012 - 20:59
Изображение пользователя nockdown.

Спасибо, давно интересовал этот вопрос!

Пока спотыкнулся на пункте:
Добавляю пользователя saned (от него будет запускаться демон) в группы scanner и lp:
usermod -aG scanner,lp saned

На десктопе 12.04 у меня существуют группы scanner, lp, saned и пользователи lp, saned. А на сервере 12.10 вижу только группы lp, saned и пользователей lp, saned. Группы scanner не существует.

Как быть? Создать её вручную?

0
sawa - 25 Октябрь, 2012 - 05:33
Изображение пользователя sawa.

groupadd scanner

0
nockdown - 25 Октябрь, 2012 - 15:37
Изображение пользователя nockdown.

sawa, спасибо. установил, работает.
Пришлось ещё установить пакет xinetd, и добавить группу scanner как вы сказали.

Ещё вопрос, драйвер для сканера установил и на клиенте, и на сервере. Вы про драйвера не говорите. Может кому-то одному из них они нужны? Или на сервере не ставить, или на клиенте? Надо попробовать узнать методом проб и ошибок.

Ещё нужно потестить на клиенте windows.

0
sawa - 25 Октябрь, 2012 - 21:56
Изображение пользователя sawa.

Для работы клиенту достаточно пакетов sane-utils, libsane, xsane (при установке естественно зависимости потянут ещё несколько пакетов). Вероятно они установлены по умолчанию, не могу проверить - на домашних компах ubuntu стоит давно и сканер "кочевал" от компа к компу, что меня однажды достало и пришлось сделать его сетевым.
На сервере: sane, sane-utils, libsane (если sane не видит новый сканер то добавить libsane-extras, возможно обнаружится).
Со скачкой клиента windows не затягивайте, могут удалить.

0
nockdown - 30 Октябрь, 2012 - 16:26
Изображение пользователя nockdown.

1. Доустановить пакет xinetd потребовалось, потому что в качестве сервера используется операционная система Ubuntu Server 12.10.
2. Для успешной работы, на сервере должен быть установлен драйвер сканера. Предлагаю учесть этот момент в вашей замечательной статье.
3. Для себя отметил, что на клиентах драйвер на сканер устанавливать не нужно.
4. Проверил работу на клиентах Kubuntu 12.04 и Windows 7. Всё работает.
5. "scanimage -Lq" - тут не описка? По-моему достаточно просто "scanimage -L"

0
sawa - 30 Октябрь, 2012 - 20:11
Изображение пользователя sawa.

Спасибо, дополнил/поправил.

0
nockdown - 30 Октябрь, 2012 - 21:10
Изображение пользователя nockdown.

Круто! Ещё раз Вам спасибо!

+1
lord_i - 11 Июль, 2016 - 23:33
Изображение пользователя lord_i.

Понадобилось расшарить в локалке сканер. Обнаружил, что в современной системе (16.04) saned.service отключен. Для расшаривания сканера достаточно включить сокет:
sudo systemctl start saned.socket
Для автостарта сокета:
sudo systemctl enable saned.socket

0
lord_i - 6 Февраль, 2018 - 18:10
Изображение пользователя lord_i.

Давно не пользовался вдруг понадобилось. (17.10)
Бобик сдох однако ...
На машине, к которой подключен сканер когда пытаюсь подключится удаленно вот такая лабуда происходит:
Feb  6 13:53:54  saned[12368]: saned (AF-indep+IPv6+systemd) from sane-backends 1.0.27 starting up
Feb  6 13:53:54  saned[12368]: check_host: access by remote host: ::ffff:192.168.0.101
Feb  6 13:53:54  saned[12368]: init: access granted to vic@::ffff:192.168.0.101
Feb  6 13:53:59  saned[12368]: io/hpmud/pp.c 627: unable to read device-id ret=-1
Feb  6 13:54:00  saned[12368]: saned exiting

Локально все гуд:
# scanimage -L
device `genesys:libusb:002:002' is a Canon LiDE 60 flatbed scanner

и, естественно xsane локально прекрасно работает...
Но! в логе лабуда все равно присутствует:
Feb  6 16:49:48  scanimage: io/hpmud/pp.c 627: unable to read device-id ret=-1

ЗЫ такого рода ошибки в баглистах 12-13 годов. Опять сцуки поломали :(

Мысли есть какие-то?

0
alex286 - 6 Февраль, 2018 - 22:33
Изображение пользователя alex286.

Я на работе настраивал USB-МФУ Panasonic (не помню какой) для использования его по сети всем отделом.. Вот по этому мануалу.. К сожалению автор закрыл свой сайт и новых версий скрипта не предвидится.. Работает так,- заходишь в WEB- морду, там меню и настройки.. Сканер работает великолепно,сканирует, конвертирует в PDF, принтер "принимал" на печать только PDF, но был не востребован.. Правда иногда глючил, приходилось перезапускать..

0
lord_i - 6 Февраль, 2018 - 23:26
Изображение пользователя lord_i.

Спасибо, но это костыльно как-то... Все прекрасно работало через сокет. Понять бы что они гады сломали и как починить.

0
lord_i - 7 Февраль, 2018 - 20:06
Изображение пользователя lord_i.

Что сломали - понятно уже:
демон saned, который подымается по сокету не может подключится к порту:
Feb  7 18:32:46 saned[8238]: [saned] read_config: searching for config file
Feb  7 18:32:46 saned[8238]: [saned] read_config: done reading config
Feb  7 18:32:46 saned[8238]: [saned] saned (AF-indep+IPv6+systemd) from sane-backends 1.0.27 starting up
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: trying to get port for service "sane-port" (getaddrinfo)
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: [1] socket () using IPv6
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: [1] setsockopt ()
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: [1] bind () to port 6566
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: [1] bind failed: Address already in use
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: [0] socket () using IPv4
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: [0] setsockopt ()
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: [0] bind () to port 6566
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: [0] bind failed: Address already in use
Feb  7 18:32:46 saned[8238]: [saned] do_bindings: couldn't bind an address. Exiting.
Feb  7 18:32:46 saned[8238]: [saned] FATAL ERROR; bailing out, waiting for children...
Feb  7 18:32:46 saned[8238]: [saned] bail_out: all children exited
Feb  7 18:32:46 systemd[1]: [email protected]:6566-192.168.0.101:34586.service: Main process exited, code=exited, status=1/FAILURE
Feb  7 18:32:46 systemd[1]: [email protected]:6566-192.168.0.101:34586.service: Unit entered failed state.
Feb  7 18:32:46 systemd[1]: [email protected]:6566-192.168.0.101:34586.service: Failed with result 'exit-code'.

Порт занят сокетом:
systemctl status saned.socket
● saned.socket - saned incoming socket
   Loaded: loaded (/lib/systemd/system/saned.socket; enabled; vendor preset: enabled)
   Active: active (listening) since Wed 2018-02-07 18:29:56 EET; 8min ago
   Listen: [::]:6566 (Stream)
Accepted: 8; Connected: 0

фев 07 18:29:56 systemd[1]: Listening on saned incoming socket.

netstat -atpun | grep 6566
tcp6       0      0 :::6566                 :::*                    LISTEN      1/init

А вот как это чинить - я хз...
Есть мысли?

0
lord_i - 8 Февраль, 2018 - 20:05
Изображение пользователя lord_i.

В общем, решил я проблему. Грязновато конечно, но работает.
Подключаем вот этот ppa и обновляемся:
sudo add-apt-repository ppa:rolfbensch/sane-release
sudo apt-get update
sudo apt-get upgrade

правим файл /etc/default/saned
# Defaults for the saned initscript, from sane-utils

# Set to yes to start saned
RUN=yes

# Set to the user saned should run as
RUN_AS_USER=saned

Перегружаемся (без перезагрузки сервер стартовал криво почему-то)
И сканер по сети начинает работать.
Данное решение убирает из системы сокет и демон все время запущен.
Когда оригинальный механизм с сокетом допилилят (как бы об этом узнать?), надеюсь на него можно будет перейти отключив рра.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры