Установка SANE
Установим необходимые пакеты:
aptitude install libsane sane-utils xsane xsane-common
Настройка сканера
Сканер Mustek BearPaw 2448 TA Plus подключается к компьютеру через USB интерфейс. После подключения сканера к компьютеру, его можно увидеть в списке USB-устройств выполнив в командной строке:
lsusb
... Bus 002 Device 003: ID 055f:021a Mustek Systems, Inc. BearPaw 2448 TA Plus ...
Теперь воспользуемся утилитой sane-find-scanner для поиска сканера и определения его файла устройства:
sane-find-scanner -q
... found USB scanner (vendor=0x055f, product=0x021a [USB Scanner], chip=GT-6816) at libusb:002:003 ...
Если чип определён верно, то SANE сам подготовит соответствующий бэкенд (программный драйвер для API). Иногда его нужно установить отдельно (он указан в таблице поддерживаемых моделей).
Утилита scanimage поможет убедится в том, что сканер функционирует корректно. Для начала убедимся, что сканер доступен и отображается в списке доступных устройств, выполнив следующую команду:
sudo scanimage -L
... device `gt68xx:libusb:002:003' is a Mustek BearPaw 2448 TA Plus flatbed scanner ...
Установка файла прошивки
Теперь надо выполнить тестирование сканера, выполнив в командной строке:
sudo scanimage --test -d 'gt68xx:libusb:002:003'
... [gt68xx] Couldn't open firmware file (`/usr/share/sane/gt68xx/A2Nfw.usb'): No such file or directory scanimage: open of device gt68xx:libusb:002:003 failed: Invalid argument ...
Операция завершилась с ошибкой, так как SANE не смог самостоятельно установить нужную прошивку для сканера (в большинстве случаев это именно так). Необходимо скачать нужный файл прошивки, указанный для соответствующей модели сканера в таблице на сайте SANE. Например, для сканера Mustek BearPaw 2448 TA Plus файл будет называться A2Nfw.usb. Его надо расположить в директории /usr/share/sane/gt68xx/ (здесь gt68xx нужно заменить на имя вашего бэкенда). Файлу прошивки нужно дать права 0644:
chmod 0644 /usr/share/sane/gt68xx/A2Nfw.usb
После того, как прошивка установлена, вывод тестирования сканера в правами root выглядит следующим образом:
sudo scanimage --test -d 'gt68xx:libusb:002:003'
... [gt68xx] Please wait for lamp warm-up scanimage: scanning image of size 2555x3514 pixels at 8 bits/pixel scanimage: acquiring gray frame, 8 bits/sample scanimage: reading one scanline, 2555 bytes... PASS scanimage: reading one byte... PASS scanimage: stepped read, 2 bytes... PASS scanimage: stepped read, 4 bytes... PASS scanimage: stepped read, 8 bytes... PASS scanimage: stepped read, 16 bytes... PASS scanimage: stepped read, 32 bytes... PASS scanimage: stepped read, 64 bytes... PASS scanimage: stepped read, 128 bytes... PASS scanimage: stepped read, 256 bytes... PASS scanimage: stepped read, 512 bytes... PASS scanimage: stepped read, 1024 bytes... PASS scanimage: stepped read, 2048 bytes... PASS scanimage: stepped read, 4096 bytes... PASS scanimage: stepped read, 4095 bytes... PASS scanimage: stepped read, 2047 bytes... PASS scanimage: stepped read, 1023 bytes... PASS scanimage: stepped read, 511 bytes... PASS scanimage: stepped read, 255 bytes... PASS scanimage: stepped read, 127 bytes... PASS scanimage: stepped read, 63 bytes... PASS scanimage: stepped read, 31 bytes... PASS scanimage: stepped read, 15 bytes... PASS scanimage: stepped read, 7 bytes... PASS scanimage: stepped read, 3 bytes... PASS ...
Проверка работы с правами пользователя
Теперь надо воспользоваться утилитой scanimage с правами обычного пользователя, выполнив в командной строке:
scanimage -L
Если вывод такой же, как с правами root, то сканер настроен верно и можно начинать работать с ним.
Настройка прав доступа к файлу устройства
Если вы получите пустой вывод, надо посмотреть права доступа к файлу устройства (файл устройства можно узнать из вывода команд lsusb и sane-find-scanner). В нашем случае права к файлу устройства следующие:
ls -la /dev/bus/usb/002/003
... crw-rw-r-- 1 root root 189, 130 2009-05-24 15:43 /dev/bus/usb/002/003 ...
Файлы устройств в Linux динамически создаются при помощи утилиты udev по правилам описанным в файлах, расположенных в директории /etc/udev/rules.d. Для того, чтобы файл устройства сканера создавался с корректными правами доступа, необходимо в директории /etc/udev/rules.d создать файл 45-libsane.rules со следующим содержанием:
ACTION!="add", SUBSYSTEM!="usb", DRIVER!="usb", GOTO="libsane_rules_end"
#Mustek Systems, Inc. BearPaw 2448 TA Plus
ATTR{idVendor}=="055f", ATTR{idProduct}=="021a", ATTR{product}=="USB Scanner", MODE="664", GROUP="scanner"
LABEL="libsane_rules_end"
Атрибуты для написания правила можно взять из вывода команды udevinfo следующего вида:
udevinfo -a -n /dev/bus/usb/002/003
Как писать правила для udev можно почитать здесь. После того, как правила прописаны, необходимо пререзагрузить компьютер и убедиться, что права к файлу устройства установленны корректно:
ls -la /dev/bus/usb/002/003
... crw-rw-r-- 1 root scanner 189, 130 2009-05-24 16:26 /dev/bus/usb/002/003 ...
Настройка прав пользователя
Теперь надо внести пользователя в группу scanner. Это можно сделать следующим образом:
sudo usermod -aG scanner
После вненсения пользователя в группу надо перелогинится. Теперь вывод команды scanimage -L с правами пользователя должен быть аналогичным выводу этой команды с правами root.
Проверка работы сканера
После того как сканер подключен и протестирован отсканировать документ можно при помощи программы xsane, которая в Ubuntu располагается в меню "Приложения->Графика->Программа для сканирования изображения". К сканеру также можно организовать доступ по сети, как это сделать можно почитать здесь.