28 июл. 2008 г.

Epson Perfection 1270 и Ubuntu

Когда я перешёл на Ubuntu 7.04, у меня возникла потребность установки сканера Epson Perfection 1270. Но на тот момент у меня опыта в линксе было немного, потому лишь спустя продолжительное время, я решил написать этот туториал для тех, кто испытывает затруднения со своими сканнерами.

То, что я опишу ниже, было произведено на Ubuntu версиях 7.10 и 8.04. Насчёт других моделей, не знаю, пробуйте и описывайте по шагам, как это делали Вы.


Этот сканер, будучи подключённым к интерфейсу, определяется следующим образом:

$ lsusb
Bus 005 Device 005: ID 04b8:0120 Seiko Epson Corp.

Далее следует установить пакеты sane и sane-utils, если они уже не стоят у вас:

$ sudo aptitude install sane sane-utils

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

$ sane-find-scanner
found USB scanner (vendor=0x04b8 [EPSON], product=0x0120 [EPSON Scanner]) at libusb:005:005

Окончание, в каком месте был найден сканер, может отличаться от приведённого примера. Оно меняется, стоит Вам вытащить, и снова вставить интерфейс в компьютер.

После того, как вы установили пакеты от sane, отредактируйте файл /etc/sane.d/snapscan.conf:

$ sudo nano /etc/sane.d/snapscan.conf

В самом начале вы увидете следующую строку (комментарий переводить не буду, но не будет лишним ознакомится со смыслом сказанного):

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

Основная идея прошивки (firmware) состоит в том, что она закачивается в ваш сканер в момент сканирования, для того, чтобы это сканирование непосредственно выполнять. Firmware у Epson Perfection 1270 имеет имя ESFW3E.BIN

Для его получения следует распаковать и установить драйвера для сканера из установочного диска. Я, например, это сделал с помощью Wine, хотя вы можете использовать рабочую версию OS Windows или же попытаться распаковать их вручную.

Каталог, который содержит драйвера лежит в корне компакт диска с названием escan. После установки, в каталоге windows/system Вы должны обнаружить файл ESFW3E.BIN

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

$ ls -l ESFW3E.BIN
-rw-r--r-- 1 vest vest 64000 2003-09-14 18:00 ESFW3E.BIN

$ md5sum ESFW3E.BIN
486fe0266b3f11c9bad14ccbf5ce87bf ESFW3E.BIN

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

Я, прежде чем это осознать, перепробовал версии три-четыре.

После этого, следует скопировать firmware в любой каталог, я, например, решил скопировать его туда, где производился первоначальный поиск, в /usr/share/sane/snapscan/ и после исправить путь на следующий:

firmware /usr/share/sane/snapscan/ESFW3E.BIN

Для дальнейшего определения сканера, следует запустить команду:

$ scanimage -L

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).

Вы видите, что сканер не определился. Это связано с тем, что в файле snapscan.conf (который исправляли выше) следует добавить строки идентифицирующие наш сканер. Похожие строки имеются по всему файлу. Информация должна вводится та, которую получили после ввода lsusb:

# Epson Perfection 1270
usb 0x04b8 0x0120

Далее проверим ещё раз:

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

Сканер определился. Теперь попробуем произвести тестовое сканирование:

$ scanimage -d snapscan > /tmp/test.pnm
[snapscan] Scanner warming up - waiting 9 seconds.
[snapscan] Scanner warming up - waiting 35 seconds.

Несколько раз сканер попробует прогреться, потом двинется на несколько миллиметров и остановится. Снова возникла "какая-то" неизвестная ошибка. Связана она с тем, что как кто-то писал на форуме, у производителей Sane не дошли руки, чтобы исправить ошибку, связанную с калибровкой качества. Поэтому нам следует сперва её найти, а потом отключить:

$ scanimage —help
List of available devices:
snapscan:libusb:005:005

--quality-cal[=(yes|no)] [yes]
Do a quality white-calibration

Видите, по умолчанию она включена, [yes]. потому её следует отключать:

$ scanimage -d snapscan --quality-cal=no > /tmp/test.pnm

И всё, пожалуйста, в каталоге /tmp ищите свой файл test.pnm

В том же самом gimp'e можно сканировать с помощью xsane, но главное не забыть, чтобы была отключена автоматическая калибровка качества.


Удачи.

p.s. для отладочных целей можете использовать комманду

$ export SANE_DEBUG_DLL=255
$ scanimage -d snapscan --quality-cal=no > /tmp/test.pnm

8 комментариев:

Анонимный комментирует...

Ну вот, одна из немногих статей про сканнеры, написанная на собственном опыте, а не методом Copy/Paste.
Молодец, продолжай в том же духе!!!!

Анонимный комментирует...

где в xsane поменять quality-cal?
и можно ли поставить quality-cal=no по дефолту?

Vest комментирует...

Я сообщил в последних строках про "автоматическую калибровку качества". Как эта вещь звучит по-английски, я не помню, кажется она, попробуйте:
XSane.org
Если не нашли, обращайтесь - сделаю скриншот.

Vest комментирует...

Всё, запустил - нашёл. Окно называется "Стандартные параметры" (Ctrl + 5), первая галка - "Калибровка качества"

Владимир комментирует...

Ubuntu 9.10
Все сделал по инструкции
$ scanimage -L:
[quote]device `v4l:/dev/video0' is a Noname Beholder BeholdTV 505 FM virtual device
device `snapscan:libusb:002:002' is a EPSON EPSON Scanner flatbed scanner
[/quote]
Кроме сканера распознается еще мой тв-тюнер.
Мой файл snapscan.conf:
[quote]
# Change to the fully qualified filename of your firmware file, if
# firmware upload is needed by the scanner
firmware /usr/share/sane/snapscan/ESFW3E.BIN

# If not automatically found you may manually specify a device name.

# Epson Perfection 1270
usb 0x04b8 0x0120

# For USB scanners also specify bus=usb, e.g.
# /dev/usb/scanner0 bus=usb

# For SCSI scanners specify the generic device, e.g. /dev/sg0 on Linux.
# /dev/sg0

#---------------------------------------------------------------------------
# No changes should be necessary below this line
[/quote]

scanimage -d snapscan > /tmp/test.pnm:
[quote][snapscan] Cannot open firmware file /usr/share/sane/snapscan/ESFW3E.BIN.
[snapscan] Edit the firmware file entry in snapscan.conf.
scanimage: open of device snapscan failed: Invalid argument
[/quote]
Подскажите, пожалуйста, что делать. Опыт в линуксе пока не большой(((

Vest комментирует...

Владимир, проверьте, что у вас есть доступ к файлу (на всякий случай - дайте его всем), ну и то, что он реально с таким же именем существует.

DenisTest комментирует...

Отличная статья. Только нужно указать в /etc/sane.d/snapscan.conf не
# Epson Perfection 1270
usb 0x04b8 0x011f
а
# Epson Perfection 1270
usb 0x04b8 0x0120

Vest комментирует...

Да, действительно, Денис, спасибо за дополнение. Исправил.