D-BUS, HAL, UDEV, HOTPLUG (и сканер (с ним вопрос решён))

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

D-BUS, HAL, UDEV, HOTPLUG

Сообщение Mellon »

Проблема в общем-то уходит в железо. а точнее в траблы со сканером Epson Perfection 1670.
Но кроме того, давно уже хотел прояснить себе этот вопрос.

Когда ставил HAL и D-BUS (для автомонтировки), то они у меня потянули за собой hotplug. Это показалось мне довольно странным. Насколько я понимаю в Gentoo теперь родным является UDEV, который динамически создает устройства и подгружает модули, то есть предназначен полностью заменить hotplug (coldplug), или это не так? Поэтому, когда всё это поставилось, я не стал активировать /etc/init.d/hotplug. Правильно ли я сделал?

И вот, собственно какая ситуция у меня теперь со сканером.
Поставил
media-gfx/sane-backends (1.0.18-r2): Scanner Access Now Easy - Backends
media-gfx/xsane (0.991): graphical scanning frontend
в /etc/sane.d/snapscan.conf прописал прошивку,
проверил наличие описания сканера (ID), и заинтерисовался вот этим:

Код: Выделить всё

# For USB scanners also specify bus=usb, e.g.
# /dev/usb/scanner0 bus=usb

То есть здесь просят указать устройство сканера.
Хорошо, включаю сканер и иду смотреть /dev/

Код: Выделить всё

# ls -R -l /dev/usb*
crw-rw---- 1 root root 442,   15 Окт  3 05:51 /dev/usbdev1.16_ep00
crw-rw---- 1 root root 442,   15 Окт  3 05:51 /dev/usbdev1.16_ep02
crw-rw---- 1 root root 442,   15 Окт  3 05:51 /dev/usbdev1.16_ep81
crw-rw---- 1 root root 442,   15 Окт  3 05:51 /dev/usbdev1.16_ep83
crw-rw---- 1 root root 442,    0 Окт  2 22:18 /dev/usbdev1.1_ep00
crw-rw---- 1 root root 442,    0 Окт  2 22:18 /dev/usbdev1.1_ep81
crw-rw---- 1 root root 442, 2048 Окт  2 22:18 /dev/usbdev2.1_ep00
crw-rw---- 1 root root 442, 2048 Окт  2 22:18 /dev/usbdev2.1_ep81
crw-rw---- 1 root root 442, 4096 Окт  2 22:18 /dev/usbdev3.1_ep00
crw-rw---- 1 root root 442, 4096 Окт  2 22:18 /dev/usbdev3.1_ep81
crw-rw---- 1 root root 442, 6144 Окт  2 22:18 /dev/usbdev4.1_ep00
crw-rw---- 1 root root 442, 6144 Окт  2 22:18 /dev/usbdev4.1_ep81

# ls -l /dev/sca*
ls: /dev/sca*: Нет такого файла или каталога


Перевтыкаю сканер, предварительно вооружившись инструментом

Код:

localhost ~ # ls -R -l /dev/usb* crw-rw---- 1 root root 442, 16 Окт 3 05:58 /dev/usbdev1.17_ep00 crw-rw---- 1 root root 442, 16 Окт 3 05:58 /dev/usbdev1.17_ep02 crw-rw---- 1 root root 442, 16 Окт 3 05:58 /dev/usbdev1.17_ep81 crw-rw---- 1 root root 442, 16 Окт 3 05:58 /dev/usbdev1.17_ep83 crw-rw---- 1 root root 442, 0 Окт 2 22:18 /dev/usbdev1.1_ep00 crw-rw---- 1 root root 442, 0 Окт 2 22:18 /dev/usbdev1.1_ep81 crw-rw---- 1 root root 442, 2048 Окт 2 22:18 /dev/usbdev2.1_ep00 crw-rw---- 1 root root 442, 2048 Окт 2 22:18 /dev/usbdev2.1_ep81 crw-rw---- 1 root root 442, 4096 Окт 2 22:18 /dev/usbdev3.1_ep00 crw-rw---- 1 root root 442, 4096 Окт 2 22:18 /dev/usbdev3.1_ep81 crw-rw---- 1 root root 442, 6144 Окт 2 22:18 /dev/usbdev4.1_ep00 crw-rw---- 1 root root 442, 6144 Окт 2 22:18 /dev/usbdev4.1_ep81 localhost ~ # ls -l /dev/sca* ls: /dev/sca*: Нет такого файла или каталога # udevmonitor udevmonitor prints the received event from the kernel [UEVENT] and the event which udev sends out after rule processing [UDEV] UEVENT[1159840705.920258] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3 UEVENT[1159840705.920308] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/usbdev1.17_ep00 UEVENT[1159840705.921852] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/1-3:1.0 UEVENT[1159840705.921878] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/1-3:1.0/usbdev1.17_ep81 UEVENT[1159840705.921887] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/1-3:1.0/usbdev1.17_ep02 UEVENT[1159840705.921895] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/1-3:1.0/usbdev1.17_ep83 UEVENT[1159840705.921903] add@/class/usb_device/usbdev1.17 UDEV [1159840705.975454] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3 UDEV [1159840705.996056] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/usbdev1.17_ep00 UDEV [1159840706.472337] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/1-3:1.0 UDEV [1159840706.510354] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/1-3:1.0/usbdev1.17_ep81 UDEV [1159840706.528987] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/1-3:1.0/usbdev1.17_ep83 UDEV [1159840706.538323] add@/devices/pci0000:00/0000:00:10.3/usb1/1-3/1-3:1.0/usbdev1.17_ep02 UDEV [1159840706.565003] add@/class/usb_device/usbdev1.17 В логах ядра: Oct 3 05:58:25 [kernel] hub 1-0:1.0: state 7 ports 6 chg 0000 evt 0008 Oct 3 05:58:25 [kernel] ehci_hcd 0000:00:10.3: GetStatus port 3 status 001803 POWER sig=j CSC CONNECT Oct 3 05:58:25 [kernel] hub 1-0:1.0: port 3, status 0501, change 0001, 480 Mb/s Oct 3 05:58:25 [kernel] hub 1-0:1.0: debounce: port 3: total 100ms stable 100ms status 0x501 Oct 3 05:58:25 [kernel] ehci_hcd 0000:00:10.3: port 3 high speed Oct 3 05:58:25 [kernel] ehci_hcd 0000:00:10.3: GetStatus port 3 status 001005 POWER sig=se0 PE CONNECT Oct 3 05:58:25 [kernel] usb 1-3: new high speed USB device using ehci_hcd and address 17 Oct 3 05:58:25 [kernel] ehci_hcd 0000:00:10.3: port 3 high speed Oct 3 05:58:25 [kernel] ehci_hcd 0000:00:10.3: GetStatus port 3 status 001005 POWER sig=se0 PE CONNECT Oct 3 05:58:25 [kernel] usb 1-3: default language 0x0409 Oct 3 05:58:25 [kernel] usb 1-3: new device strings: Mfr=1, Product=2, SerialNumber=0 Oct 3 05:58:25 [kernel] usb 1-3: Product: EPSON Scanner Oct 3 05:58:25 [kernel] usb 1-3: Manufacturer: EPSON Oct 3 05:58:25 [kernel] usb 1-3: uevent Oct 3 05:58:25 [kernel] usb 1-3: configuration #1 chosen from 1 choice Oct 3 05:58:25 [kernel] usb 1-3: adding 1-3:1.0 (config #1, interface 0) Oct 3 05:58:25 [kernel] usb 1-3:1.0: uevent Oct 3 05:58:25 [kernel] drivers/usb/core/inode.c: creating file '017'


То есть создаются какие-то usb-устройства, но каждый раз с другим названием.

Ладно, тогда может в /etc/sane.d/snapscan.conf раскоментировать вторую строчку?

Код: Выделить всё

# For USB scanners also specify bus=usb, e.g.
/dev/usb/scanner0 bus=usb

И опять ничего не изменилось.

Тогда, может стартовать /etc/init.d/hotplug?
Снова то же самое.

sane-find-scanner сканер находит:
found USB scanner (vendor=0x04b8 [EPSON], product=0x011f [EPSON Scanner]) at libusb:001:018
а вот scanimage -L -- нет.

Причем в списках как /etc/hotplug/usb.usermap, так и /etc/udev/rules.d/99-libsane.rules
этот сканер есть и не закоменчен.

Так вот, почему я тут это расписал. Потому что в стареньком Дебиане с хотплагом сканер работал после доделки согласно инструкциям, а в текущей Gentoo, почему-то нет :(
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
ArtSh
Сообщения: 433
ОС: Gentoo

Re: D-BUS, HAL, UDEV, HOTPLUG

Сообщение ArtSh »

Всё просто! sane использует для общения с usb железками libusb! Чтобы узнать адрес устройства надо запустить sane-find-scanner! Вам надо прописать где находится прошивка (и поместить её туда):

это должно быть в snapscan.conf

Код: Выделить всё

# Change to the fully qualified filename of your firmware file, if
# firmware upload is needed by the scanner
firmware /etc/sane.d/firmware/Esfw41.bin

# If not automatically found you may manually specify a device name.

# For USB scanners also specify bus=usb, e.g.
# /dev/usb/scanner0 bus=usb

# For SCSI scanners specify the generic device, e.g. /dev/sg0 on Linux.
# /dev/sg0


Файл Esfw41.bin надо добыть из инсталяционного диска (из .cab файла)


P.S. Информацию о том как заставить работать сканер я нашёл в интернете, к сожалению не помню где.
Поставь букву "Ё" на место еЁ!
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: D-BUS, HAL, UDEV, HOTPLUG

Сообщение Mellon »

Первым делом прописал прошивку

Вот это как понимать
# sane-find-scanner -q
found USB scanner (vendor=0x04b8 [EPSON], product=0x011f [EPSON Scanner]) at libusb:001:004

Причём это "at libusb:001:004" меняется при каждом втыкании сканера.

При этом
#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).

Кстати вот для моего сканера правило в /etc/udev/rules.d/99-libsane.rules :
# EPSON Perfection 1670 | EPSON Perfection 1670 PHOTO | Epson Perfection 1670
SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="011f", MODE="660", GROUP="scanner"

Может чего-то не хватает?
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: D-BUS, HAL, UDEV, HOTPLUG

Сообщение Mellon »

Дорогие товарищи, я решил второй вопрос, -- причину первого.

Ответ на него содержался в man sane(7) :
Now your scanner is detected by the operating system but not by SANE? Try scanimage -L. If the scanner is not
found, check that the backend's name is mentioned in /etc/sane.d/dll.conf. Some backends are commented out by
default. Remove the comment sign for your backend in this case. Also some backends aren't compiled at all if one of
their prerequisites are missing. Examples include dc210, dc240, canon_pp, hpsj5s, gphoto2, pint, qcam, v4l, net,
sm3600, snapscan, pnm. If you need one of these backends and they aren't available, read the build instructions in
the README file and the individual manual pages of the backends.

Да, действительно, в /etc/sane.d/dll.conf не было упоминания snapscan, его включение решило проблему.
Можете меня плюсовать, посыпаю голову пеплом :)

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

Но первый вопрос остаётся открытым.
Сформулирую его по короче.
Так ли необходимо в Генту hotplug, что он до сих пор идёт в зависимостях?
Если да, то нужно ли включение сервиса hotplug в уровень загрузки?
И что в таком случае предпочтительней, hotplug или coldplug?
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
ArtSh
Сообщения: 433
ОС: Gentoo

Re: D-BUS, HAL, UDEV, HOTPLUG

Сообщение ArtSh »

Mellon писал(а):
04.10.2006 07:05
Так ли необходимо в Генту hotplug, что он до сих пор идёт в зависимостях?
Если да, то нужно ли включение сервиса hotplug в уровень загрузки?
И что в таком случае предпочтительней, hotplug или coldplug?


Сейчас hotplug фактически только помогает udev'у. В частности он может загружать любые прошивки и производить любые дополнительные действия, также подключает устройства, если это не было сделано автоматически. Так что запускать его автоматически при запуске имеет смысл.

С сoldplug как известно следующая ситуация: >=sys-fs/udev-089 (is blocking sys-apps/coldplug-20040920-r1)
Т.е. вся функциональность переложена именно туда...
Поставь букву "Ё" на место еЁ!
Спасибо сказали:
Аватара пользователя
MаD
Сообщения: 62
ОС: gentoo ~amd64

Re: D-BUS, HAL, UDEV, HOTPLUG

Сообщение MаD »

а наличие опций в /etc/conf.d/rc
RC_HOTPLUG=""
RC_COLDPLUG=""
как на этом сказывается?
Спасибо сказали:
Аватара пользователя
ArtSh
Сообщения: 433
ОС: Gentoo

Re: D-BUS, HAL, UDEV, HOTPLUG

Сообщение ArtSh »

Эти переменные указывают, в каком порядке будут запускаться сервисы, рекомендую установить "yes". Это вполне ясно написано английским по белому в /etc/conf.d/rc
Поставь букву "Ё" на место еЁ!
Спасибо сказали: