Все о Linux. LinuxRSP.Ru
Альт Линукс СПТ 6.0 Сертификат ФСТЭК

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

В GIMP наконец-то появилась обработка с точностью 16 и 32 разряда на канал

В одном окне: GIMP 2.8

Релиз OpenBSD 5.1

HTML-редактор: BlueGriffon 1.5

Релиз Xfce 4.10

Команда Chromium представила кластер для автоматизации выявления уязвимостей

В Microsoft Office 15 будет обеспечена поддержка формата ODF 1.2

Анонсирован новый свободный анимационный фильм Tube

Обновление ядра: Linux 3.0.29, 3.2.16, 3.3.3

Представлен OpenSSH 6.0

Релиз графического редактора Pinta 1.2, претендующего на роль аналога Paint.NET

Вышел Firefox 12

Google прекращает поддержку Linux-версии приложения Picasa

Эмулятор приставок: Mednafen 0.9.21-wip

Линус Торвальдс получил премию Millennium Technology Prize 2012

Canonical не заинтересована в участии в разработке ядра Linux

Распределенные вычисления: BOINC 7.0

Google

 Новые статьи :

Передача снапшота ZFS по сети

Правила хорошего тона: SSH

Некоторые рассуждения о защите от ddos на примере защиты от SSL denial of service attack

Быстрый проброс портов на шлюзе во внутреннюю сеть или на другой хост. Быстро NAT'им порты. rinetd.

NAT'им отдельные порты или "а что делать, если мой веб-сервер внезапно переехал на другую машину". Проброс портов в локалке на шлюзе наружу.

Как справляться с запланированной недоступностью веб-сайта

Архитектура Google 2011

Мониторинг Nginx с помощью MRTG

Решение проблем при использовании "1c предприятие" 8.2 в Linux

25 правил .htaccess, которые должен знать каждый web-разработчик

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Краткое руководство по GNOME Shell в Ubuntu 11.10

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки

   Дистрибутивы и атрибутика



DeveloperWorks Россия





Rambler's Top100


 
 

Подключение USB-сканера в Linux

Данная статья посвящена подключению и настройке сканера в ОС 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

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

Дмитрий Шурупов aka SHuRuP оригинал


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2012 LinuxRSP


Реклама: