Вопрос или проблема
Я использую 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-устройствами повысится, что обеспечит вам более простой доступ и идентификацию подключенных модемов.