Как переименовать устройство на основе USB-порта в Debian Linux?

Вопрос или проблема

Я использую Debian 12, и у меня подключены два идентичных модуля Huawei E3372-325 к компьютеру.

Моя цель — присвоить каждому модему понятное, постоянное имя. К сожалению, как имя, так и MAC-адрес модемов изменяются каждый раз, когда они подключаются. Следовательно, единственный надежный способ их идентификации — это по порту, к которому они подключены.

Вот что я сделал до сих пор:

Определил текущие имена с помощью ip link show: enx46d33b6fafe7

Нашел детали устройства с помощью udevadm:

sudo udevadm test /sys/class/net/enx46d33b6fafe7

Из вывода я нашел:

ID_PATH=pci-0000:00:14.0-usb-0:4:1.0

Добавил правило udev:

Я добавил следующую строку в /etc/udev/rules.d/70-persistent-net.rules:

SUBSYSTEM=="net", ACTION=="add", ENV{ID_PATH}=="pci-0000:00:14.0-usb-0:4:1.0", NAME="ltm_modem_1"

Применил новое правило udev:

sudo udevadm control --reload-rules
sudo udevadm trigger
sudo udevadm trigger --action=add /sys/class/net/enx46d33b6fafe7

К сожалению, этот подход не сработал. Когда я проверяю с помощью ip link show, модем все еще сохраняет свое старое имя.

В Xubuntu, которая основана на Debian, я вношу такие изменения: (все команды как root) в файле /etc/default/grub строку GRUB_CMDLINE_LINUX=”” изменить на GRUB_CMDLINE_LINUX=”net.ifnames=0″, затем sudo update-grub и перезагружаю ноутбук.

Применить новое правило udev: […] Когда я проверяю с помощью ip link show, модем все еще сохраняет свое старое имя.

Интерфейсы не могут быть переименованы, когда они <UP>. Вам нужно отключить его, используя ip link set enxXX down, или отключить/переподключить устройство.


Создание пользовательского файла /etc/systemd/network/*.link (который затем будет применяться правилом udev 80-net-setup-link.rules) является немного более новым способом достижения этого.

Имена на основе пути (хотя и не совсем читаемые человеком) уже являются стандартными для systemd, и обычно /usr/lib/systemd/network/99-default.link приведет к имени, такому как enp0s3u1 для USB-устройства.

Это именно Debian переключает USB-сетевые интерфейсы на имена, основанные на MAC, через /usr/lib/systemd/network/73-usb-net-by-mac.link (или пользовательское правило udev в Debian 11) из-за противоположной проблемы.

Ответ или решение

Чтобы переименовать USB-устройства, такие как модемы Huawei E3372-325, в Debian 12 и назначить им человекопонятные, постоянные имена, необходимо использовать утилиты системы Linux, такие как udev и systemd. Мы рассмотрим нужные шаги для достижения этой цели, опираясь на предоставленные вами данные и контекст.

Шаг 1: Определение идентификаторов устройства

Для начала, необходимо выяснить, к какому USB-порту подключены ваши модемы, и получить их параметры. Для этого выполните команду:

ip link show

В вашем случае вы получили интерфейс enx46d33b6fafe7. Далее, используйте udevadm, чтобы собрать информацию об устройстве:

sudo udevadm info -a -n enx46d33b6fafe7

Обратите внимание на строки, содержащие ID_PATH, которые можно использовать для создания правила udev. Пример вашего ID_PATH:

ID_PATH=pci-0000:00:14.0-usb-0:4:1.0

Шаг 2: Создание правила udev

Теперь создадим правило для udev, которое обеспечит постоянное имя для вашего устройства. Для этого откройте или создайте файл /etc/udev/rules.d/70-persistent-net.rules (или другой файл с расширением .rules, например, 90-usb-modem.rules) и добавьте следующее содержимое:

SUBSYSTEM=="net", ACTION=="add", ENV{ID_PATH}=="pci-0000:00:14.0-usb-0:4:1.0", NAME="ltm_modem_1"

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

Шаг 3: Применение правил udev

После внесения изменений необходимо перезагрузить правила udev и инициировать повторное считывание устройств:

sudo udevadm control --reload-rules
sudo udevadm trigger

Для того чтобы изменения применились, возможно, придется временно отключить интерфейс:

sudo ip link set enx46d33b6fafe7 down
sudo ip link set enx46d33b6fafe7 up

Либо просто переподключите модемы.

Шаг 4: Проверка изменений

После применения правил проверьте, изменилось ли имя интерфейса:

ip link show

Если имя интерфейса изменилось на ltm_modem_1, значит, вы успешно применили правило.

Альтернативный подход: Использование systemd

Как альтернатива, вы можете создать специальный файл .link в /etc/systemd/network/. Этот файл управляет наименованием интерфейсов на основе их параметров. Например, создайте файл 99-usb-modem.link с таким содержанием:

[Match]
PATH=pci-0000:00:14.0-usb-0:4:1.0

[Network]
Name=ltm_modem_1

Затем перезагрузите systemd:

sudo systemctl daemon-reload

Заключение

Следуя этим шагам, вы сможете назначить человекопонятные имена вашим модемам на Debian 12. Обратите внимание, что наименования интерфейсов могут быть не мгновенными, и для успешного применения правил может потребоваться перезагрузка или переподключение устройства. стабильность и удобство управления USB-устройствами повысится, что обеспечит вам более простой доступ и идентификацию подключенных модемов.

Оцените материал
Добавить комментарий

Капча загружается...