Подключение сканера Epson Perfection 1270 под Debian GNU/Linux "Etch"
Автор статьи: Александр Лубягин.
Как заставить работать сканер EPSON PERFECTION 1270 под Debian,
установленном "из коробки". Использование утилит xsane, scanimage,
sane-find-scanner.
1. Настройка libsane
Установим пакет, содержащий вспомогательные утилиты для xsane:
# apt-get install sane-utils
Проверим присутствие сканера через драйвер libsane утилитой sane-find-scanner:
$ sane-find-scanner
....
found USB scanner (vendor=0x04b8 [EPSON], product=0x0120 [EPSON Scanner]) at libusb:004:005
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.
Всё нормально. Однако, другая утилита (scanimage) наш сканер не видит:
$ scanimage -L
No scanners were identified.
....
Для правильного распознавания утилитой scanimage нашего сканера, скопируем
в стандартный каталог sane прошивку (firmware) для него:
# mkdir -p /usr/share/sane/snapscan
# cp esfw3e.bin /usr/share/sane/snapscan/
$ md5sum /usr/share/sane/snapscan/esfw3e.bin
486fe0266b3f11c9bad14ccbf5ce87bf /usr/share/sane/snapscan/esfw3e.bin
Примечание: Firmware можно взять из пакета iscan-firmware.
Далее, добавим в настройки libsane следующие строчки:
# echo """
# Epson Perfection 1270
usb 0x04b8 0x0120
""" >> /etc/sane.d/snapscan.conf
Также, поправим одну строку в этом файле настроек:
$ diff /etc/sane.d/snapscan.conf /etc/sane.d/snapscan.conf.bak
5,6c5
< #firmware /usr/share/sane/snapscan/your-firmwarefile.bin
< firmware /usr/share/sane/snapscan/esfw3e.bin
---
> firmware /usr/share/sane/snapscan/your-firmwarefile.bin
106,108d104
< # Epson Perfection 1270
< usb 0x04b8 0x0120
<
После этого сканер обнаруживается:
$ scanimage -L
device `v4l:/dev/video0' is a Noname Camera virtual device
device `snapscan:libusb:004:005' is a EPSON EPSON Scanner flatbed scanner
2. Сканирование изображения формата A4
Если достаточно отсканировать лист A4 целиком, набираем -
$ scanimage -d snapscan:libusb:004:005 --quality-cal=no | pnmtopng > test.png
3. Запуск xsane из-под обычного пользователя
Оболочка xsane не работает - не находит устройства даже из-под root'а.
По-видимому, не хватает некоторых прав на доступ к файлу-устройству.
Для определения имени этого файла, запускаем:
# lsof | grep xsane | grep dev
и находим /dev/pts/1. Затем, делаем chmod og+rw /dev/pts/1 -
после этого xsane запускается из-под обычного пользователя,
так как мы проставили права на соответствующее устройство.
Под root'ом xsane запускать уже не обязательно:
# DISPLAY=:0.0 xsane
[snapscan] Scanner warming up - waiting 9 seconds.
[snapscan] Scanner warming up - waiting 35 seconds.
....
Запускаем её с правами обычного пользователя:
$ xsane
....
4. Примечания
escort
При запуске scanimage -d snapscan, может выдаываться следующее сообщение:
scanimage: open of device snapscan failed: Error during device I/O
pnmtopng: EOF / read error reading magic number
В этом случае надо запускать последовательно - sane-find-scanner
и scanimage -L до исправления этой ошибки. У меня получилось за пару раз.
Либо так:
scanimage --device="snapscan" --quality-cal=no --format=tiff > $1.tif
Скрипт stiff.bash для автоматизации обнаружения и разогрева сканера:
---
#!/bin/bash
# warming.
sane-find-scanner
sane-find-scanner
scanimage -L
scanimage -L
# to scan.
NAME="$1".tif
if [ -f "$NAME" ]; then
echo "file exists"
else
echo "scan" \""$NAME"\"
scanimage --device="snapscan" --quality-cal=no --format=tiff > "$NAME"
fi
---
Ссылки на внешние источники
Спустя несколько лет, под Debian 6.0 "Squeeze", процедура настройки
сканера не отличается от прежней (для "Etch").
Написано: в феврале 2009 года, дополнено: октябрь 2011 года и март 2012 года.
Опубликовано под лицензией Creative Commons BY-SA 3.0.
Вариант настройки для Мандривы от quicktest@linux.org.ru
См. Re: Написал статью "Подключение сканера Epson Perfection 1270" (Linux.Org.Ru)
Могу добавить вариант для Мандривы:
1. Файл прошивки (firmware) esfw3e.bin скопировать в /usr/share/sane/snapscan
2. В файле /etc/sane.d/snapscan.conf отредактировать и
раскомментировать строку firmware /usr/share/sane/snapscan/esfw3e.bin
и добавить строки
#Epson Perfection 1270
usb 0x04b8 0x0120
3. В файле /etc/sane.d/epson.conf закомментировать все строчки кроме двух:
usb
usb 0x4b8 0x0120
4. В файл /etc/udev/rules.d/70-libsane-rules (вместо 70 может быть другое число)
добавить строки:
#epson 1270
SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="0120", MODE="664", GROUP="scanner"
5. Необязательно, но иногда полезно: перезапустить комп и сканер.
Проверить вывод команд:
sane-find-scanner
scanimage -L
Обе должны видеть сканер (но, почему то, не всегда с первого раза).
6. Запустить xsane.
Убрать галочку "калибровка качества" в окне настроек, иначе xsane зависнет намертво.
Если заблокировать сканирующую головку, то ...
программа сканирования scanimage выдаёт:
[snapscan] Scanner warming up - waiting 9 seconds.
scanimage: sane_start: Error during device I/O
> Заглавная <