[sisyphus] Сборка Sane + udev + hotplug
Anton Farygin
=?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Вт Янв 29 09:11:42 MSK 2008
Vitaly Lipatov пишет:
> On 29 января 2008, Dmitry V. Levin wrote:
>> On Mon, Jan 28, 2008 at 01:08:05PM +0300, Vitaly Lipatov wrote:
>>> В Сизиф отправлена новая сборка Sane. У меня возникли
> ...
>>> - rearranged udev rules (review me!)
>> Можно об этом поподробнее?
<skip>
>
> Хотя хотелось бы понять окончательно статус hotplug в нашей
> системе. Например, sane до сих пор кладёт в него файлы и на
> что-то надеется... Скрипт libscanner запускается из правил для
> hotplug, меняет права на /proc/bus/usb/*, а вроде как libusb
> давно использует /dev/bus/usb/...
> Механизм определения оборудования не так сложен в его
> поверхностном описании. Которого со стороны знающих людей очень
> не хватает.
>
>
hotplug уже не используется, достаточно положить правила для udev и
проверить их.
Права должны меняться в udev. Для hotplug сейчас _ничего_ паковать уже
не нужно.
Механизм работы с оборудованием очень простой:
на каждое устройство ядро генерит событие. Данное событие через
NETLINK_SOCKET получает udevd, который действуя согласно правилам в
/etc/udev/rules.d/ создаёт файл устройства,выставляет права/симлинки и
загружает дополнительные модули ядра.
Синтаксис правил udev описан в /usr/share/doc/udev-*/
После создания файла устройства udev через dbus информирует hal о новом
оборудованиии.
hal, в зависимости от своих правил (/usr/share/hal/fdi/*/* и
/etc/hal/fdi/*/*) выполняет над устройством определённые действия или
просто добавляет его в базу данных, соответственно информируя всех, кто
использует libhal, об изменениях в базе устройств.
Для сканеров вполне достаточно положить корректные правила в udev,
которые будут выставлять права на устройство в /dev/bus/usb/ для доступа
к нему через libusb всех, кто входит в группу scanner.
Подробная информация о списке рассылки Sisyphus