Сканер в Linux и настройка SANE: scanner in linux

Задача: установить сканер в Linux и настроить его.
Решение: для работы со сканнерами в Linux нужно установить SANE [?] и связанные с ним утилиты.

Установка сканера
Всё очень и очень просто: для установки сканера в линукс нужно поставить подсистему
SANE [?]. Для того, чтобы сканировать в консоли (или скриптами), нам нужен только пакет sane, а если хочется ещё и в графических программах сканировать, то ставим ещё и xsane. Итак, ставим:
aptitude install sane xsane
Всё должно поставиться и настроиться - теперь можно поискать сканер. Включаем его в сеть и в соответствующий порт, после чего от рута пишем:
# sane-find-scanner
Эта утилита должна выдать что-то вроде:
# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.

# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a SCSI driver for your SCSI adapter.

found USB scanner (vendor=0x04b8 [EPSON], product=0x011b [EPSON Scanner]) at libusb:001:089
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.

# Not checking for parallel port scanners.

# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.
Полужирным выделено искомое - наш сканер опознан, нашёлся и готов радовать нас отличными изображениями. Если сканер не нашёлся, то о
статусе его поддержки можно узнать на официальной странице проекта SANE.

Сканировать может только root?
Есть такая неприятность: по умолчанию только root имеет доступ к сканеру, но это легко исправить. Для этого нужно внести пользователя, под которым хочется сканировать, в группу scanner. Делается это (с рутовыми привилегиями) так:
# gpasswd -a имя_пользователя scanner
заменяя имя_пользователя на логин пользователя. Для того, чтобы изменения вступили в силу, нужно перелогиниться. После этого в консольке (от имени того пользователя, которому хочется сканировать) для проверки пишем:
$ groups
При этом будет выдан список всех групп, в которых пользователь состоит. Например, вот что пишет эта утилита для меня
penta4 dialout cdrom floppy audio video plugdev scanner
Последняя строчка говорит о том, что пользователь penta4 имет право сканировать. Всё, теперь можно запускать GiMP или любую другую программу и сканировать там.

Махмуд, зажигай!

Теперь можно легко и просто сканировать в Gimp. Идём в меню Файл - Захватить - Xsane и видим простой интерфейс сканирования.

Можно так же запустить его отдельно, просто набрав в консольке (или добавив в меню своей графической оболочки) xsane. Полупрозрачным показано первое окно выбора устройства, а дальше появляется окно с параметрами сканирования. В нём масса интересных и нужных настроек. Например, если вы вместо режима "Просмотр" выберете "Файл", то можно сканировать в файлы с постоянно меняющимися названиями: например, file0001.tif, file0002.tif и так далее. Можно прибавлять или отнимать по 1 или 2. И ничего при этом не надо делать руками.

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

Примечание:
Некоторые сканеры по умолчанию выставляют размер сканируемой области равной 0, в частности, Umax Astra 2200U. Поэтому
бывает полезно посмотреть доступные параметры сканирования их значения по умолчанию для конкретного сканера (например, --resolution, -x, -y, --gray, --lamp-off ) командой
scanimage --help -d DEVICE
где DEVICE - название сканера, или группы сканеров, поддерживаемых sane. Найти подходящий DEVICE (e.g. umax1220u) можно в разделе BACKENDS FOR SCANNERS руководства $ man sane.

Ссылки:
Про то, как дать возможность сканировать в Linux другим пользователям (кроме рута), сказано здесь и здесь.
Поддержка моделей сканеров в Linux постоянно улучшается, и статус поддержки сканеров можно узнать на официальной странице проекта SANE.

30 комментариев: |высказаться!| RSS-лента дискуссии.|
Igor комментирует...

Помню, что в старых дистрибутивах проблема была с подключением сканера (хотплаг, что-то типа libusb, libsane, уже сейчас и не вспомню), теперь (когда хотплаг и колдплаг умерли) всё с этим в порядке, udev справляется.
На www.sane-project.org много полезной информации по сканерам. Также бывает полезно читать конфигурационные файлы прошивок (где-то в /etc/sane.d/ или что-то такое).
Ещё не надо пугаться, что сканер долго запрягает :), у меня он разогревается где-то минуты три, поэтому около года я считал, что он у меня не работает =)))
Поправка:
Access вместо Acess

virens комментирует...

2 igor:

На www.sane-project.org много полезной информации по сканерам.
Но изложена очень уж коряво. Вцедить оттуда что-то полезное - требуется умение и много времени. Куда-то задевали доку по разрешению сканировать всем остальным...

Ещё не надо пугаться, что сканер долго запрягает :),
У меня Epson Perfection 2400, разогревается за 5-10 секунд. SANE его поддерживает превосходно.

Кстати, в статье надо будет потом про backends написать. Кстати, как это слово переводится на русский?


Поправка: Access вместо Acess Спасибо, багфикс учтён :-)

Zubok комментирует...

Кстати, в статье надо будет потом про backends написать. Кстати, как это слово переводится на русский?

Может быть, кому-то прийдет более удачная мысль. Мой вариант: Подсистема (или программный модуль) взаимодействия с пользователем или оборудованием, или (нужное вписать).

В sane "backend" получается "модуль взаимодействия со сканером". Слово "драйвер" можно применить, наверное.

Igor комментирует...

"Куда-то задевали доку по разрешению сканировать всем остальным..."
ИМХО правильно, это задача исключительно дистрибутивозависима.
А у меня Epson 1260 :)

virens комментирует...

2 Zubok
В sane "backend" получается "модуль взаимодействия со сканером". Слово "драйвер" можно применить, наверное.
Да, наверное что-то из этого. Типа "дополнительный драйвер". А то ко мне на блог повадились ходить Анонимусы - большие и ярые поборники чистоты и красоты переводов. Бдят, так сказать. Закидают тухлыми помидорами при любом удобном случае :-)

2 Igor
ИМХО правильно, это задача исключительно дистрибутивозависима.
Добавление пользователя в группу сканера!? В Слаке, Генту и Дебиане во всяком случае всё именно так. Ну ладно, может где не так...

Igor комментирует...

Ну теперь группа сканирующих зависит просто не от sane, а от udev. На сайте www.sane-project.org в разделе Документация нашёл FAQ, но он, кажется, устарел.
Аналогия со звуком: в большинстве современных дистрибутивов надо добавить пользователя в группу audio (или sound), но это задача дистрибутива, написать это сообщение при установке соответствующего пакета. Так и здесь. В ArchLinux при установке sane пишется, что нужно добавить пользователя в соответствующую группу.

Zubok комментирует...

Да, наверное что-то из этого. Типа "дополнительный драйвер".

В голову пришел еще вариант. Обычно, когда говорят о backend, разумеются еще frontend. То есть речь идет о двух уровнях: высоком и низком. то есть "модуль низкого уровня", "модуль высокого уровня". Что-то в этом роде.

paveless комментирует...

Спасибо за статью!
Попробовал настроить свой сканер, все доступно изложено. Вот только у меня почему-то не заработало.
Установил xsane, включил пользователя в группу scanner. Но вот при запуске xsane выдает "нет доступных устройств". sane-find-scanner мой сканер находит HP ScanJet 4370. Может это вин-сканер? Такие бывают? Вот принтер у меня так и не заработал, сказали менять...

virens комментирует...

2 paveless
Спасибо за статью!
Попробовал настроить свой сканер, все доступно изложено.

Пожалуйста. Рад, что она помогла хоть в чём-то.

sane-find-scanner мой сканер находит HP ScanJet 4370.
Нужно скачать backend. В гугле он должен быть, а ещё на сайте проекта SANE хорошо посмотреть, есть ли поддержка (хотя должна быть, HP сканеры поддерживаются нормально).

Вот принтер у меня так и не заработал, сказали менять...
Пиши в личку, если смогу - помогу. Название сканера, принтера, дистрибутив и своё железо.

cvat комментирует...

Проблема возникла со сканером Epson Perfection 4180. Выполняя выши инструкции и почитав мануалы не удалось поднять сканер. Хотя sane-find-scanner находит found USB scanner (vendor=0x04b8 [EPSON], product=0x0118 [EPSON Scanner]) at libusb:003:00.
Может у вас есть какие нибудь мысли по этому поводу !!!
Advanced: kernel - 2.6.17-2-k7
motherboard asus A7N8X-E Deluxe

Mr.Floppy комментирует...

cvat, твоего сканера даже нет в списке sane. Не знаю как он, но мой Perfection 1270 требует, чтобы в него загружалась прошивка (её нужно выдрать из виндового драйвера и немного подправить конфиг)

Акув комментирует...

> Проблема возникла со сканером Epson Perfection 4180.
Решена ли проблема и есть ли папка /dev/scanner и нужна ли она в принципе, если нет то как восоздать:). Много вопросов:)

Dimka комментирует...

Список поддерживаемых сканеров смотрим здесь: http://www.sane-project.org/sane-mfgs.html
Я, например, своего там не нашёл. Отправил багрепорт. Через пару дней со мной связался разработчик одного из backend'ов, попросил доп. сведения. Обещает альфа-версию драйвера через несколько дней сделать. Мож и правда, получится? :)

DimkaS

virens комментирует...

2 Акув комментирует...
Решена ли проблема и есть ли папка /dev/scanner и нужна ли она в принципе, если нет то как восоздать:)
Это не папка, а файл устройства. И было это, насколько я помню, давно, при devfs. Сейчас такого устройства быть не должно.

2 Dimka комментирует...
Отправил багрепорт. Через пару дней со мной связался разработчик одного из backend'ов, попросил доп. сведения. Обещает альфа-версию драйвера через несколько дней сделать. Мож и правда, получится? :)
А почему бы и нет!? Ведь разработчики - как правило сами пользуются либо таким же устройством, либо близким по марке, либо просто энтузиасты и любители поломать всякие железяки. Так что если уж разработчик откликнулся - снабжайте его таким количеством полезных сведений о своей железяке, как только сможете.
Очень может быть, что, вопреки жлобу-производителю, вам удастся воспользоваться возможностями устройства.

jabx комментирует...

USB Сканер Acer 3300U
в мандриве работает нормально
в debian etch даже lsusb его не показывает
подскажите куда ткнуться.

Анонимный комментирует...

Сикока не долбился- от обычного юсера не запускается sane стабильной ветки.Segmentation fault и до свидания. Победить удалось только скачкой и компиляцией последних sane-xsane

Анонимный комментирует...

USB Epson perfection 660
Настраивал как указано выше, не поднялся.
Была проблема
#scanimage > image.pnm
[snapscan] Cannot open firmware file /usr/share/sane/snapscan/your-firmwarefile.bin.
[snapscan] Edit the firmware file entry in snapscan.conf.
scanimage: open of device snapscan:libusb:001:002 failed: Invalid argument

Порыскал на форумах
http://www.mepis.org/node/9595
нашел лечение.
Есть список сканеров которым нужен bin фаил из win драйверов
http://snapscan.sourceforge.net/

Из списка скачал нужный фаил в
usr/share/sane/snapscan/your-firmwarefile.bin

настроил ссылку на bin фаил в
etc/sane.d/snapscan.conf

code_2501 комментирует...

народ скажите решилась ли проблема со сканером HP scanjet 4370 если да то как?

Анонимный комментирует...

Уважаемый Михаил, ввожу команду aptitude install sane xsane, терминал "шуршит" и выдаёт предупреждение о том, что энное количество пакетов не используется и будет стёрто. Не приведи Бог согласиться! А если ставить пакеты sane и xsane из Synaptik-а, то после введения # sane-find-scanner следует что-то типа "comand not found". Так что, до заветного "Махмуд, зажигай!" добраться никак не могу :((
У меня Дебиан и Mustek 1200 UB Plus.
Как "пришить" сканер к моей ОС?
Спасибо. Т.Б.

Анонимный комментирует...

как настроить так, чтобы сканер сканировал автоматически по нажатию кнопки без всяких запросов? в списке поддерживаемых сканеров моего нету у "A scanner button daemon for Linux".
пользую genius sf600. вручную работает через xsane нормально

Флорентина комментирует...

Уважаемый Михаил.... "Махмуд, зажигай!" - в моем случае тоже не выходит.
пишет:
found USB scanner (vendor=0x055f, product=0x021a [USB Scanner], chip=GT-6816) at libusb:001:003
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.


Сканер Usb: Mustek 2448 CS Plus.
OC: Debian

Флорентина комментирует...

+ ко всему.......... когда я вхожу в интерфейс xsane она выдает, что не может открыть устройство с вышеуказанным адресом (((

Подскажите, пожалуйста, что делать!

Анонимный комментирует...

По поводу USB Epson perfection 660,
на сайте sane написано что нужен firmware файл tail_058.bin, но в офф дровах лежит tail_061.bin, что вызвало некоторую панику на некоторых форумах.
Этот файл отлично подпихивается и работает, ищущие - не парьтесь X)

Анонимный комментирует...

Добрый день! У меня сканер Epson 1260, во первых долго готовится к сканированию (минуты 2) во вторых сканирует не всё изображение, а только область в правом верхнем углу.

Я так понимаю что всё это настраивается, для того чтобы задать область сканирования я пишу scanimage -x 215 -y 297 -d тут само устройство > /dev/bus/usb/003/002 в результате ничего не меняется, что делаю не так?

Анонимный комментирует...

у меня стоит Ubuntu 10.10 и сканер Epson Perfection 4180.
не могу добиться чтоб работал. если кто решил проблему отпишите пожалуйста на kos.mik@mail.ru очень нужно.

Анонимный комментирует...

Здравствуйте! У меня проблема со сканированием. Сканирую объект размером 50 мм, а после сохранения и импорта в графическую программу он получается в 5-6 раз больше. Подскажите в чем проблема? Может у меня настройки неверно стоят? мой адрес abk@inbox.lv

Анонимный комментирует...

> у меня стоит Ubuntu 10.10 и сканер Epson Perfection 4180.
> не могу добиться чтоб работал. если кто решил проблему отпишите
> пожалуйста на kos.mik@mail.ru очень нужно.

у меня дебиан и сканер Epson Perfection 4180.
xsane запускает сканер ток из под root terminal...8-(

yuriy комментирует...

как избавиться от фиолетового фона при сканировании,сканер hp scanjet g3010 , дров нигде нет именно на линукс,он распознается,но видимо драйвер не подходит,кто что посоветует. так нихотел покидать эту ось но видимо прийдется,очень нелегко с дровами на линукс!

Анонимный комментирует...

Как изменить каталог для сохранения сканов по умолчанию?

Анонимный комментирует...

Дебиан Wheeze видит МФУ Canon MP 235 только в руте, пользователь создан balaban@192-168-0-100:~$ id
uid=1000(balaban) gid=1000(balaban) группы=1000(balaban),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),105(scanner),110(bluetooth),111(netdev)
balaban@192-168-0-100:~$
, но без рута вместо сканера определяется веб камера и сканер не находит

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

Подписаться на RSS-ленту комментариев к этому посту.