В FreeBSD доступ к сканерам обеспечивается программой SANE (Scanner Access Now Easy), обеспечивающей универсальный интерфейс (API) и доступной в коллекции портов FreeBSD. Для общения со сканерами SANE использует некоторые драйвера устройств FreeBSD.
FreeBSD поддерживает сканеры с интерфейсом как SCSI, так и USB. Убедитесь, что ваш сканер поддерживается SANE перед тем, как приступить к конфигурации. Для SANE существует список поддерживаемых устройств где находится информация о поддержке сканера и статусе этой поддержки. Кроме того, страница справочника uscanner(4) также перечисляет поддерживаемые устройства.
Как уже отмечалось, поддерживаются как SCSI, так и USB сканеры. В зависимости от интерфейса вашего сканера требуется поддержка разных драйверов устройств.
Стандартное ядро GENERIC
включает в себя
драйвера, необходимые для поддержки USB сканеров. Если вы
компилируете собственное ядро, убедитесь, что в его конфигурации
присутствуют строки
device usb device uhci device ohci device uscanner
В зависимости от чипсета USB, встроенного в вашу материнскую
плату, потребуется лишь один из драйверов device
uhci
или device ohci
, однако, наличие
обеих строк в конфигурации ядра никому не повредит.
Если вы не хотите перестраивать ядро, и при этом ваше ядро не
является стандартным (GENERIC
), вы можете
загрузить модуль драйвера поддержки сканеров uscanner(4)
при помощи команды kldload(8):
#
kldload uscanner
Для автоматической загрузки модуля при старте системы добавьте
в файл /boot/loader.conf
строку
uscanner_load="YES"
После перезагрузки с новым ядром или загрузки модуля подключите ваш USB сканер. В буфере системных сообщений (dmesg(8)) должна появиться строка об обнаружении сканера:
uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2
В данном случае сканер будет использовать устройство
/dev/uscanner0
.
Если ваш сканер имеет интерфейс SCSI, важно знать, к какому
контроллеру он подключен. В зависимости от контроллера потребуются
различные драйвера в файле конфигурации ядра. Стандартное ядро
GENERIC
поддерживает большинство
распространенных SCSI-контроллеров. Внимательно прочитайте файл
NOTES
и добавьте необходимые строки в файл
конфигурации вашего ядра. Помимо строки для драйвера адаптера,
вам потребуются следующие строки:
device scbus device pass
После установки и загрузки нового ядра, в буфере системных сообщений должны появиться строки о вашем сканере, например:
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers
Если сканер не был включен в момент загрузки, его можно принудительно опознать, выполнив сканирование SCSI шины при помощи команды camcontrol(8):
#
camcontrol rescan all
Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful
После этого сканер должен появиться в списке устройств:
#
camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
Более подробная информация о устройствах SCSI доступна на страницах справочника scsi(4) и camcontrol(8).
Система SANE состоит из двух частей: аппаратной поддержки (backend, graphics/sane-backends) и программной поддержки (frontend, graphics/sane-frontends). Первая часть обеспечивает собственно доступ к сканеру. Список поддерживаемых устройств SANE содержит информацию о необходимом вам аппаратном модуле. Вторая часть обеспечивает графический интерфейс для сканирования (xscanimage).
В первую очередь следует установить порт или пакет graphics/sane-backends, после чего при
помощи команды sane-find-scanner
проверить
поддержку сканера системой SANE:
#
sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
В выводе должны присутствовать интерфейс сканера и имя используемого устройства. Производитель и модель сканера могут отсутствовать: это нормально.
Некоторым USB сканерам может потребоваться загрузка прошивки. Подробности смотрите в страницах справочника драйвера сканера, sane-find-scanner(1) и sane(7).
Теперь необходимо убедиться, что сканер опознан программой
графического интерфейса. В состав системы
SANE входит утилита scanimage(1),
позволяющая работать со сканером из командной строки. Опция
-L
используется для показа информации
о сканере:
#
scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
Отсутствие сообщений или сообщение об отсутствии устройств
означает, что утилита scanimage(1) не смогла идентифицировать
сканер. В этом случае вам потребуется отредактировать файл
конфигурации аппаратного модуля и указать устройство, используемое
сканером. Все файлы настройки находятся в каталоге
/usr/local/etc/sane.d/
.
Такие проблемы присущи некоторым моделям USB сканеров.
Например, в случае USB сканера, описанного в Раздел 8.6.2.1, <sane-find-scanner
выдаст следующую информацию:
#
sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0
Сканер обнаружен корректно, он использует интерфейс USB
и доступен через устройство /dev/uscanner0
.
Теперь попробуем идентифицировать его:
#
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).
Поскольку сканер не идентифицирован, нам потребуется изменить
файл конфигурации
/usr/local/etc/sane.d/epson.conf
.
В нашем примере использован сканер EPSON
Perfection(R) 1650, так что
мы знаем, что будет использоваться драйвер epson
.
Не забудьте прочитать комментарии в файле конфигурации. Требуемые
изменения весьма просты: закомментируйте все строки, описывающие
интерфейсы, не соответствующие интерфейсу вашего сканера (в нашем
случае, все строки, начинающиеся со scsi
: наш
сканер использует интерфейс USB), и добавьте в конец файла строку,
содержащую интерфейс и имя использованного устройства.
Мы добавим строку
usb /dev/uscanner0
Пожалуйста, прочтите комментарии в файле конфигурации, а также страницы справочника для более полной информации. Теперь мы можем проверить, что наш сканер опознан:
#
scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner
Наш USB сканер опознан. Не столь важно, что имя и номер модели
не совпадают, главное, что используются правильные имя устройства
и драйвер: `epson:/dev/uscanner0'
.
После того как команда scanimage -L
опознала
сканер, конфигурация завершена. Все готово к сканированию.
Хотя утилита scanimage(1) позволяет производить сканирование из командной строки, как правило, для сканирования предпочтительнее использовать графический интерфейс. Для этого в состав SANE входит простая, но эффективная утилита xscanimage (graphics/sane-frontends).
Другой популярной программой графического интерфейса к сканеру является Xsane (graphics/xsane). Эта программа поддерживает такие расширенные возможности, как разные режимы сканирования (фотокопия, факс и т.п.), цветокоррекцию, потоковое сканирование и другие. Оба приложения пригодны для использования в качестве плагинов сканирования для GIMP.
Все описанные операции выполнялись нами с привилегиями
суперпользователя (root
). Вам может
потребоваться дать доступ к сканеру другим пользователям.
Для этого необходимо разрешить доступ на чтение и запись
к файлу устройства, обслуживающему сканер. В нашем примере
USB сканер использует устройство /dev/uscanner0
,
принадлежащее группе operator
.
Добавление пользователя joe
в группу
operator
разрешит ему использовать сканер:
#
pw groupmod operator -m
joe
За подробностями обращайтесь к странице справочника pw(8).
Вам также потребуется установить нужные права доступа (0660 или 0664)
к устройству /dev/uscanner0
, поскольку по
умолчанию группа operator
может лишь
читать из него. Это достигается добавлением следующей строки
в файл /etc/devfs.rules
:
[system=5] add path uscanner0 mode 660
Затем добавьте в файл конфигурации системы
/etc/rc.conf
такую строку (после чего
перезагрузите систему):
devfs_system_ruleset="system"
Подробную информацию о правах на файлы устройств вы найдете на странице справочника devfs(8).
Разумеется, по соображениям безопасности, вы должны как следует
подумать, прежде чем добавлять пользователя в другие группы,
в особенности в группу operator
.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.