Сабж собствено.
На сервере, в терминале выполняю:
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)
Это ок. Жалко только, что виндой к расшареному серверу не подключиться.
Распакуйте zip архив в C:\ - будет создан каталог C:\sane . XSane будет работать только из C:\sane .
Отредактируйте C:\sane\etc\sane.d\net.conf и замените IP адрес по умолчанию на адрес вашего сервера.
Запустите XSane из: C:\sane\bin\xsane.exe
О! А вот за это - отдельный респект, спасибо!
Ситуация: 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 повторить.
Вот такой грязный хак:)
Это параметр универсальный или только для сканнеров HP?
А где можно его настроить или всё так же этим методом пользоваться?
Вместо
sudo su
лучшеsudo -i
Я не знаю что такое расшаривание, да оно мне и не надо, тем более в сеть. У меня проблема более приземленная. Сканер (CanoScan Lide25) видит и сканирует кусок (часть) листа. На сканере валик или как его по научному, не знаю, двигается примерно четверть листа, а затем обратно. Могу ли я применить данное описание, а именно, в части демона у себя, т.е., добавить пользователя saned, группу lp, и далее. Я, как думаю, проблема с драйвером, но драйверов не нашел. Все команды и группа scanner есть. Спасибо.
У меня CanoScan Lide 110, логика и дрова по-любому в наших сканерах одинаковые.
У меня со сканером проблем вообще нет, правда требуется экранированный толстый и при этом короткий кабель.
Проверь свой сканер в винде у кого-нить, может проблема с железом самого сканера.
Под Win7 все OK. Правда, кабель короткий, но не толстый. Родной от сканера.
Что lsusb и scanimage -Lq показывают?
В xsane можно менять размер области просмотра.
См. нижний левый угол: над кнопкой "Предварительное сканирование" есть кнопка выбора пресетов. При нажатии на эту кнопку можно выбрать размер видимой области сканирования: "Полный размер", "А3 портрет", ... и т.п. - выбор довольно большой.
Спасибо за подсказку, все настроил. Правда, указанных кнопок не увидел, т. к. не могу открыть главное окно Xsane. Гдето в дебрях настроек нашел изменения области сканирования. Всем огромное спасибо.
Спасибо, давно интересовал этот вопрос!
Пока спотыкнулся на пункте:
На десктопе 12.04 у меня существуют группы scanner, lp, saned и пользователи lp, saned. А на сервере 12.10 вижу только группы lp, saned и пользователей lp, saned. Группы scanner не существует.
Как быть? Создать её вручную?
groupadd scanner
sawa, спасибо. установил, работает.
Пришлось ещё установить пакет xinetd, и добавить группу scanner как вы сказали.
Ещё вопрос, драйвер для сканера установил и на клиенте, и на сервере. Вы про драйвера не говорите. Может кому-то одному из них они нужны? Или на сервере не ставить, или на клиенте? Надо попробовать узнать методом проб и ошибок.
Ещё нужно потестить на клиенте windows.
Для работы клиенту достаточно пакетов sane-utils, libsane, xsane (при установке естественно зависимости потянут ещё несколько пакетов). Вероятно они установлены по умолчанию, не могу проверить - на домашних компах ubuntu стоит давно и сканер "кочевал" от компа к компу, что меня однажды достало и пришлось сделать его сетевым.
На сервере: sane, sane-utils, libsane (если sane не видит новый сканер то добавить libsane-extras, возможно обнаружится).
Со скачкой клиента windows не затягивайте, могут удалить.
1. Доустановить пакет xinetd потребовалось, потому что в качестве сервера используется операционная система Ubuntu Server 12.10.
2. Для успешной работы, на сервере должен быть установлен драйвер сканера. Предлагаю учесть этот момент в вашей замечательной статье.
3. Для себя отметил, что на клиентах драйвер на сканер устанавливать не нужно.
4. Проверил работу на клиентах Kubuntu 12.04 и Windows 7. Всё работает.
5. "scanimage -Lq" - тут не описка? По-моему достаточно просто "scanimage -L"
Спасибо, дополнил/поправил.
Круто! Ещё раз Вам спасибо!
Понадобилось расшарить в локалке сканер. Обнаружил, что в современной системе (16.04) saned.service отключен. Для расшаривания сканера достаточно включить сокет:
sudo systemctl start saned.socket
Для автостарта сокета:
sudo systemctl enable saned.socket
Давно не пользовался вдруг понадобилось. (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 годов. Опять сцуки поломали :(
Мысли есть какие-то?
Я на работе настраивал USB-МФУ Panasonic (не помню какой) для использования его по сети всем отделом.. Вот по этому мануалу.. К сожалению автор закрыл свой сайт и новых версий скрипта не предвидится.. Работает так,- заходишь в WEB- морду, там меню и настройки.. Сканер работает великолепно,сканирует, конвертирует в PDF, принтер "принимал" на печать только PDF, но был не востребован.. Правда иногда глючил, приходилось перезапускать..
Спасибо, но это костыльно как-то... Все прекрасно работало через сокет. Понять бы что они гады сломали и как починить.
Что сломали - понятно уже:
демон 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
А вот как это чинить - я хз...
Есть мысли?
В общем, решил я проблему. Грязновато конечно, но работает.
Подключаем вот этот 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
Перегружаемся (без перезагрузки сервер стартовал криво почему-то)
И сканер по сети начинает работать.
Данное решение убирает из системы сокет и демон все время запущен.
Когда оригинальный механизм с сокетом допилилят (как бы об этом узнать?), надеюсь на него можно будет перейти отключив рра.
Отправить комментарий