4.2 Настройка сканеров

Проверка поддержки сканера в Linux на уровне драйверов.

Прежде всего стоит проверить, поддерживается ли подключенный или планируемый к покупке сканер на уровне драйверов. Данную информацию можно получить на сайте проекта SANE:sane-project.org
В частности, на странице раздела со стабильной поддержкой:http://www.sane-project.org/sane-mfgs, где проще всего искать по производителю (заголовок «Scanners», список «Manufacturers».)
Данные о сканерах представлены в таблицах, где наибольший интерес представляет столбец «Статус». Вот его расшифровка:
Complete — полная поддержка.
Good — поддерживается большинство функций.
Basic — поддерживается только базовый функционал, по факту — хорошо если вообще будет работать.
Unsupported — не поддерживается.
Untested — не тестировался, скорее всего работать не будет, но можно поэкспериментировать самостоятельно или поискать драйвера в нестабильной ветке SANE : http://www.sane-project.org/lists/sane-mfgs-cvs
Если «Статус» имеет последние два значения, то сканер не заработает.
Если данной модели сканера просто нет в списке, необходимо проверить на сайте производителя.Если вендор предоставляет драйвера для сканера, тогда необходимо их скачать и установить (обычно в архиве с драйвером предоставляется скрипт, который разносит все драйвера куда надо), чтобы всё работало через SANE сразу.
Если сканер поддерживается, но, в данный момент, не сканирует, то можно применить следующие рекомендации. И так, сначала самое простое.

Проверка распознавания системой сканера, как устройства.

Сначала нужно посмотреть, определяется ли сканер физически. Большинство сканеров сейчас подключается по USB, поэтому необходимо открыть Терминал и ввести команду, показывающую все подключенные USB-устройства:

lsusb

Если среди них нет искомого сканера, то, скорее всего, проблема аппаратная. Стоит проверить, подключён ли сканер по USB, не переломился ли кабель и вообще, исправен ли сам сканер. Так же могут быть проблемы с распознаваем сканера в BIOS или UEFI компьютера. Часто помогает отключение XHCI в UEFI.
Если же в выводе Терминала есть строчка подобная этой:

Bus 003 Device 005: ID 04a9:2220 Canon, Inc. CanoScan LIDE 25

то уже хорошо — система видит сканер как USB-устройство и можно двигаться дальше. Естественно, что все цифры и наименование сканера могут быть другими. Важно то, что такая строка есть в принципе.
Теперь нужно ввести в Терминале:

scanimage -L

Если система не может выполнить команду, то, вероятно, не установлен пакет sane-backends. Установить этот пакет можно командой:

yum install sane-backends

а затем повторить ввод:

scanimage -L

Положительным ответом будет считаться строка, аналогичная этой:

device `plustek:libusb:003:008' is a Canon CanoScan LiDE25 flatbed scanner

Если же Терминал выдаёт отрицательный ответ примерно в таком виде:

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages)

то это может означать:
• аппаратную проблему;
• отсутствие прав на работу со сканером у активной в данный момент учётки пользователя;
• сканеру запрещено обращаться к ядру (где обычно и находятся драйвера).
Решать проблемы лучше в этом же порядке. Про решение аппаратных проблем уже было сказано выше, поэтому можно сразу перейти к настройке прав учётной записи пользователя.
Введённая в Терминал команда

whoami

покажет логин активного в данный момент пользователя.
Далее, нужно узнать, в каких группах состоит этот пользователь:

groups <имя_пользователя> 

где <имя_пользователя> — логин, полученный по команде whoami.
Если в этом списке указаны не указана группа lp, необходимо добавить его:

sudo usermod -G lp -a user1

где user1 — логин добавляемого пользователя.

Разрешение сканеру обращаться к ядру системы.

Если ответ Терминала по прежнему отрицательный, то, возможно, сканеру запрещено обращаться к ядру. Разрешение можно дать, отредактировав конфигурационный файл «40-libsane.rules», или если такого файла нет, «60-libsane.rules» в текстовом редакторе, запущенном с правами Суперпользователя:

sudo nano /lib/udev/rules.d/40-libsane.rules

В открывшемся тексте наверняка найдётся строка с параметрами сканера со схожим названием. Нужно скопировать строчку с этими данными и вставить её копию сразу под найденной, заменив в копии название сканера и номера idVendor и idProduct на полученные ранее по команде lsusb.
Вот как это будет выглядеть подробнее.
В качестве примера продолжает рассматриваться сканер «CanoScan LIDE 25». При подключении другого сканера, его название и значения idVendor и dProduct будут другими, так же может отличаться номер USB-порта.
Строка с похожим сканером в файле «40-libsane.rules»:

# Canon CanoScan LiDE 60
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="221c", ENV{libsane_matched}="yes"

Данные от lsusb:

Bus 003 Device 005: ID 04a9:2220 Canon, Inc. CanoScan LIDE 25

В файле «40-libsane.rules» в копии строки, в заголовке меняется номер модели сканера с 60 на 25, а двойной ID 04a9:2220, полученный от lsusb нужно разделить на idVendor — 04a9 и idProduct — 2220. В результате, основная и новая строки, друг за другом, будут выглядеть так:

# Canon CanoScan LiDE 60
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="221c", ENV{libsane_matched}="yes"
# Canon CanoScan LiDE 25
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="2220", ENV{libsane_matched}="yes"

Остаётся только сохранить файл и закрыть его.
Теперь снова вводим в Терминале:

scanimage -L

Теперь уже ответ должен быть положительным:

device `plustek:libusb:003:008' is a Canon CanoScan LiDE25 flatbed scanner
Если сканер так и не находит, тогда нужно объяснить, как SANE работает со сканером:
У SANE есть конфиг, который является обеспечивает доступ к драйверам. Находится он в каталоге /etc/sane.d/dll.conf.
Выглядит он как список из других конфигов, которые находятся в той же папке, что и dll.conf
Когда мы запускаем команду scanimage -L, а она в свою очередь обращается к конфигу dll.conf, который, в свою очередь, обращается к конфигам, отвечающие непосредственно за определенные модели сканера. Сами конфиги уже ведут драйверам, которые находятся в /usr/lib64/sane/
Решением проблемы может быть такое:
В конфиге /etc/sane.d/dll.conf должен быть указан файл-конфига (причем он не должен быть закомментирован символом «#»). Далее в этом конфиге должен быть указан «Vendor ID» и «Product ID»
Пример:
Bus 003 Device 005: ID 04a9:2220 Canon, Inc. CanoScan LIDE 25
Bus 003 Device 005: ID «Vendor ID»:«Product ID» Canon, Inc. CanoScan LIDE 25
Запись в конфиге, с записью поддерживаемых сканеров должна выглядеть следующем образом для вашего сканера.

#Samsung X7600 Series
usb 0x04e8 0x3326

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email