nixp.ru v3.0

22 мая 2017,
понедельник,
22:17:37 MSK

DevOps с компанией «Флант»
Аватар пользователя Дмитрий Шурупов
Дмитрий Шурупов написал 18 ноября 2003 года в 21:01 (636 просмотров) Ведет себя как фрик; открыл 669 тем в форуме, оставил 5643 комментария на сайте.

Помнится, тут народ хвастался, что сканнер автоматически подключался и работал без проблем…

У меня ситуация в корне иная.

Сканнер — Epson Perfection 1660 Photo (поддерживается Linux)

ОС — Debian GNU/Linux 3.0r0

Ядро — 2.4.19

Делал все по куче разных howto, сканнер работать отказывается, хотя и нормально определяется в /proc/bus/usb:

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

Поддержка USB Scanner в ядре включена модульно, попытка загрузить модуль:

localhost:/usr/src/linux-2.4.19# modprobe scanner vendor=0x04b8 product=0x11e
/lib/modules/2.4.19/kernel/drivers/usb/scanner.o: init_module: Operation not permitted
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters
/lib/modules/2.4.19/kernel/drivers/usb/scanner.o: insmod /lib/modules/2.4.19/kernel/drivers/usb/scanner.o failed
/lib/modules/2.4.19/kernel/drivers/usb/scanner.o: insmod scanner failed

/dev’ы созданы по указаниям из kernel/documentation:

localhost:/usr/src/linux-2.4.19# ls -l /dev/usbscanner*
lrwxrwxrwx    1 root     root           16 Ноя 18 20:36 /dev/usbscanner -> /dev/usbscanner0
crw-rw-rw-    1 root     root     180,  48 Ноя 18 20:35 /dev/usbscanner0

Команда `sane-find-scanner -v` выводит следующее:

...
sane-find-scanner: searching for USB scanners:
...
sane-find-scanner: checking /dev/usbscanner... failed to open (status 4)
sane-find-scanner: checking /dev/usbscanner0... failed to open (status 4)
...

Тщательно прогуглил и прояндексил, ответ не найден.

Есть советы?

fly4life

Вот в этом вся твоя прблема:

SHuRuP
localhost:/usr/src/linux-2.4.19# modprobe scanner vendor=0×04b8 product=0×11e

/lib/modules/2.4.19/kernel/drivers/usb/scanner.o: init_module: Operation not permitted

Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters

/lib/modules/2.4.19/kernel/drivers/usb/scanner.o: insmod /lib/modules/2.4.19/kernel/drivers/usb/scanner.o failed

/lib/modules/2.4.19/kernel/drivers/usb/scanner.o: insmod scanner failed

Нужно сначала модуль загрузить, а всё остальное, что ты написал — потом…

«vendor=0×04b8 product=0×11e» — эти значения точно правильные? (а то помнится, когда-то давно я настраивал ТВ-тюнер, и там, если указывались не верные значения в строке инициализации модуля, то были примерно такие же ошибки).

Твой случай напомнил мне мой случай с сетевухой, которая отказывалась работать в ядре 2.4.20 (я постил про эту проблему раньше). Может есть смысл попробовать другое ядро (для начала из ветки 2.5.х, а затем и в 2.6.х).

И последнее (уже из разряда танцев с бубном), пробовал ли ты включить этот модуль монолитно в ядро?

Дмитрий Шурупов

>> «vendor=0×04b8 product=0×11e» — эти значения точно правильные?

Да, hotplug usb такое пишет при подключении сканнера.

>> Нужно сначала модуль загрузить, а всё остальное, что ты написал — потом…

Какая здесь связь с тем, что модуль вообще по факту не грузится? Он на то и модуль, что может быть загружен и выгружен в любой, нужный тебе, момент.

>> пробовал ли ты включить этот модуль монолитно в ядро?

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

>> Может есть смысл попробовать другое ядро

Может, но хотелось бы проблему решить более рациональным способом :)

Да и, кстати, видел пару раз подобные сообщения в mail-list’ах по поиску в google — ответа или не было, или он меня не касался.

fly4life
SHuRuP
>> «vendor=0×04b8 product=0×11e» — эти значения точно правильные?

Да, hotplug usb такое пишет при подключении сканнера.

Хм, а если вообще без этих параметров попробовать, что выдаст?

SHuRuP
>> Нужно сначала модуль загрузить, а всё остальное, что ты написал — потом…

Какая здесь связь с тем, что модуль вообще по факту не грузится? Он на то и модуль, что может быть загружен и выгружен в любой, нужный тебе, момент.

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

SHuRuP
>> пробовал ли ты включить этот модуль монолитно в ядро?

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

Поэтому и сказал: «танцы с бубном»

SHuRuP
>> Может есть смысл попробовать другое ядро

Может, но хотелось бы проблему решить более рациональным способом :)

Попробуй, ради интереса. Если прокатит, то дело в ядре и тогда я не представляю как эту проблему решить без замены ядра. (может есть решение на сайте производителя или чуществует какой-нибудь патч к ядру)

Дмитрий Шурупов

>> Хм, а если вообще без этих параметров попробовать, что выдаст?

То же самое, сначала так и пробовал.

>> Нет, здесь я имел в виду то, что не подгрузив модуль, сканер работать не заставишь.

Да, естественно, но я думал, что, может, будет какая подсказка, а ее не оказалось.

>> Если прокатит, то дело в ядре и тогда я не представляю как эту проблему решить без замены ядра.

Наверное, придется для порядка и такой вариант проверить ;)

decvar

Если без бубнов не работает, то:

1. Чешем смотреть доку по backendу на www.sane-project.org. Там девелопер описывает методу подключения.

2. Изначально модуль должен подгрузится (смотришь dmesg). Если он загружен, то устройства /dev/scanner0(X) сами создаются(для sane 1.0.10-12).

У меня когда что-то находится на usb системник пищит, сразу понятно что подключилось, а что нет.

3. после этого sane-find-scanner….либо сам подвинчивает нужный backend либо говорит vendor id+device id. С этим чешем на www.sane-project.org и смотрим какой backend подходит для этих id.

4. Руками указываем какой backend пользовать…

5. xsane умеет сам искать сканер и подвинчивать его(при условии что модуль, те /dev/scanner0 уже есть)

Опиши результат описанных действий, посмотрим что делать дальше…

fly4life
decvar
2. Изначально модуль должен подгрузится (смотришь dmesg). Если он загружен, то устройства /dev/scanner0(X) сами создаются(для sane 1.0.10-12).

Так выяснили как раз то, что с подгрузкой модуля проблема ;)

Дмитрий Шурупов

Прогресс пошел…

Пошаманил с ядром, перекомпилировал. Загрузка модуля проходит успешно, однако сканнер все равно не узнает, хотя много раз перечитал все на sane-project.org, linuxusbguide.sourceforge.net и т.п.

localhost:/home/shurup# lsmod
Module                  Size  Used by    Tainted: P  
scanner                 8416   0
nvidia               1539584  10  (autoclean)

Но:

localhost:/home/shurup# 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).
Дмитрий Шурупов


shurup@localhost:~$ sane-find-scanner
...
sane-find-scanner: found USB scanner (vendor = 0x04b8, product = 0x011e) at device /dev/usb/scanner0

Ух, настроил-таки :))

Как ни странно, помог reboot после очередной перенастройки всякой ерунды типа /etc/modules.conf.

Сегодня/завтра будет статья по этому поводу — зря мучался что ли? :)