2.10.2.1 Настройка сканеров
На нашем Youtube-канале вы можете ознакомиться с примерами установки и подключения сканеров, просмотрев видео Работа со сканерами в РЕД ОС, а также найти много другой полезной информации.
Проверка поддержки сканера в 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 сразу.
Если сканер поддерживается, но, в данный момент, не сканирует, то можно применить следующие рекомендации. И так, сначала самое простое.
Ряд устройств поддерживается драйверами sane-airscan, список поддерживаемых устройств доступен по ссылке https://github.com/alexpevzner/sane-airscan
Ряд устройств HP поддерживаются libsane-hpaio из пакета hplip, список устройств доступен по ссылке https://developers.hp.com/hp-linux-imaging-and-printing/supported_devices/index
Проверка распознавания системой сканера, как устройства.
Сначала нужно посмотреть, определяется ли сканер физически. Большинство сканеров сейчас подключается по USB, поэтому необходимо открыть Терминал и ввести команду, показывающую все подключенные USB-устройства:
lsusb или sane-find-scanner
Если среди них нет искомого сканера, то, скорее всего, проблема аппаратная. Стоит проверить, подключён ли сканер по USB, не переломился ли кабель и вообще, исправен ли сам сканер. Так же могут быть проблемы с распознаваем сканера в BIOS или UEFI компьютера. Часто помогает отключение XHCI в UEFI.
Если же в выводе Терминала есть строчка подобная этой:
Bus 003 Device 005: ID 04a9:2220 Canon, Inc. CanoScan LIDE 25
то уже хорошо — система видит сканер как USB-устройство и можно двигаться дальше. Естественно, что все цифры и наименование сканера могут быть другими. Важно то, что такая строка есть в принципе.
Теперь нужно ввести в Терминале:
scanimage -L
Если система не может выполнить команду, то, вероятно, не установлен пакет sane-backends. Установить этот пакет можно командой:
dnf 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 — логин добавляемого пользователя.
Для тестирования сканера выполните команду:
scanimage -T
Разрешение сканеру обращаться к ядру системы.
Если ответ Терминала по прежнему отрицательный, то, возможно, сканеру запрещено обращаться к ядру. Разрешение можно дать, отредактировав конфигурационный файл «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 есть конфиг, который обеспечивает доступ к драйверам. Находится он в каталоге /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
Решение проблемы, если сканер виден под root, но не виден под пользователем:
[root@localhost rules.d]# lsusb Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 03f0:622a Hewlett-Packard Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Здесь строка "Bus 003 Device 002: ID 03f0:622a Hewlett-Packard " - это наше МФУ устройство
Заходим в /dev/bus/usb/ смотрим там через ls -al и находим 003 (по аналогии из вывода lsusb -это Bus 003), заходим в 003 и для устройства 002 (Device 002) устанавливаем права 666.
cd /dev/bus/usb/003 chmod 666 002
Тогда сканер будет виден под пользователем.
Дата последнего изменения: 24.10.2023
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.