Как установить 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 разрешит ему использовать сканер.

          Читайте также: