Сканирование в Ubuntu 14.04. Решение проблем.
Прежде всего проверяем, поддерживается ли ваш сканер. Для этого заходим на сайт
http://www.sane-project.org . Нас интересует страница Supported devices и раздел со стабильной (не экспериментальной) поддержкой Current Stable SANE Version, где проще всего искать по производителю: Ordered by Manufacturer (полный адрес:http://www.sane-project.org/sane-mfgs.html ).
Данные представлены в таблицах и наибольший интерес представляет столбец "Статус". Вот его легенда:
Complete — полная поддержка.
Good — поддерживается большинство функций.
Basic — поддерживается только базовый функционал, по факту - хорошо если вообще будет работать.
Unsupported — не поддерживается.
Untested — не тестировался, скорее всего работать не будет, но можете поэкспериментировать сами или поискать драйвера в нестабильной ветке SANE - SANE Development (git) Version:
http://www.sane-project.org/lists/sane-mfgs-cvs.html Если по данным сайта ваш сканер хоть как-то поддерживается, но, при этом, в данный момент не печатает, то придётся немного потанцевать с бубном и выполнить некоторые колдунства.
Сначала нужно посмотреть, определяется ли сканер физически. Большинство сканеров сейчас подключается по USB, поэтому открываем Терминал и вводим команду
lsusb
Она покажет подключённые USB-устройства. Если среди них нет искомого сканера, то скорее всего проблема аппаратная. Стоит проверить, подключён ли сканер по USB, не переломился ли кабель и вообще, исправен ли сам сканер.
Если же среди вывода Теринала есть строчка подобная этой -
Bus 003 Device 005: ID 04a9:2220 Canon, Inc. CanoScan LIDE 25
то ваш сканер виден как устройство и можно двигаться дальше.
Теперь вводим в Терминал
scanimage -L
Если система не может выполнить команду, то, скорее всего, не установлена утилита sane-utils, о чём Терминал честно напишет. Установите её командой
sudo apt-get install sane-utils
а затем повторите ввод
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).
то это может означать одно из трёх: либо у вас нет прав на использование сканера; либо сканеру запрещено обращаться к ядру (где обычно и находятся драйвера), либо не установлен драйвер для этого сканера.
Во-первой, разберёмся с правами. Сначала, если забыли свой логин, введите в Терминал
who am i
или
whoami
В ответ получите логин активного в данный момент пользователя.
Теперь посмотрим, в каких группах состоит этот пользователь:
groups имя_пользователя
где имя_пользователя — логин, полученный по команде whoami.
Нас интересует, если ли в этом списке группы plugdev и scanner. Если нет, то нужно добавить текущего пользователя в эти группы:
sudo usermod -G группа1,группа2 -a имя_пользователя
где, соответственно, группа1 и группа2 — тe группы, в которые нам нужно добавить пользователя, а имя_пользователя — логин добавляемого пользователя. При этом группы перечисляются через запятую без пробелов, во всех остальных местах в команде пробелы обязательны.
Управление группами можно организовать и через графический интерфейс. К сожалению, в современных версиях Ubuntu удалены графические оболочки для управления группами, поэтому сначала придётся их поставить.
Для Ubuntu с Unity и GNOME:
sudo apt-get install gnome-system-tools
Для Kubuntu:
sudo apt-get install kuser
В Kubuntu данную утилиту можно найти в Главном меню в разделе "Система" под названием "Пользователи и группы".
После включения пользователя в нужные группы снова вводим в Терминале
scanimage -L
Если ответ Терминала по прежнему отрицательный, то, возможно, сканеру запрещено обращаться к ядру. Для устранения сей несправедливости нужно исправить файл 40-libsane.rules
Для этого открываем его в текстовом редакторе с правами Суперпользователя:
sudo gedit /lib/udev/rules.d/40-libsane.rules
В открывшемся тексте находим сканер с похожим названием, копируем строчку с его данными и вставляем её сразу под найденной, заменив название сканера и номера idVendor и idProduct на полученные ранее по команде lsusb.
Чуть подробнее это будет выглядеть так.
Строка с похожим принтером в файле 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
В скопированной строке меняем в заголовке 60 на 25, а двойной ID 04a9:2220 разделяем на 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
Можно запускать сканирование.