Для начала установим необходимые пакеты:
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
...
Утилита scanimage поможет убедится в том, что сканер функционирует корректно. Для начала убедимся, что сканер доступен и отображается в списке доступных устройств, выполнив с правами root следующую команду:
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
...
Если вы получили такой-же вывод, то вам необходимо скачать файл
A2Nfw.usb здесь. Это firmware, необходимое для работы сканера. Файл
A2Nfw.usb надо расположить в директории
/usr/share/sane/gt68xx/ с правами доступа
0644, для этого вам понадобятся права
root.
После того как firmware установлено, вывод тестирования сканера в правами 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
Если вы получите пустой вывод, надо посмотреть права доступа в файлу устройства (файл устройства можно узнать из вывода команд 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 располагается в меню "Приложения->Графика->Программа для сканирования изображения". К сканеру также можно организовать доступ по сети, как это сделать можно почитать
здесь.