Подключение и настройка сканера
Поддержка сканеров в Linux
В MOPSLinux поддержка сканеров обеспечивается при помощи общего программного интерфейса под названием SANE (Scanner Access Now Easy — «доступ к сканерам теперь прост»), который обеспечивает доступ к драйверам (backends) для сканеров.
SANE представляет собой универсальный интерфейс между сканером и программой сканирования и предоставляет возможность использовать различные программы для сканирования или эксплуатировать одновременно несколько сканеров через одинаковый интерфейс, что, важно при наличии широкого перечня программ сканирования от различных производителей сканеров.
В состав SANE входят три программы сканирования:
scanimage— консольная утилита, для первоначальной настройки сканера и для создания различных сценариев;
sane-find-scanner— программа конфигурирования и настройки сканера;
saned— сетевой сервер сканирования, обеспечивающий доступ к сканеру в сети.
Для настройки сканера в системе вначале нужно убедиться в том, что он поддерживается SANE. Информацию об этом можно найти в Internet на сайте разработчиков пакета (http://www.sane-project.org/sane-mfgs.html).
Настройка системы сканирования
Общие сведения по интерфейсам сканеров
Сканеры могут подключаться к компьютерам по следующим типовым интерфейсам: параллельный, последовательный, USB, SCSI или IEEE-1394. Существуют также сканеры, которые имеют свой оригинальный интерфейс и соответствующую интерфейсную плату, которая устанавливается в компьютер. Подключение и настройку встроенного устройства, выполняющего функции сканера, принтера и/или факса, можно выполнить по приведенным ниже рекомендациям и используя соответствующий интерфейс как для обычного сканера. Обладателям офисной техники фирмы Hewlett-Packard желательно будет обратиться к сайту проекта «Драйверы под ОС Linux для офисной техники» (the HP Officejet Linux Driver project site) в сети Internet на http://hpoj.sourceforge.net, где детально описывается использование выпускаемых фирмой устройств при работе под ОС Linux.
SCSI-сканер управляется контроллером SCSI. Список контроллеров SCSI поддерживаемых в Linux можно найти в сети Internet на http://tldp.org/HOWTO/Hardware-HOWTO/scsi.html. Если контроллер поставлялся в комплекте со сканером, существует вероятность, того, что он не поддерживается системой или поддерживается частично, поскольку может не выполнять функции полноценного контроллера SCSI.
При возникновении трудностей во время конфигурирования SCSI-сканера следует обратиться к руководству man sane-scsi.
При использовании USB-сканера особых проблем возникнуть не должно, поскольку этот интерфейс поддерживается практически во всех современных Linux-системах.
Сканеры с параллельными портами можно использовать, если есть работающий с ними буфер, однако, если устройство имеет функционирующий буфер и интерфейс USB, то настоятельно рекомендуется использовать порт USB, так как его значительно легче конфигурировать.
Интерфейс IEEE 1394 (Firewire™, i.Link™) поддерживается в Linux, начиная с серии ядра 2.4-. Для работы сканерам с интерфейсом IEEE 1394 в компьютере необходимо наличие PCI-адаптера IEEE 1394 или же наличие порта IEEE 1394 в системной плате, а также поддержка IEEE 1394 в ядре или в качестве подгружаемого модуля. При этом следует проверить поддержку устройств интерфейсом SANE и прочитать руководство по использованию устройства.
Поддержка сканеров
Поддержка интерфейса SCSI
При работе с интерфейсом SCSI, кроме поддержки определенного SCSI адаптера, потребуется также поддержка общих SCSI устройств. Эти устройства обычно называются /dev/sg0, /dev/sg1.... Для поддержки конкретного устройства SCSI необходимо загрузить соответствующий модуль на правах пользователя root:
# modprobe CARD_MODULE_NAME
Желательно создать символическую ссылку /dev/scanner на существующее устройство. Например, если сканер соединен с первой шиной scsi (scsi-bus) устройства SCSI, необходимо связать его с соответствующим устройством:
# ln -s /dev/sg0 /dev/scanner
Поддержка интерфейса USB
Чтобы реализовать поддержку USB-сканеров, ядро должно поддерживать USB-подсистему с использованием протоколов usb-ohci или usb-ehci. USB сканерам соответствуют файлы устройств /dev/usb/scanner*.
При включении сканера вывод команды dmesg должен содержать подобные строки:
hub.c: USB new device connect on bus1/1, assigned device number 2 usb.c: USB device 2 (vend/prod 0x4b8/0x11e) is not claimed by any active driver. scanner.c: probe_scanner: User specified USB scanner -- Vendor:Product - 4b8:11e scanner.c: 0.4.6:USB Scanner Driver
В файле /proc/bus/usb/devices появится запись о подключенном устройстве:
# cat /proc/bus/usb/devices ... T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1 P: Vendor=04b8 ProdID=011e Rev= 1.00 S: Manufacturer=EPSON S: Product=EPSON Scanner C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms ...
Информацию о производителе (Vendor) и модели сканера (ProdID) полезно добавить в файл /etc/modules.conf:
# echo "options scanner vendor=0x04b8 product=0x011e" >> /etc/modules.conf
Поддержка параллельного порта
Поддержка параллельного порта в ядре может быть организована статически или в качестве модуля. Чтобы убедиться, что модуль parport (параллельный порт) загружен, необходимо проверить файл /var/log/dmesg или воспользоваться командой lsmod. При использовании dmesg | less, помимо прочего, должна появиться следующая запись:
Mar 3 08:00:25 K7 kernel: parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE] Mar 3 08:00:25 K7 kernel: parport0: irq 7 detected
Для поддержки параллельного порта необходимо также присвоить права на выполнение файлу /etc/rc.d/rc.serial
chmod +x /etc/rc.d/rc.serial
И перезагрузить компьютер.
Параллельный порт желательно использовать в режиме "EPP" или, в качестве альтернативы, ECP/EPP. В «двунаправленном» ("bidirectional", т.е. "BPP" или "PS/2") режиме порт работать будет, хотя и значительно медленнее. «Однонаправленный» ("unidirectional") режим для сканирования не используется. Все указанные настройки доступны в меню BIOS.
Группы и права
Пользователю удобно знать, что его учетная запись может получить доступ к устройству. Самым безопасным способом осуществить это, является добавление возможности доступа к сканеру определенной группе. Так, члены группы 'scanner' имеют право доступа к сканеру. Например, добавить пользователя 'jhs' в группу ‘scanner’ можно следующим образом:
# adduser jhs scanner
SANE
Последним шагом реализации доступа к сканеру является программа (backend) SANE и соответствующий интерфейс SANE (frontend). Первая представляет собой драйверы и средства доступа низкого уровня, которые взаимодействуют со сканером, а интерфейс – это графические приложения для работы со сканером в среде X. Для доступа к сканеру требуется только выходной буфер, хотя и интерфейс настоятельно рекомендуется для управления изображениями, а также для возможности их просмотра в оконной среде перед выводом на печать. Конфигурирование SANE Работа по сети
Чтобы сделать сканер доступным для удаленного компьютера по сети, необходимо выполнить следующие действия:
- отредактировать файл saned.conf в конфигурационном каталоге сервера (компьютер со сканером) /etc/sane.d. Обычно в файле есть запись 'scan-client.somedomain.firm', которую следует заменить именем хоста клиента, для которого необходимо сделать сканер доступным. При желании можно использовать IP-адрес клиента;
- на сервере, кроме демона inetd, также следует запустить демон saned. Чтобы уточнить, какие изменения необходимо внести в файл inetd.conf, необходимо обратиться к руководству man saned;
- в файл /etc/services добавить порт 6566:
sane 6566/tcp
- в файл net.conf клиента (компьютер без сканера) добавить запись об имени серверного компьютера, т.е. 'scan-server.somedomain.firm'.
- убедиться, что в файле dll.conf клиента не закомментирована запись «net».
Использование SANE с устройством Video4linux
Устройства Video4linux (видео для Linux) включают в себя веб-камеры (webcams), стационарные камеры (still cameras) и устройства фиксации изображения (video capture devices). SANE также позволяет получить к ним доступ. Для этого файл v4l.conf необходимо поместить в конфигурационный каталог (/etc/sane.d). Содержание файла будет примерно следующим:
# In order to use the v4linux backend you have to give the device # You can enable multiple lines if # you really have multible [sic] v4l devices. # /dev/bttv0 /dev/video0 /dev/video1 /dev/video2 /dev/video3
В первой строке файла указано, что для использования средств v4linux необходимо указать имя устройства. Помните об этом, начиная тестирование сканера. При этом необходимо убедиться, что устройство, в качестве которого ядро идентифицирует камеру или другие устройства v4l, не закомментированы (т.е. впереди нет символа #). Естественно все эти действия необходимо выполнять на правах root. К тому же убедитесь, что в файле dll.conf не закомментирована строка 'v4l'.
Тестирование сканера
Если сканер подключен к компьютеру через соответствующий интерфейс и включен, то можно приступить к тестированию оборудования. При использовании сканера SCSI или USB в командной строке необходимо ввести следующую команду, которая должна найти и идентифицировать сканер из списка возможных устройств:
$ sane-find-scanner ... sane-find-scanner: found USB scanner (vendor = 0x04b8, product = 0x011e) at device /dev/usb/scanner0
Если сканер не обнаруживается, то на правах root можно указать команду scanimage --list-devices, которая выдаст информацию обо всех подключенных устройствах. Например, в результате можно получить следующую информацию:
device `v4l:/dev/video0' is a Noname BT878 video (Hauppauge (bt878)) virtual device device `epson:/dev/scanner0' is a Epson Perfection1240 flatbed scanner
Обратите внимание на информацию 'backend:device'; это будет имя устройства для получения доступа к сканеру из командной строки.
Файл устройства для сканера рекомендуется прописать в конфигурационный файл sane. Для этого в конфигурационный файл для сканера от соответсвующего производителя (для Epson - /etc/sane.d/epson.conf) необходимо добавить строку "usb /dev/usb/scanner0":
# echo "usb /dev/usb/scanner0">>/etc/sane.d/epson.conf
где /dev/usb/scanner0 - файл устройства для сканера.
Теперь необходимо проверить способность сканера захватывать изображение. Можно использовать одну из утилит (интерфейсов), или же работать из командной строки следующим образом:
$ scanimage -d backend:/dev/scanner --format pnm > outfile.pnm
Таким образом, например, при использовании модулей Epson необходимо указать:
$ scanimage -d epson:/dev/scanner --format pnm > outfile.pnm
Для выбора одного из нескольких сканеров потребуется лишь опция -d. Например, если есть сканер Epson и сканер Mustek, достаточно указать "-d epson" или "-d mustek". Указание полного пути необходимо только тогда, когда есть несколько сканеров с одним названием. В поле /dev/scanner должно быть указано сконфигурированное сканирующее устройство (например, указать /dev/video0 в случае использования устройства v4l или же libusb, как было показано в примере sane-find-scanner). Значение --format может быть pnm или tiff (по умолчанию pnm). Формат '.pnm' означает 'portable anymap'. Это стандартный формат графических файлов в Linux, который можно преобразовать к любому другому формату изображений с помощью Imagemagick (см. http://www.imagemagick.org/script/index.php) или netpbm (см. http://netpbm.sourceforge.net/).
Интерфейсы (frontends) SANE
MOPSLinux предоставляет следующие графические интерфейсы SANE:
- xsane- графический интерфейс на основе GTK+, позволяет сохранять изображение в разнличных форматах, а также легко взаимодействует с программой редактирования изображений GIMP.
- Kooka– программа для среды KDE, обладает интерфейсом, который легко сочетается с другими приложениями KDE и может значительно облегчить работу с большим количеством изображений.
Более полный список интерфейсов SANE приводится на странице интерфейсов SANE (the SANE frontends page) по адресу: