Главная

О кафедре

История

События

Методические материалы

Книги

Электронные
книги


Источники
и  пособия


Библейское обозрение

Рекомендуемые
программы


Ссылки

Обновления
сайта


Написать
письмо

УСТАНОВКА И НАСТРОЙКА СКАНЕРА В GNU/LINUX
НА ПРИМЕРЕ EPSON PERFECTION 1270
ДЛЯ Debian 4.0 Etch и openSUSE 10.2

Практическое руководство (версия 3.2)

Введение

Установка и настройка сканера в операционной системе GNU/Linux имеет особенности по сравнению с MS Windows. Это связано не с недостатками архитектуры GNU/Linux, а с тем, что производители сканеров держат в секрете алгоритмы работы своих устройств. При продаже сканеры комплектуются, как правило, только драйверами для MS Windows (иногда - также для MacOS), которые идут в бинарном виде. Поэтому написание драйверов под GNU/Linux представляет из себя непростую задачу для энтузиастов этой операционной системы: требуется некоторое время, для того, чтобы уяснить принцип действия того или иного сканера и написать драйвер. Для большинства новейших моделей сканеров вообще нет драйверов под GNU/Linux, или они не предоставляют полной функциональности. Имеет смысл перед приобретением сканера удостовериться, что он будет работать также и под GNU/Linux, посетив соответствующую страницу проекта Sane (расшифровывается Scanner Access Now Easy, что можно перевести примерно как "сканировать теперь легко"), обеспечивающего поддержку сканеров в GNU/Linux.

Для сканеров, продажи которых начались 1-3 года назад, драйверы уже написаны и предоставляют в большинстве случаев хорошую функциональность под GNU/Linux - особенно если модель сканера получила широкое распространение. Однако ряду сканеров для функционирования необходимо так называемое "фирменное программное обеспечение" (firmware) - особая бинарная программа, которая загружается в память сканера в начале работы ("бинарник", иногда ее называют также "прошивка"). Проблема заключается в том, что такие бинарники распространяются производителями сканеров под особыми проприетарными лицензиями и, как правило, не могут быть включены в состав дистрибутивов GNU/Linux как часть соотвествующих драйверов сканеров. Поэтому в большинстве случаев требуется дополнительная настройка драйвера сканера в GNU/Linux, чему и посвящена эта заметка.

Для примера рассмотрим настройку широко распространенного и эффективного сканера Epson Perfection 1270 (работает через USB). В первой части статьи дается описание настройки сканера для дистрибутива Debian 4.0 Etch - это описание основано на общих принципах работы GNU/Linux и подойдет для многих других дистрибутивов. Во второй части приводятся сведения по настройке с использованием специфической графической утилиты, характерной для дистрибутива openSUSE 10.2. Эти части статьи можно читать независимо друг от друга: соответствующая общая информация продублирована в обеих частях.


Установка и настройка сканера в Debian 4.0 Etch

Выясняем, установлены ли в системе пакеты sane и xsane. В консоли в режиме суперпользователя вводим команду:

# aptitude show sane xsane | more

Для каждого пакета смотрим строчку "Состояние". Если пакеты уже установлены, получаем сообщение об этом (листаем информацию клавишей "пробел"). В противном случае инсталлируем их командой:

# aptitude install sane xsane

Далее убеждаемся, что система видит сканер. Вводим команду:


# lsusb
Bus 005 Device 009: ID 04b8:0120 Seiko Epson Corp.
Bus 005 Device 007: ID 0566:3002 Monterey International Corp.
Bus 005 Device 006: ID 09da:000a A4 Tech Co., Ltd
Bus 005 Device 005: ID 05e3:0606 Genesys Logic, Inc.
Bus 005 Device 001: ID 0000:0000
...

В этом перечне сканер идет в первой строке. Важным параметром является его идентификатор (ID), который в данном случае имеет значение 04b8:0120. Первое число (до двоеточия) дает код фирмы-производителя (англ. Vendor-ID), второе - код самого устройства (англ. Product-ID). Нужно запомнить эти значения, они будут важны при дальнейшей настройке.

Другой способ должен подтвердить, что сканер видит не только операционная система, но и пакет sane. Для этого вводим команду sane-find-scanner и получаем следующее сообщение:

# sane-find-scanner

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.
  # Also you need support for SCSI Generic (sg) in your operating system.
  # If using Linux, try "modprobe sg".

found USB scanner (vendor=0x04b8 [EPSON], product=0x0120 [EPSON Scanner]) at libusb:005:009
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

Выделенная полужирным строка показывает, что найден сканер и выдает те же коды для него, что и команда lsusb.

Теперь нужно выяснить, в каком из дополнительных модулей к sane (такой модуль называется по англ. backend) содержится драйвер для нашего сканера. Самый простой способ сделать это - посмотреть на сайте проекта sane по адресу http://www.sane-project.org/cgi-bin/driver.pl Нужно ввести модель принтера, а также коды производителя и устройства:

В качестве ответа будет список тех дополнительных модулей (backends) к sane, в которых имеется поддержка данного сканера. В нашем примере - это модуль SnapScan, версии которого, начиная с 1.4, "хорошо" поддерживают этот сканер.

Примечание. Выбор правильного дополнительного модуля (backend) крайне важен, поскольку в случае ошибки можно нанести непоправимый вред сканеру.

Большинство этих модулей находятся в пакете libsane, но для некоторых сканеров нужно будет дополнительно роинсталлировать пакет libsane-extras (подробнее посмотреть его описание можно командой aptitude show libsane-extras).

Продолжаем изучать информацию на веб-странице проекта sane. Нажимаем на ссылку "SnapScan" в первом столбце и переходим на страницу http://snapscan.sourceforge.net/, где приводится подробная информация о модуле snapscan:

Переходим к строке, в которой дана подробная информация о нашем сканере (Epson Perfection 1270). Здесь важным является то, что для корректной работы сканер требует предварительной загрузки в свою память специального бинарного программного обеспечения (firmware), которое идет на диске вместе со сканером и представляет собой файл под названием esfw3e.bin:

Где взять этот файл? В данном случае - для нашего конкретного примера - можно загрузить esfw3e.bin с нашего сайта. Для других сканеров имеет смысл вначале поискать бинарники в интернете, в случае неудачи - искать на фирменном диске. К сожалению, не всегда они присутствуют на диске явным образом - иногда они доступны лишь после инсталляции в операционной системе MS Windows, как правило - в директории C:\Windows\System32. В случае острой необходимости можно произвести инсталляцию драйвера сканера в виртуальной машине с установленной там MS Windows или в эмуляторе wine, а потом извлечь оттуда бинарник.

Но как настроить нужный нам модуль (backend) даже при наличии бинарника? Первоначальную информацию о модуле можно найти в странице руководства sane, задав команду:

# man 7 sane

При описании модуля из нашего примера (snapscan) в руководстве говорится о том, что он поддерживает конкретный тип сканеров (AGFA SnapScan flatbed scanners). Предлагается для более подробной информации посмотреть страницу руководства самого модуля. Что и делаем командой

# man sane-snapscan

Там можно прочитать, что конфигурационный файл данного модуля - /etc/sane.d/snapscan.conf и в нем надо сделать несколько исправлений: указать тип сканера (у нас - USB) и месторасположение бинарника. Бинарник предлагается размещать в директории /usr/share/sane/snapscan/. Создадим такую директорию и скопируем в нее бинарник с помощью следующих команд:

# mkdir /usr/share/sane/snapscan
# cd {путь к текущей директории с бинарником}
# cp esfw3e.bin /usr/share/sane/snapscan/esfw3e.bin

Заметьте, при этом на файл esfw3e.bin выставлены такие права:

# ls -l /usr/share/sane/snapscan/esfw3e.bin
-rw-r--r-- 1 root root 64000 2008-02-14 02:09 /usr/share/sane/snapscan/esfw3e.bin

Переходим к исправлению конфигурационного файла snapscan.conf. Предварительно делаем его резервную копию:

# cp /etc/sane.d/snapscan.conf /etc/sane.d/snapscan.conf.back1

Начинаем его редактировать (в любом редакторе - например, в nano):

# nano /etc/sane.d/snapscan.conf

Прежде всего нужно изменить такую строчку:

firmware /usr/share/sane/snapscan/your-firmwarefile.bin

После слова firmware нужно вписать реальные путь и название нашего бинарника. Поскольку мы скопировали его в директорию /usr/share/sane/snapscan/, то в данной строке надо лишь заменить фиктивное имя your-firmwarefile.bin на имя нашего бинарника - esfw3e.bin . В результате получаем следующий вариант данной строки:

firmware /usr/share/sane/snapscan/esfw3e.bin

Просмотр конфигурационного файла до конца показывает, что в нем нет описания нашего сканера (название, код производителя и устройства). Исправим ситуацию, добавив в конце файла такие строки:

#Epson Perfection 1270
usb 0x04b8 0x0120

Примечание. В некоторых дистрибутивах понадобится также раскомментировать строчку

# /dev/usb/scanner0 bus=usb
добавив в нее конкретные параметры сканера:

/dev/usb/scanner0 bus=usb 0x04b8 0x0120

Настройка завершена, но пока что со сканером можно работать только в режиме суперпользователя, что соответстсвует жесткой политике безопасности дистрибутива Debian, но не совсем удобно на обычном десктопе. Чтобы разрешить работу со сканером рядовым пользователям, добавляем их в группу scanner. Это можно сделать в консоли в режиме суперпользователя следующими командами:

# gpasswd -a {логин_пользователя} scanner
Например, для пользователя, имеющего логин dmitry:
# gpasswd -a dmitry scanner
Добавление пользователя dmitry в группу scanner

Выходим из режима суперпользователя и проверяем под конкретным пользователем, произошло ли добавление в группу scanner, дав команду groups:

# exit
exit
login: dmitry
Password:
$ groups
dmitry dialout cdrom floppy audio dip video plugdev scanner clamav vboxuse

Примечание. Если Вы работали не в текстовой консоли, а в консоли графической среды (например, konsole в KDE), нужно выйти из графической среды и снова войти, чтобы изменения вступили в силу.

Проверяем привязку модуля к сканеру:

$ scanimage -L
device `snapscan:libusb:005:009' is a EPSON EPSON Scanner flatbed scanner

Если Вы видите подобную надпись - значит, сканер и его дополнительный модуль успешно идентифицированы, можно переходить к сканированию. Описание деталей этого процесса и полезные советы Вы можете найти на странице "Сканирование в GNU/Linux на примере Epson Perfection 1270". В противном случае (если scanimage ничего не находит) нужно внести дополнительные изменения в конфигурационный файл вспомогательного модуля.


Установка и настройка сканера в openSUSE 10.2

Настройка сканера в openSUSE позволяет использовать специфичный для этого дистрибутива графический конфигуратор, что может быть психологически привычнее для пользователей, лишь недавно пересевших с MS Windows.

Проверяем, что в системе установлен пакет для работы со сканером sane и графическая оболочка к нему xsane

Вводим в консоли в режиме суперпользователя команды:

# rpm -q sane
sane-1.0.18-34

# rpm -q xsane
xsane-0.991-32
Если пакеты не установлены - устанавливаем их (Меню -> Система -> YaST -> Управление программным обеспечением).

Затем подключаем сканер к компьютеру. Появляется информационное окно, в котором предлагается настроить сканер (см. рис. 1).


Рис. 1. Информационное окно при подключении нового сканера к компьютеру

Рис. 1. Информационное окно при подключении нового сканера к компьютеру

Если окно не появилось автоматически, проверяем, видит ли система наш сканер: задаем в консоли команду lsusb:

> lsusb
Bus 004 Device 001: ID 0000:0000
Bus 005 Device 009: ID 04b8:0120 Seiko Epson Corp.
Bus 005 Device 008: ID 08ec:0016 M-Systems Flash Disk Pioneers
...
Если имеется строчка с названием нашего сканера (как в данном случае: Seiko Epson Corp.), запускаем программу его настройки вручную: Меню -> Система -> YaST -> Оборудование -> Сканер.

Происходит поиск сканеров. Сканер обнаруживается системой, но оказывается не настроен (см. рис. 2).


Рис. 2. Сообщение о том, что сканер найден, но не настроен

Рис. 2. Сообщение о том, что сканер найден, но не настроен

Нажимаем "Редактировать", выбираем из двух предложенных драйверов для Epson Perfection 1270 тот, у которого написано: "Требуется выгрузка прошивки. Драйвер snapscan (пакет sane) обеспечивает хорошую функциональность" и нажимаем "Далее" (рис. 3).


Рис. 3. Выбираем работающий вариант драйвера для сканера Epson Perfection 1270

Рис. 3. Выбираем работающий вариант драйвера для сканера Epson Perfection 1270 (драйвер snapscan)

Появляется предупреждение о том, что прошивку надо взять из Windows-драйвера и посмотреть инструкцию по настройке через команду "man sane-snapscan" (рис. 4).


Рис. 4. Предупреждение о необходимости установки бинарной прошивки

Рис. 4. Предупреждение о необходимости установки бинарной прошивки

В результирующем окне теперь видны по-прежнему ненастройнный наш сканер Epson Perfection 1270 и ненастроенный драйвер snapscan, который будет поддерживать сканер, если мы найдем и установим прошивку (т.е. высвечиваются по отдельности нужный нам сканер - но без драйвера, и нужный нам драйвер - но не ассоциированый со сканером) - см. рис. 5.


Рис. 5. Драйвер и сканер пока еще не настроены - требуется прошивка

Рис. 5. Драйвер и сканер пока еще не настроены - требуется прошивка

В этом окне, тем не менее, имеется ценная информация для последующей настройки драйвера: vendor ("производитель"): 0x04b8, product ("модель"): 0x0120. Эти сведения надо запомнить. Пока можно закрыть это окно.

Теперь надо где-то найти "прошивку" (загружаемый в память сканера бинарник) и связать с ней наш драйвер snapscan. Обычно бинарник имеет расширение .bin.

Для некоторых сканеров эти бинарники включены в пакеты iscan, iscan-firmware и iscan-proprietary-drivers, которые поставляется с openSUSE 10.2. Чтобы узнать, есть ли там бинарник для желаемой модели сканера, нужно всего лишь посмотреть описание этого пакета в YaST (Меню -> Система -> YaST -> Управление программным обеспечением, затем "Поиск": имя пакета, см. закладку "Описание") - см. рис. 6.

Рис. 6. Информация о бинарниках для сканеров, представленных в пакете iscan

Рис. 6. Информация о моделях сканеров, бинарники для которых представлены в пакете iscan

Если бинарник нужного сканера представлен в пакете, устанавливаем пакет.

Если бинарник для нужного сканера не представлен в указанных пакетах, задача его поиска усложняется. Первый вариант в том, чтобы взять бинарник с того компьютера, где установлена MS Windows с инсталлированной в ней сканером требуемой модели. Как правило, бинарник находится в директории C:\Windows\System32. В этой директории может быть несколько файлов с расширением .bin. Имена бинарников прошивки для сканеров Epson, как правило, имеют вид esfwXX.bin, где XX - двузначное число. Имена прошивок для некоторых сканеров можно посмотреть на странице http://snapscan.sourceforge.net.

Если доступа к компьютеру с установленной на нем MS Windows и инсталированным там сканером требуемой модели нет, то остается искать бинарник или на инсталляционном CD (но там он представлен в явном виде далеко не всегда), или в интернете. Для Epson Perfection 1270 бинарника прошивки на инсталляционном CD в явном виде нет, его можно загрузить отсюда: esfw3e.bin.

После того, как найден требуемый бинарник необходимо соответствующим образом настроить драйвер snapscan из программы sane, который будет обеспечивать работу нашего сканера. Подробную инструкцию можно прочитать, набрав в консоли:

>man sane-snapscan
Из инструкции следует, что надо скопировать бинарник esfw3e.bin в директорию /usr/share/sane/snapscan и при этом изменить конфигурационный файл /etc/sane.d/snapscan.conf. Все это необходимо сделать с правами суперпользователя:
> su
Пароль: [вводим пароль]
Копируем бинарник esfw3e.bin в указанную директорию:
# cp {путь к директории с бинарником}/esfw3e.bin /usr/share/sane/snapscan/esfw3e.bin
На всякий случай, сохраняем первоначальную версию конфигурационного файла snapscan.conf под именем snapscan.conf.back:
# cp /etc/sane.d/snapscan.conf /etc/sane.d/snapscan.conf.back
Редактируем snapscan.conf:
# kate /etc/sane.d/snapscan.conf
Необходимо строку
firmware /usr/share/sane/snapscan/your-firmwarefile.bin
отредактировать так:
firmware /usr/share/sane/snapscan/esfw3e.bin
и в конце файла добавить такие строки относительно нашего сканера (информацию о производителе и модели мы запомнили чуть выше):
#Epson Perfection 1270
usb 0x04b8 0x0120
Сохраняем файл (Ctrl-S). Выходим из него.

Запускаем опять Меню -> YaST -> Оборудование -> Сканер. Получаем настроенный на драйвер snapscan сканер Epson Perfection 1270 (см. рис. 7).

Рис. 7. Настроенный сканер Epson Perfection 1270 под openSUSE 10.2

Рис. 7. Настроенный сканер Epson Perfection 1270 под openSUSE 10.2

Теперь сканер полностью настроен. Можно переходить к сканированию. Описание деталей и полезные советы Вы можете найти на странице "Сканирование в GNU/Linux на примере Epson Perfection 1270".


Свящ. Дм. Юревич,
веб-редактор сайта
Кафедры библеистики МДА

© Кафедра библеистики МДА, 2007-2008.
Последнее обновление:
Адрес в интернете: http://www.bible-mda.ru/soft/scanning/scanner-linux.html

Рейтинг@Mail.ru ЧИСТЫЙ ИНТЕРНЕТ - logoSlovo.RU