Это старая версия документа.


Справедливо для Ubuntu 14.04 LTS. Скорее всего подойдёт для остальных версий, начиная с 12.04 LTS до 14.10 включительно (нужно проверить).

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

Прежде всего стоит проверить, поддерживается ли подключенный или планируемый к покупке сканер на уровне драйверов. Данную информацию можно получить на сайте проекта SANE:
http://www.sane-project.org.
В частности, на странице раздела со стабильной поддержкой:
http://www.sane-project.org/sane-mfgs.html, где проще всего искать по производителю (заголовок «Scanners», список «Manufacturers».)

Данные о сканерах представлены в таблицах, где наибольший интерес представляет столбец «Статус». Вот его легенда:

  • Complete — полная поддержка.
  • Good — поддерживается большинство функций.
  • Basic — поддерживается только базовый функционал, по факту - хорошо если вообще будет работать.
  • Unsupported — не поддерживается.
  • Untested — не тестировался, скорее всего работать не будет, но можно поэкспериментировать самостоятельно или поискать драйвера в нестабильной ветке SANE («SANE Development (git) Version»): http://www.sane-project.org/lists/sane-mfgs-cvs.html

Если «Статус» имеет последние два значения, то придётся отказаться от покупки и/или использования данного сканера.

Если по данным сайта сканер поддерживается, но, в данный момент, не сканирует, то можно применить следующие рекомендации. И так, сначала самое простое.

Обновление системы с целью получения новых драйверов.

В Linux-дистрибутивах, к которым относиться и Ubuntu, большинство драйверов встроенно в ядро системы (собственно, в сам Linux). Поэтому следует регулярно устанавливать обновления системы, так как на ряду с другими обновлениями могут прийти новые версии ядра, а следовательно, и новые драйвера для компьютера и периферии.

Установить обновления можно с помощью системного приложения «Программы и обновления» (для классической Ubuntu с Unity) или с помощью «Менеджера обновлений Muon» (для KDE). О том, как использовать «Программы и обновления» можно прочитать здесь:
http://help.ubuntu.ru/wiki/руководство_по_ubuntu_desktop_14_04/менеджер_обновлений
Менеджер обновлений] \\ (заголовок «Управление обновлениями» во второй части страницы). «//Менеджер обновлений Muon//» в KDE работает аналогично, хотя немного и отличается интерфейсом и наличием доп. функций. Даже если в списке устанавливаемых обновлений не было новых версий ядра, то ничего страшного. В любом случае, обновления всегда полезны. Если с обновлениями пришли новые ядра, то после окончания установки обновлений компьютер попросит его перезагрузить, на что надо согласиться. После перезагрузки можно ещё раз проверить работоспособность сканера. Если сканер по-прежнему не работает, то потребуются применить более серьёзные методы решения проблемы. =====Проверка распознавания системой сканера, как устройства.===== Сначала нужно посмотреть, определяется ли сканер физически. Большинство сканеров сейчас подключается по USB, поэтому необходимо открыть Терминал и ввести команду, показывающую все подключенные USB-устройства: <code>lsusb</code> <note tip>Запустить Терминал можно по сочетанию клавиш <key>C-A-t</key></note> Если среди них нет искомого сканера, то, скорее всего, проблема аппаратная. Стоит проверить, подключён ли сканер по USB, не переломился ли кабель и вообще, исправен ли сам сканер. Так же могут быть проблемы с распознаваем сканера в BIOS или UEFI компьютера. Часто помогает отключение XHCI в UEFI. Если же в выводе Терминала есть строчка подобная этой: <code>Bus 003 Device 005: ID 04a9:2220 Canon, Inc. CanoScan LIDE 25</code> то уже хорошо — система видит сканер как USB-устройство и можно двигаться дальше. Естественно, что все цифры и наименование сканера могут быть другими. Важно то, что такая строка есть в принципе. Теперь нужно ввести в Терминале: <code>scanimage -L</code> <note important>Следует обращать внимание на регистр букв. Во избежание ошибок лучше копировать команды в Терминал через буфер обмена.</note> Если система не может выполнить команду, то, вероятно, не установлен пакет ''sane-utils'', о чём и сообщит Терминал. Установить этот пакет можно командой: <code>sudo apt-get install sane-utils</code> а затем повторить ввод: <code>scanimage -L</code> Положительным ответом будет считаться строка, аналогичная этой: <code>device `plustek:libusb:003:008' is a Canon CanoScan LiDE25 flatbed scanner</code> Собственно, на этом можно и остановиться. Сканер подключен и распознаётся, можно сканировать. Если же Терминал выдаёт отрицательный ответ примерно в таком виде: <code>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)</code> то это может означать: * аппаратную проблему; * отсутствие прав на работу со сканером у активной в данный момент учётки пользователя; * сканеру запрещено обращаться к ядру (где обычно и находятся драйвера). Решать проблемы лучше в этом же порядке. Про решение аппаратных проблем уже было сказано выше, поэтому можно сразу перейти к настройке прав учётки пользователя. =====Предоставление своей учётной записи права на работу со сканером.===== Введённая в Терминал команда <code>who am i</code> или <code>whoami</code> покажет логин активного в данный момент пользователя. Далее, нужно узнать, в каких группах состоит этот пользователь: <code>groups <имя_пользователя></code> где ''<имя_пользователя>'' — логин, полученный по команде //''whoami''//. Если в этом списке указаны группы ''plugdev'' и ''scanner'', то всё в порядке. Это означает, что проблем с правами на доступ пользователя к сканеру нет и можно переходить к следующему решению. Если же групп ''plugdev'' и ''scanner'' нет в списке, то нужно добавить текущего пользователя в эти группы. Например: <code>sudo usermod -G plugdev,scanner -a user1</code> где ''user1'' — логин добавляемого пользователя. <note important>Внимание! Соблюдайте синтаксис! Группы перечисляются через запятую без пробелов, но во всех остальных местах команды пробелы обязательны. Названия групп и имя пользователя вводятся без кавычек и любых скобок.</note> Управление группами можно организовать и через графический интерфейс. К сожалению, в современных версиях Ubuntu удалены графические оболочки для управления группами, поэтому сначала придётся их поставить. Для Ubuntu с Unity и GNOME: <code>sudo apt-get install gnome-system-tools</code> Для Kubuntu или для KDE, являющимся в системе дополнительным рабочим окружением: <code>sudo apt-get install kuser</code> Запустить графическую утилиту управления группами в Unity можно через //Главное меню->линза Приложения->фильтр Система->раздел Установленные->программа Пользователи и группы// \\ Запуск в KDE: //Главное меню->Приложения->Система->программа KUsers (Управление пользователями)// <note>В обоих рабочих окружениях можно набрать название программы в поисковой строке меню, что значительно ускорит процесс поиска и запуска нужной программы.</note> Подробнее о пользователях и группах можно прочитать, например, здесь: \\ [[http://help.ubuntu.ru/wiki/пользователи_и_группы
Пользователи и группы

После включения пользователя в нужные группы снова ввести в Терминал:

scanimage -L

Если в ответ появляется строка, аналогичная этой, то проблема решена:

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

Иначе следует применить следующий метод решения проблемы.

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

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

sudo gedit /lib/udev/rules.d/40-libsane.rules
gedit — стандартный текстовый редактор Ubuntu для рабочих окружений Unity и GNOME. В Kubuntu (или в KDE) вместо него обычно используется Kate:
sudo kate /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 нужно разделить на idVendor04a9 и idProduct2220. В результате, основная и новая строки, друг за другом, будут выглядеть так:

# 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

Проблема решена. Можно приступать к сканированию.