Как установить xsane в linux
Обновлено: 04.07.2024
Расскажу про свой небольшой опыт подключения сканера на Linux-систему на базе Ubuntu (Linux Mint).
Для начала - немного теории. В Linux за сканирование отвечает sane - опенсорсная подсистема, "умеющая" работать со сканером.
Итак, для того, чтобы подключить сканер к Linux, необходимо:
Как пишут в наборах радиоэлектроникик: "равильное собранное устройство в настройке не нуждается". Так вот, правильно подобранная пара sane - сканер в настройке не нуждается. Все не просто, а. очень просто.
Ну и оффтопик: я купил HP ScanJet 3500c. Он был помечен как "Good" - и, в общем, со своей основной функцией - сканировать - справляется на отлично. Медленно правда, особенно на 1200dpi, зато CCD датчик . в общем, доволен я :)
Еще записи по теме
Добрый день. Что делать, если сканер в списке значится как гуд (Canon LiDE 300 USB 0x04a9/0x1913 Good), установила пакет, запускаю XSane Image Scanning Programm, сканер шуршит, а потом вылезает окно, что нет доступных устройств?
2 Alexander Bashkirov 25-02-2021 17:35
Я бы посмотрел в сислог (dmesg) и в логи xsane. Там где-то по идее должно быть написано что не так.
Еще я бы проверил кабель и порты. Однажды долго плясал с настройкой второго монитора, а дело было в убитом VGA разъеме.
Еще сделала все как тут описывали, на последнем шаге система пишет, что не видит сканер
В техподдержку звонила - они говорят скачать драйвер с сайта и установить. Установила, ничего не поменялось. При повторной установке пакета - пишет, что уже стоит, но программу не могу найти в менеджере приложений.
Что конкретно искать в логах?
Еще такой косяк заметила, что если в любой юсб-порт что-то подключаю, при подключенном сканере - он начинает шуршать :-) не знаю, хорошо это или плохо.
к винде10 сканер подключала - работает нормально
4 Alexander Bashkirov 25-02-2021 21:49
Ситуация 1-в-1: сканер не видится после установки дров с Кэнона. Есть несколько вариантов, какой из них подойдет - сказать сложно.
Спасибо, сегодня попробую его победить. Дык ещё до установки дров с сайта убунта не видела сканер
6 Alexander Bashkirov 26-02-2021 09:36
Тут зависит от того, что это за Убунта и от версии. Например, Runtu вырезает вообще всё лишнее, Убунту разных версий имеют разный набор модулей ядра (которые отвечают в тч за переферию).
Версия такая Description: Ubuntu 16.04.6 LTS
Позапускала команды с аскубунту.ком - ничего хорошего со сканером не произошло :-(.
$ sudo add-apt-repository ppa:leksa/
Cannot add PPA: 'ppa:
leksa' user or team does not exist.
Проблема может быть в том, что Убунта достаточно старая. Не факт, но возможно: я сталкивался с тем, что некоторое ПО под Убунту требует минимум 18.х
Вариант - попробовать поднять виртуалку, проборосить USB, на ней накатить что-то свежее и посмотреть, появится ли сканер. Если да - то причина найдена.
Как установить сканер в Linux основанного на Debian. Данное руководство подойдет для всех Debian подобных дистрибутивов (Ubuntu, Linux Mint и т.д.).
Будет описано два способа установки сканера.
Первый способ: это когда сканер подключен к серверу в сети.
Второй способ: если вы настраиваете сканер на станциях, а сам сканер подключается к сети по Wi-Fi. Если это ваш вариант, то идем сразу ко второй части статьи.
Настройка серверной станции.
Для начала на сервере установим необходимые пакеты:
Если надо расшарить сканер по сети, внесите пользователя saned в группы scanner и lp:
Теперь для проверки правильности установки введем команду
Если все правильно, должна вывестись информация о подключенном сканере. Что-то типа
К сожалению, Sane это не сервис и принимать соединение по сети сам по себе не может. Поэтому установим еще и openbsd-inetd , который будет принимать соединения и передавать их Sane
и ищем там строку sane-port 6566/tcp. Если ее там нет, то прописываем.
Теперь беремся за настройку самого Sane
Открываем файл
и прописываем в нем сеть, из которой будет разрешен
доступ к сканеру. Например, 10.5.5.0/24
Перезапускаем сервис openbsd-inetd
На этом настройка сервера закончена.
Настройка рабочей станции.
В качестве рабочей станции может выступать и сам сервер. Поэтому все действия можно выполнить и на нем.
Установим необходимые программы:
Откроем на редактирование файл
и пропишем в нем адрес сервера со сканером 10.5.5.1 (либо сам сканер например: 10.5.5.2).
проверяем наличие строки net. Если она есть и не закомментирована — все нормально. Иначе вписываем ее.
Для доступа к сканеру по Wi-Fi
Выполняем если не проделывали действия для настройки серверной части.
И еще открываем файл:
и прописываем в нем сеть, из которой будет разрешен
доступ к сканеру. Например, 10.5.5.0/24
Перезапускаем сервис openbsd-inetd
Проверить доступность сканера с рабочей станции можно при помощи все той же команды:
Если и здесь сканер обнаружился — значит у нас все работает и мы можем начинать сканирование. Запускаем утилиту для сканирования:
или еще одна утилита
для её установки наберите:
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.
Компьютер с современной версией Linux можно использовать не только в качестве интернет-сервера, но и как рабочую станцию для графических работ (например, с использованием Gimp). Для этого, в частности, необходима возможность получать изображения с помощью сканера (вы же не будете покупать отдельный компьютер и ставить на него MS Windows только для сканирования?).
- Цена. Так как я не занимаюсь графикой профессионально, то я даже не смотрел в сторону профессиональных моделей. Кстати, существует громадный ценовой разрыв между любительскими и профессиональными моделями. Например, Seiko Epson продает сканеры либо дешевле $500, либо дороже $2000. Так что купить модель неподходящего уровня вам просто не дадут ;)
- Область сканирования - A4.
- Тип датчика. Какой датчик выбрать: CIS, ПЗС (CCD) или ФЭУ? На ФЭУ денег нет (см. выше), про CIS достаточно вспомнить, что там нет оптики. Так что выбор очевиден - CCD.
- Тип кинематического механизма: ручной, роликовый, планшетный, проекционный или барабанный (в них используется ФЭУ, так что отбрасываем сразу). Ручные и проекционные сканеры я уже имел несчастье пробовать, так что также отбросим их. Роликовый сканер, конечно, лучше ручного, но доверия все же не внушает. Итого - планшетный сканер.
- Тип оригинала: прозрачный или непрозрачный. Хотелось бы иметь универсальное устройство, которое могло бы сканировать как бумажные носители, так и слайды, а в идеале и негативы. Для слайд адаптера нужна функция фокусировки.
- Аппаратный интерфейс: параллельный порт (устарел и слишком медленный), SCSI или USB. Вы где нибудь видели дешевый SCSI сканер? Вот и я тоже. Устаревшие модели не предлагать!
- Драйвера. Большинство (все ?) изготовители сканеров не предоставляют драйверов под Linux. К счастью, драйвера ко многим моделям можно получить от энтузиастов. Поэтому перед покупкой сканера необходимо убедиться, что кем-нибудь написан драйвер именно для этой модели сканера. Отличие одной буквы в имени приведет к тому, что сканером вы воспользоваться не сможете. Убедитесь также, что драйвер достаточно отлажен, и не верьте обещаниям, что все будет работать буквально на следующей неделе (в крайнем случае, можно отложить покупку на неделю ;). Информацию о поддерживаемых сканерах можно найти:
-
(отзывы счастливых или несчастных владельцев) (обобщенный драйвер USB сканера обеспечивает только транспортный уровень!) (технически говоря, это не драйвера, а библиотека, исполняемая в userspace, но именно она обеспечивает интерпретацию данных, получаемых от обобщенного драйвера USB сканеров в зависимости от конкретной модели сканера)
Теперь вы поняли, как я мучился выбирая сканер? К счастью, все гораздо проще - посмотрите список сканеров с интерфейсом USB и сравните со списком современных сканеров, продаваемых в местном магазине. В пересечении списков окажется всего несколько моделей. Дальнейший выбор можно провести исходя из личных пристрастий и обзоров в журналах.
- Изготовитель: Seiko Epson (сайт поддержки, российский сайт Seiko Epson, российский сайт поддержки).
- Цена: около $250.
- Область сканирования: A4 (216x297mm).
- Датчик: CCD (2 линии на цвет).
- Планшетный со съемной крышкой, 4 кнопки.
- Встроенный пассивный адаптер (EU-54) для сканировная 35мм пленок (вертикально расположенная лампа с матовым стеклом). Область сканирования 48.26x231.1mm (? 36x226mm). Пленку надо класть блестящей стороной вниз. Две точки фокусировки: на стекло и 2 mm над ним (пленка в держателе).
- Аппаратный интерфейс: USB 1.1, гнездо типа B (глубокое, так что USB кабель с ограничителем глубины не подошел), Full Speed mode (12Mbits/sec), подключать к корневому концентратору или концентратору первого уровня с блоком питания. Выдает о себе следующую информацию (надо бы добавить в modules.usbmap, в ядре 2.4.18 - RH 8.0 - уже есть):
- string description: manufacturer: "EPSON", product: "EPSON Scanner"
- Device Class: ff
- Device Subclass: ff
- Device Protocol: ff
- Vendor Id: 0x04b8
- Product Id: 0x0110
- Revision Number: 1.10
- preview 8 бит - 10 секунд
- preview 16 бит - 15 секунд
- scanimage --mode Color --depth 8 --resolution 50 (10.5 секунд)
- scanimage --mode Color --depth 16 --resolution 50 (10.5 секунд)
- scanimage --mode Color --depth 8 --resolution 100 (10.5 секунд)
- scanimage --mode Color --depth 16 --resolution 100 (13.5 секунд)
- scanimage --mode Color --depth 8 --resolution 200 (21 секунда)
- scanimage --mode Color --depth 16 --resolution 200 (37.5 секунд)
- scanimage --mode Color --depth 8 --resolution 400 (71 секунда)
- scanimage --mode Color --depth 16 --resolution 400 (159 секунд)
- scanimage --mode Color --depth 8 --resolution 600 (150 секунд)
- scanimage --mode Color --depth 16 --resolution 600 (300 секунд)
- scanimage --mode Color --depth 8 --resolution 800 (293 секунды)
- scanimage --mode Color --depth 16 --resolution 800 -x 172.7 (413 секунд, PNM создается с ошибкой, а в TIFF нет последней строки)
- scanimage --mode Color --depth 8 --resolution 1600 -x 172.7 (833 секунды)
- command level: ESC/I-B8, FS
- 7 уровней яркости (реализовано программно, а не увеличением яркости лампы)
- line art: fixed threshold, text enhancement technology
- halftone: auto area segmentation, 3 режима error diffusion, 4 шаблона dither, 2 загружаемых шаблона (bi-level и quad-level)
- гамма коррекция: 2 типа для CRT, 3 типа для печати, 1 загружаемый
- цветокоррекция: 1 для CRT, 3 для принтера, 1 загружаемая
- Источник питания: DC 24V, 0.8A (15W/6W)
Я использую Red Hat 7.2 с ядром 2.4.9-13. USB-контроллер: UHCI (chipset Intel BX).
Так как ядро 2.4.9 ничего не знает о Epson Perfection 1650 (в 2.4.18 всё в порядке), то надо добавить в /etc/modules.conf строку:
Может возникнуть проблема со слишком маленьким временем ожидания подтверждения в драйвере. Стандартное время ожидания (в /usr/src/linux/drivers/usb/scanner.h) равно 10 секундам. Для Epson этого мало, особенно в режиме TPU и в больших разрешениях. В старом ядре приходилось менять scanner.h и пересобирать ядро. Затем у модуля scanner появился параметр read_timeout (только задавать его надо не в секундах, как написано в документации, а в тиках - 1/100 секунды). Сейчас драйвер сканера самостоятельно увеличивает этот параметр до 40 секунд для сканеров Epson. В новой версии драйвера также убран эффект "тормознутости" - приложение нельзя было снять в течении этих самых 40 секунд.
Oops! Ядро 2.4.9 (в 2.4.18 всё в порядке) ничего не знает об этом устройстве. Берем подходящую строчку из /etc/hotplug/usb.distmap от другого сканера Epson:
То же самое можно сделать вручную:
Осталось убедиться, что права к устройству /dev/usb/scanner0 достаточны для пользователя, который будет сканировать.
Если сканер долго не использовать, то он отключается, а модуль выгружается из памяти. В результате автоматический поиск устройства не работает. Можно или передернуть устройство, перезагрузить драйвер вручную или указывать имя устройства явно.
Убедившись, что при подсоединении сканера автоматически загружается модуль scanner, переходим к следующему этапу. Дело в том, что USB драйвер Linux обеспечивает только транспортный уровень протокола, т.е. он умеет передавать/принимать байты, но не понимает их значения. Для работы с конкретной моделью сканера (или серией сканеров, если они используют общий командный язык) необходима программа, умеющая общаться именно с данной моделью сканера. Наиболее популярным комплектом таких программ является SANE.
SANE представляет собой API, который обеспечивает доступ к сканирующему оборудованию стандартизованным образом и библиотеку модулей для конкретных моделей сканеров. Поддерживаются не только USB сканеры, но SCSI-сканеры, устройства, подключаемые к параллельному порту, цифровые камеры из комплекта gphoto2 и другие устройства. Обеспечивается сетевая работа (я не пробовал).
В дополнение к библиотеке (backends), в состав пакета входят программы для сканирования (frontends): scanimage, xcam, xscanimage. scanimage - это консольная программа и пользоваться ею можно, но неудобно. xcam и xscanimage - убогие и глючные, так что лучше пользоваться xsane.
- вместе с Red Hat 7.2: пакеты sane-frontends-1.0.5, sane-backends-1.0.5 и sane-backends-devel-1.0.5
- переустановив (rpm -Uvh) новые версии (1.0.6) с RawHide (они тянут за собой libusb-0.1.4-1.i386.rpm)
- собрав их самостоятельно (удалив предварительно старую версию и пакеты, которые от нее зависят):
- ./configure
- make
- make install
- добавить в /etc/ld.so.conf директории /usr/local/lib, /usr/local/lib/sane и запустить /sbin/ldconfig (т.к. самосборный SANE (устанавливается в /usr/local, вместо /usr)
Редактируем список устройств в файле /etc/sane.d/dll.conf (/usr/local/etc/sane.d/dll.conf, если собирали SANE самостоятельно): все лишние устройства надо закоментировать - автопроба неправильного драйвера может привести устройство или всю систему в неработоспособное состояние.
В /etc/sane.d/epson.conf добавить:
Тестируем список доступных устройств:
Среди распознанных устройств должно быть:
Тестируем работоспособность получившейся системы (весьма поверхностно):
Посмотрим какие возможности сканера доступны с помощью SANE:
- --mode Binary|Gray|Color
- --depth 8|16
- --halftoning (все что обещано аппаратурой)
- --dropout None|Red|Green|Blue
- --brightness -4..3 (не совместим с гаммакоррекцией)
- --sharpness -2..2
- --gamma-correction аппаратная гаммакоррекция, в т.ч. загружаемые кривые отдельно по каждому цвету
- --color-correction (эти параметры вручную точно не задашь ;)
- --resolution 50|60|72|75|80|90|100|120|133|144|150|160|175|180|200|216|240|266|300|320|350|360|400|480|600|720|800|900|1200|1600|1800|2400|3200
- --threshold 0..255
- --mirror[=(yes|no)]
- --speed[=(yes|no)]
- --auto-area-segmentation[=(yes|no)] (картинки halftoned, текст наоборот)
- --zoom 50..200
- --wait-for-button (1.0.8)
- --preview[=(yes|no)]
- --preview-speed[=(yes|no)]
- геометрия: -l, -t, -x, -y (mm)
- --source Flatbed|Transparency Unit
- --film-type Positive Film|Negative Film
- --focus-position Focus on glass|Focus 2.5mm above glass
При попытке сканирования более 32 КБ на строку выдает ошибку "out of memory". Это не недостаток оперативной памяти (памяти я закупил достаточно по случаю снижения цен ;), а проблемы с адресацией командного языка (на самом деле ограничение равняется 64 КБ на строку - Epson Twain 5 позволяет такое, но sane-epson ошибается вдвое).
Установив переменную окружения SANE_DEBUG_EPSON (от 1 до 128) можно получить отладочную печать в случае затруднений. Вот что устройство сообщает о себе:
Кстати, в комплекте есть модуль для захвата изображений с video4linux (например, v4l:/dev/video0), который работает с моей AverMedia TVPhone98.
scanimage позволяет отсканировать изображение с нужными параметрами и сохранить его в формате TIFF или PNM. Но пользоваться им можно разве что для тестирования. Поможет нам xsane - графическая оболочка к SANE. Также используется как plugin для GIMP, что позволяет сканировать изображения прямо из графического редактора.
- вместе с Red Hat 7.2: пакеты xsane-0.77-4 и xsane-gimp-0.77-4 (но это очень старая версию с огромным количеством ошибок, например в некоторых режимах PNG сохраняется с ошибками)
- переустановив (rpm -Uvh) новые версии (0.82-3) с RawHide (почему-то нет русских меню)
- собрав их самостоятельно (удалив предварительно старую версию и пакеты, которые от нее зависят; не забудьте о plugin для GIMP:
- ./configure (иногда приходится давать --disable-sanetest)
- make
- в RH 7.1 ошибка gcc-2.96-81 при компиляции xsane.c:4501(xsane_mail_dialog), о чем честно предупреждается в xsane.INSTALL (видимо силенок не хватает скомпилировать 260КБ с -O2). Уменьшение уровня оптимизации позволяют завершить сборку.
- в RH 7.2 потребовалось установить пакет libusb-devel в дополнение к libusb, который потребовался обновленному sane
- /usr/local/share/sane/xsane
- /usr/local/share/locale
- /usr/local/man/man1
- /usr/local/share/sane
Вот и все: запускаем командой xsane или xsane epson:/dev/usb/scanner0, если не срабатывает автоматическое распознавание. После этого надо обязательно включить отображение всех окон и погулять по конфигурации.
Гаммакоррекция похоже в xsane-0.82 только программная.
Заменяет libsane-epson.so в /usr/lib/sane на свою реализацию libsane-epsonkw.so (является модификацией одной из ранних версий libsane-epson). Единственное замеченное мной различие - появилась гаммакоррекция - 1.8. Устанавливается библиотека libesmod.so в /usr/lib и графический интерфейс к SANE - iscan. Его также можно использовать как plugin для gimp.
Интерфейс проще, чем xsane. Появились кривые гамма- и цветокоррекции, но нет возможности управлять аппаратными функциями, белой и черной точек, гистограммы, 16 битных цветов, как в xsane. В общем, я не понял зачем это нужно.
Ограничение на размер строки сканирования в 32 КБ осталось :(
VueScan - библиотека драйверов сотни сканеров и графическая оболочка в одной программе. Нет исходных текстов. Shareware (изображения не сохраняются, пока не заплатишь автору). Ориентирована на слайдсканеры: поддержка инфракрасного канала, фокусировки, установки времени экспозиции, пакетной обработки, многократного сканирования (гм, Floating point exception); специальные фильтры обработки изображений для пленки: удаление зерна, восстановление "увядших" цветов (рекомендуется нажать кнопку "advanced options"). При попытке сканировать весь лист 1600x1600x16 получаем Segmentation fault (видимо та же проблема с ограничением размера изображения). Перед запуском надо установить переменные окружения, описывающие сканер:
Сканирование 3200 dpi. Заметна явная полосатость изображения - либо кто-то путает четные и нечетные строки, либо CCD не успевает "отдохнуть" за полшага.
Попытка многократного сканирования одной фотографии (c идеей дальнейшего усреднения с помощью convert -depth 16 -average) и последующее сравнение их (composite -depth 16 -compose difference) наводит на мысль, что младшие 8 бит на цвет генерируются датчиком случайных чисел (а на границе светлого и темного - все 10 ;).
обеспечивающей универсальный интерфейс (API) и доступной с DVD ALT Linux, либо из репозитория.
Linux поддерживает сканеры с интерфейсом как SCSI, так и USB. Убедитесь, что ваш сканер поддерживается SANE перед тем, как приступить к конфигурации. Для SANE существует список поддерживаемых устройств, где находится информация о поддержке сканера и статусе этой поддержки.
Согласно информации с сайта разработчика, на данный момент поддерживается 760 моделей сканеров.
Система SANE состоит из двух частей: аппаратной поддержки (backend, libsane) и программной поддержки (frontend). Первая часть обеспечивает собственно доступ к сканеру, вторая — графический интерфейс для сканирования (xsane).
Некоторым USB сканерам может потребоваться загрузка прошивки.
Для примера проведём установку USB-сканера Mustek 1200 UB Plus (считаем, что он уже подключён к USB порту).
В первую очередь следует установить пакет sane (при подключенных репозиториях или DVD):
после чего при помощи команды sane-find-scanner проверить поддержку сканера системой SANE:
В выводе должны присутствовать интерфейс сканера и имя используемого устройства. Производитель и модель сканера могут отсутствовать: это нормально.
Теперь необходимо убедиться, что сканер опознан программой графического интерфейса. В состав системы SANE входит утилита scanimage, позволяющая работать со сканером из командной строки. Опция -L используется для показа информации о сканере:
Сканер определился несколько неправильно, что не критично.
Для тестирования работы сканера используется опция -T
Создаём каталог для прошивки:
Скачиваем прошивку в каталог gt68xx
Проверяем работу сканера:
Сканер установлен и корректно работает.
Если сканер сканирует, но искажает изображение (например, показывает только половину страницы), помогло следующее решение: в файле /etc/sane.d/gt68xx.conf изменить
usb 0x055f 0x021d
Это проверено на сканере Mustek BearPaw 2400 CU Plus и Школьный Юниор 5.0.2 (соответствующая тема на форуме уже закрыта, чтобы не потерялось записал сюда, если что не так, подправьте, пожалуйста).
Все описанные операции выполнялись нами с привилегиями суперпользователя (root). Вам может потребоваться дать доступ к сканеру другим пользователям.
Внимание! Устарело для 7.0 и выше (там polkit не смотрит на consolekit)Автоматически доступ к сканеру должен доставаться пользователю, который сидит за консолью. [1]
Это другой способ дать доступ другим пользователям.
Добавление пользователя в группу scanner разрешит ему использовать сканер.
Читайте также: