Почему правило UDEV для USB-привязки эффективно для OnePlus 5, но не работает для Samsung?

Как настроить правила Udev для вашего устройства USB

Система Udev в Linux отвечает за управление устройствами и их настройку при подключении. Настройка правил может помочь вам назначить определенные имена устройствам и оптимизировать их работу. В этой статье мы рассмотрим, как создать и настроить правила Udev для вашего устройства на примере Samsung S24.

Обучение с Udev

Для начала давайте посмотрим, как выглядит базовое правило Udev. Например, есть правило для OnePlus 5:

SUBSYSTEM=="net", ACTION=="add", ATTRS{serial}=="d221c91d", NAME="hp"

Это правило устанавливает имя "hp" для сетевого устройства на основе его серийного номера. Тем не менее, когда мы пытаемся сделать что-то подобное для Samsung S24, появляется проблема.

Проблема с распознаванием устройства

При попытке настроить правило для Samsung S24 выводит обращение к SUBSYSTEM=="usb", но оно не срабатывает. Чтобы разобраться с этим, важно проверить информацию о вашем устройстве с помощью команды lsusb и udevadm info.

Вот пример вывода команды udevadm info для Samsung S24:

Bus 001 Device 021: ID 04e8:6863 Samsung Electronics Co., Ltd Galaxy series, misc. (tethering mode)

Шаги для создания правил

Чтобы убедиться в правильной настройке, выполните следующие шаги:

  1. Отсоедините устройство, если это еще не сделано.
  2. Выключите привязку USB в настройках телефона.
  3. Подключите устройство (в соблюдении интересует только ваше устройство).
  4. Запустите команду:
    udevadm monitor --property
  5. Включите настройку привязки USB пока устройство подключено.
  6. Дождитесь вывода, содержащего SUBSYSTEM=net, затем прервите вывод командой Ctrl + C.

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

Пример правильного правила

Если все сделано правильно, ваше правило может выглядеть так:

SUBSYSTEM=="net", ACTION=="add", ENV{ID_SERIAL_SHORT}=="RZCX410K81V", SYMLINK+="usbS24"

Обратите внимание на использование переменной ENV{ID_SERIAL_SHORT}, что может помочь в распознавании устройства.

Альтернативный подход с SystemD

Если вы хотите, чтобы ваше устройство получало постоянные имена, возможно, будет проще создать правило SystemD. Для этого создайте файл /etc/systemd/network/10-samsung-s24.link и заполните его следующими данными:

[Match]
Property=ID_SERIAL_SHORT=RZCX410K81V

[Link]
Name=usbS24

Вы также можете использовать PermanentMACAddress= для других аппаратных устройств, но для вашего случая с рандомизированным MAC-адресом необходимо сопоставить его с другим свойством.

Заключение

Управление устройствами через Udev и SystemD может показаться сложным, но с правильными командами и пониманием принципов это становится проще. Понимание, как настраиваются правила для Udev и SystemD, позволит вам управлять вашим оборудованием более эффективно и безболезненно. Не забывайте экспериментировать и изучать различные варианты настройка для каждого устройства.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *