Fedora Core 4.

Вначале подключался сканер Epson Perfection V100. Вспоминая как пробовал подключить Mustek Bear Paw 2400 TA Pro. (кстати так и не получилось) испытывал огромную тоску. Однако. Попал на страницу

, выяснилось есть драйверы iscan. Нашел, скачал , установил

# rpm -ihv iscan-2.3.0-1.c2.i386.rpm

# iscan-plugin-gt-s600-2.0.0-1.c2.i386.rpm



и все сразу заработало :) да еще и от имени простого пользователя.

$sane-find-scaner

сработал

$scanimage -L

сработал

$xsane

сработал

в gimp идем в

Расш. - Acquire Image — Scanning (iscan)...

тоже заработало сразу. Вобщем сказка а не установка сканера.

Далее подключался сканер Epson Perfection V100 в Debian.

1. download from http://www.avasys.jp/english/linux_e/dl_scan.html

iscan_2.19.2-1_i386.deb
iscan-plugin-gt-s600_2.1.0-2_i386.deb
fix-udev-rules.sh

2. #./fix-udev-rules.sh
#iscan_2.19.2-1_i386.deb
#iscan-plugin-gt-s600_2.1.0-2_i386.deb


3. $addgroup $USER scanner

4. logout/login

5. #apt-get install sane

#apt-get install sane-utils

#apt-get install xsane

#apt-get install gimp2.0-quiteinsane


6. gimp - file - create - QuiteInsane

or

gimp - file - xsane

Вообще при подключении сканера нужно чтобы успешно выполнились следующие этапы:

USB сканер

#cat /proc/bus/usb/devices

в списке должно присутствовать устройство класса USB Scanner



SCSI сканер

#lspci

в списке устройств должен быть scsi контроллер к которому сканер подсоединен, также в /proc/scsi/scsi должен присутствовать название сканера



#sane-find-scanner

#scanimage -L

#xsane (можно риснуть от рута но необязательно)

а потом тоже самое от имени простого пользователя.





Далее был сканер Umax Astra 2100S в Fedora Core.

Это scsi сканер. В комплекте со сканером был scsi pci контроллер через который сканер подсоединялся к компу.

Выполнил

#/sbin/lspci

сканера в списке нет но есть scsi контроллер

В Linux scsi контроллер опрелелялся как



00:0a.0 SCSI storage controller: Advanced System Products, Inc ABP940-U / ABP960-U (rev 03)


далее выяснилось что в /proc/scsi/scsi должна быть инфо о сканере подсоединенном к контроллеру. Но такого каталога не было вообще. Дальше выяснилось что нужна команда

#modprobe sg

SCSI sussystem initialized

появился /proc/scsi/scsi

потом выяснилось что нужна еще команда

#modprobe advansys

теперь

#cat /proc/scsi/scsi

выдал

Attached devices:
Host: scsi0 Channel: 00 Id: 05 Lun: 00
Vendor: UMAX Model: Astra 2100S Rev: V1.0
Type: Scanner ANSI SCSI revision: 02



далее

#sane-find-scaner

found SCSI scanner "UMAX Astra 2100S V1.0" at /dev/sg0
# Your SCSI scanner was detected. It may or may not be supported by SANE. Try
# scanimage -L and read the backend's manpage.


Далее

#scanimage -L

device `umax:/dev/sg0' is a UMAX Astra 2100S flatbed scanner

далее пробуем от имени простого пользователя

$sane-find-scanner

сканер не обнаружен

но это естественно, теперь лезем в /dev/ и меняем права на /dev/sdg0

#chmod 666 ./dev/sdg0

(эт не совсем хорошо, но на скорую руку пойдет)

повторяем

$sane-find-scanner

found SCSI scanner "UMAX Astra 2100S V1.0" at /dev/sg0
# Your SCSI scanner was detected. It may or may not be supported by SANE. Try
# scanimage -L and read the backend's manpage.
Порядок.

$scanimage -L

device `umax:/dev/sg0' is a UMAX Astra 2100S flatbed scanner

порядок

$xsane

нажимаем на сканировать сканер дергается моргает и на этом все.. ок. оставляем его пока. Кстати заставить работать этот сканер под windows тоже непросто.



Далее был сканер Mustek BearPaw 2448 PlusII в Fedora Core.

$cat /proc/bus/usb/devices

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=055f ProdID=021a Rev= 1.00
S: Product=USB Scanner
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
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



$ sane-find-scanner

found USB scanner (vendor=0x055f, product=0x021a [USB Scanner], chip=GT-6816) at libusb:001:002
# Your USB scanner was (probably) detected.



$ scanimage -L
device `gt68xx:libusb:001:002' is a Mustek BearPaw 2448 TA Plus flatbed scanner



$xsane

вначале не сработало. Потом смотрю в консоли откуда запускался xsane надпись

мол не могу найти прошивку в

/usr/share/sane/gt68xx/a2nwf.usb или

/usr/share/sane/gt68xx/A2NFw.usb

скачал драйвер для windows для Mustek BearPaw 2448 Plus так как для Mustek BearPaw 2448 Plus II не было. Опробовал в windows. Работает. (где то встречал если не ту прошивку подсунуть сканеру то можно выкидывать будет). Прошивка лежала в C:\Windows\Temp\Winxp\ A2NFw.usb

скопировал ее в /usr/share/sane/gt68xx.

#chmod 644 ./A2NFw.usb

но xsane опять написал что не может найти прошивку. Переименовал файл в a2nwf.usb и заработало.

сканирование заработало, только вначале после нажатия сканирования был затык как у предыдущего. Нажимаем сканировать в xsane лампочка моргает в сканере и пауза. А потом в консоли откуда xsane запускал смотрю надпись "прогрев лампы". После паузы прогрева сканирование прошло успешно :).

а вот scsi сканер не лампу прогревает а что то другое пока неизвестно.



Далее был сканер Mustek BearPaw 2448 PlusII в Debian.

#apt-get install sane

#apt-get install sane-utils

#apt-get install xsane

устанавливаем плагин для gimp чтобы сканировать прям из него.

#apt-get install gimp2.0-quiteinsane

добавляем пользователя в группу scanner

#addgroup user scanner

не забываем делать логоут/логин чтоб изменение с группами вступило в силу.

Аналогично предыдущему примеру копируем прошивку в /usr/share/sane/gt68xx

это все. Никакого трахое** с хотплаг в дебиан нет. Пакета Hotplug вообше нет в squeeze.

Лирическое отступление про дебиан. Люди человеки бросайте эту федору нах*** и перходите на дебиан. И ужас обновления того или иного приложения уйдет как страшный сон. Вся эта хрень с кучей репозитариев 2-3-4-28 core extras update болььше не посетит вас. Не способность разрешить зависимости yum потому что вы какую то ветвь недоподключили и невозможность спокойно обновить систему полностью — вся эта х*** присуая федора больше не посетит вас. Если б я только знал это раньше. Весь этот rpm -hell. В дебиан приложения работают гораздо быстрее и качественеее это видно сразу невооруженным глазом. Хочешь апдейтнуть опенофис-пожалуйса нет проблем. Также например в опенофис что в федора очень проблематично открыаются docx. Он их жует жует всю систему подвешивает а в итогезачастую прложение вываливается и закрывается. В дебиан такой х*** нет . Докиксы открываются просто влет. Наконецто можно рабоатать более менее комфортно в опера и тем более в таком тормозе как файрфокс. Более менее сносно а по сравнению с федора просто супер открывается куча вкладок и при этом не фризится система. В общем дебиан по сравнению с федора с точки зрения простоты обновления приложений употребления оперативной памяти и скорости работы приложений просто божия благодать. Конец лирического отступления.



Кое какие полезные источники.

Управление аппаратными средствами в Linux с помощью udev (udev device driver hardware linux usb scanner)

Sane +SCSI

Sane и devfs (хотя ее у меня нет)

описание опыта работы со сканерами Mustek + Sane

про udev по крайне мере не так бесполезно как обычно бывает в man, а что то можно и понять можно прочитать в /usr/share/doc/udev. там несколько html не связанных файлов (то есть не протыкав во всех подпапках можно и пропустить отдельную интересную статью). вообще в /usr/share/doc гораздо чаще хоть с какойто пользой можно читать чем в man.

=========================================================

далее про преодоление часто возникающей ситуации когда сканер видится и работает только под root. Конечно это г**** воникает только в федора а в debian такой проблемы нет.

причина этого в том что /proc/bus/sys/usb/001/005 или что то подобное имеет permissions root, root, 600 то есть записывать в него может только root а нужно чтоб и пользователь тоже имел право на запись. (файл который появляется после подключения сканера и через который с ним идет связь). можно конечно поменять в рукопашную но так придется делать после каждого включения сканера или перезагрузки да и само число будет меняться постоянно.

чтобы этого не делать вручную на помощь приходит hotplug.

проверяем установлен ли он

# rpm -qa | grep hotplug

hotplug-2004_09_23-7

#

теперь в папку /etc/hotplug/usb нужно кое чего прописать. по идее этого делать вообще то не нужно так как пакет sane-backends-1.0.15-9.i386.rpm устанавливает в /etc/hotplug/usb "необходимые файлы".

-rw-r--r-- 1 root root 48085 Мар 2 2005 /etc/hotplug/usb/libsane.usermap

-rwxr-xr-x 1 root root 1853 Мар 2 2005 /etc/hotplug/usb/libusbscanner

но они реально не работают. заглянув внутрь видим в комментариях что необходимо выполнение кучи условий: pam console, console.lock, добавление пользователя в группу scanner итд .

а вот в пакете iscan*rpm (драйвер для сканеров epson) тоже есть файлики которые прописываются в /etc/hotplug. механизм используемый в них простой ясный и эффективный - меняет пермишнс на /proc/bus/usb/001/005 на 666. и работает для любых сканеров а не только epson .

вот файлы. немного модифицированные (убраны комментарии итп)

-rwxr-xr-x 1 root root 1761 Янв 25 15:14 /etc/hotplug/usb/iscan-device

#!/bin/sh

DEFAULT_OWNER=root
DEFAULT_GROUP=root
DEFAULT_PERMS=0666


if [ "$ACTION" == add -a "$TYPE" == "usb" ]; then
chown $DEFAULT_OWNER:$DEFAULT_GROUP "$DEVICE"
chmod $DEFAULT_PERMS "$DEVICE"
fi


-rw-r--r-- 1 root root 1591 Янв 25 15:14 /etc/hotplug/usb/iscan.usermap

(числа разделяются пробелами, в файле две строки первая с Mustek, вторая длиннющяя с iscan-device)

# Mustek | BearPaw 2400TA PRO
iscan-device 0x0003 0x055f 0x0400 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000


во втором файле /etc/hotplug/usb/iscan.usermap нужно только заменить 0x055f на
VendorID и 0x0400 на ProdID кокретного сканера. как их определить. несколько способов.

(1)

#cat /proc/bus/usb/devices | grep --color=auto -A 5 -B 4 -i scanner



T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 7 Spd=480 MxCh= 0

D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1

P: Vendor=055f ProdID=0400 Rev= 0.00

S: Manufacturer=USB Scanner

S: Product=USB Scanner

C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA

I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

E: Ad=82(I) Atr=03(Int.) MxPS= 1 Ivl=500us

#

(2)

# lsusb | grep -i mustek

Bus 001 Device 007: ID 055f:0400 Mustek Systems, Inc. BearPaw 2400 TA Pro

#

lsusb входит в пакет usbutils*rpm. чтобы его установвить #yum install usbutils

(3)

# sane-find-scanner

found USB scanner (vendor=0x055f [USB Scanner], product=0x0400 [USB Scanner]) at libusb:001:007

#



в итоге когда сканер подключается то файл отвечающий за сканер /proc/bus/usb/001/007 получает пермишнс 666. то есть в него имеет право читать и записывать пользователь. а значит xsane будет работать с правами пользователя.



далее устанавливался сканер входящий в многофункциональник HP LaserJet 1120 MFP. драйвер для него HPLIP. этот драйвер тоже записывает свои файлы в /etc/hotplug/usb но они тоже замудреные и реально не работают. файлы от iscan выручили и в этот раз.



Сайт управляется системой uCoz