[devel] Помогите разобраться с правилами udev
Vladislav Zavjalov
slazav на altlinux.org
Ср Май 25 19:31:40 MSK 2022
On Wed, May 25, 2022 at 04:57:19PM +0300, Ruslandh wrote:
> Создаю такой файл udev (для отладки)
>
> # udev rules for setting correct configuration and pairing on tethered
> iPhones
> ATTR{idVendor}!="05ac", GOTO="ipheth_rules_end"
>
> # Execute pairing program when appropriate
> SUBSYSTEM=="usb", ENV{ID_V4L_PRODUCT}!="", ENV{COLORD_DEVICE}="0",\
> ENV{COLORD_KIND}="", RUN+="echo "Yes"> /tmp/yes"
> #ACTION=="add", SUBSYSTEM=="net", ENV{ID_USB_DRIVER}=="ipheth",\
> SYMLINK+="iphone", RUN+="ipheth-pair"
>
> LABEL="ipheth_rules_end"
Тут еще есть условие ENV{ID_V4L_PRODUCT}!="", а такого поля в
ваших логах я не вижу. Зачем это условие было добавлено?
Я не большой специалист по udev, но мне всегда казалось,
что он очень прямолинеен: пишешь условие, если оно выполняется,
то и правило исполняется.
Ну и еще пара общих вещей про правила udev rules (я плохо
чувствую, насколько такие вещи общеизвестны, прошу прощения, если пишу
тривиальное):
- При подключении у вас возникает целое дерево usb-устройств,
надо написать такие условия, чтобы выбрать нужное.
- Разные атрибуты устройств удобно смотреть командой
udevadm info -a -p /sys/bus/usb/devices/...
- ATTR и ATTRS это разные ключи (действуют на одно устройство
и на устройство со всеми его родителями)
- операторы == и = - это разные вещи (зачем, например, у
вас в этом тестовом примере есть =, если вы только хотите запустить
echo?)
Подробная информация о списке рассылки Devel