Создание сайта, дизайн, web дизайн
Главная Работы Услуги Цены Контакты

 Главная
 Работы
 Услуги
 Цены
 Контакты
 

Данная статья посвящена подключению и настройке сканера в ОС GNU/Linux через USB (Universal Serial Bus).

Подготовка ядра

Т.к. сканер работает через USB, логичным ходом будет включение поддержки USB в ядре:

$ cd /usr/src/linux

# make menuconfig

Нужно включить (модульно или монолитно) следующие параметры:

General setup --->

[*] Support for hot-pluggable devices

(поддержка устройств, которые могут быть подключены/отключены в любой момент времени, а не только перед загрузкой системы)

USB support --->

<*> Support for USB

(поддержка USB вообще)

[*] Preliminary USB device filesystem

(файловая система для USB-устройств)

<*> UHCI (Intel PIIX4, VIA, ...) support

(т.н. Host Controller, который будет связующим между устройствами и компьютером)

<M> USB Scanner support

(поддержка USB-сканеров)

Последнюю опцию рекомендуется подключать модульно тем, кто не часто использует сканер, или тем, кто очень дорожит своими компьютерными ресурсами. При модульном подключении поддержка драйвера будет включаться только при нужде (командой "modprobe scanner").

После проделанных изменений в конфиге ядра:

# make dep

# make bzImage

И если что-то было подключено модульно, то:

# make modules

# make modules_install

Теперь ядро из "/usr/src/linux/arch/i386/boot/bzImage" надо добавить в конфиг загрузчика (для LILO - /etc/lilo.conf; потом перезапустить сам LILO командой "/sbin/lilo").

В /etc/fstab полезно добавить строку:

none /proc/bus/usb usbdevfs defaults 0 0

Теперь USBDEVFS будет при загрузке монтировать в /proc/bus/usb.

Reboot.

Настройка /dev

Файл устройства для USB-сканера создается командой:

# mknod /dev/usbscanner0 c 180 48

(Для второго сканера - "mknod /dev/usbscanner1 c 180 49" и т.д.)

Установка прав для того, чтобы все пользователи могли пользоваться сканером:

# chmod a+rw /dev/usbscanner0

Однако, вполне возможно, что это уже предусмотрено разработчиками Linux-дистрибутива (так, например, в Debian GNU/Linux 3.0), и в каталоге /dev/usb лежат файлы для 16 сканеров:

localhost:~# ls -l /dev/usb/scanner*

crw-rw-rw- 1 root root 180, 48 Мар 15 2002 /dev/usb/scanner0

...

crw-rw-rw- 1 root root 180, 63 Мар 15 2002 /dev/usb/scanner15

...

crw-rw-rw- 1 root root 180, 57 Мар 15 2002 /dev/usb/scanner9

Подключение сканера

После перезагрузки проверяем наличие USB-контроллера:

# lspci |grep USB

00:1f.2 USB Controller: Intel Corp. 82820 820 (Camino 2) Chipset USB (Hub A) (rev 01)

00:1f.4 USB Controller: Intel Corp. 82820 820 (Camino 2) Chipset USB (Hub B) (rev 01)

Если он не найден, то, возможно, UHCI подключен модульно, и поможет команда:

# modprobe usb-uhci

(В "dmesg" появится что-то вроде usb-uhci.c: v1.275:USB Universal Host Controller Interface driver.)

Теперь при включении сканера в консоли должны появиться подобные строки (см. "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

(Про scanner.c см. ниже.)

В /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

...

Если сообщения от scanner.c не появились, то поддержка USB-сканера была включена модульно, загружается он так:

# modprobe scanner

Можно добавить информацию о производителе и модели сканера, если модуль их определять не хочет:

# modprobe vendor=XXXXX product=XXXXX

Для сканеров Epson:

- vendor=0x04b8;

- модели сканеров:

Perfection 636U: product=0x0101

Perfection 610: product=0x0103

Perfection 1200U: product=0x0104

Stylus Scan 2500: product=0x0106

Espression 1600: product=0x0107

Perfection 1640: product=0x010a

Perfection 1240U: product=0x010b

Perfection 640: product=0x010c

Espression 1680: product=0x010e

Perfection 1650: product=0x0110

Perfection 1660: product=0x011e

Perfection 2400: product=0x011b

Perfection 2450: product=0x0112

Значения vendor и product можно также увидеть в /proc/bus/usb/devices и "dmesg" (в строках от usb.c при включении сканера).

Эти данные полезно добавить в /etc/modules.conf:

# echo "options scanner vendor=0x04b8 product=0x011e">>/etc/modules.conf

(X)SANE

Когда сканер нормально распознается системой, можно приступать к работе с ним. Проверим, видит ли SANE:

# sane-find-scanner

...

sane-find-scanner: found USB scanner (vendor = 0x04b8, product = 0x011e) at device /dev/usb/scanner0

Файл устройства для сканера пропишем в конфиг sane. Для этого в конфигурационный файл для сканера от вашего производителя (для Epson - /etc/sane.d/epson.conf) добавить строку "usb /dev/usb/scanner0":

# echo "usb /dev/usb/scanner0">>/etc/sane.d/epson.conf

Где /dev/usb/scanner0 - файл устройства для сканера (он будет показан в выводе "sane-find-scanner").

Все, теперь можно запускать xsane:

$ xsane

И начинать сканировать.




Дмитрий Шурупов http://docs.com.ru/
Состояние воздуха:
Мониторинг загрязнения атмосферы в режиме реального времени
© 2004-2017 LABDESIGN.RU   e-mail: