LINUX.ORG.RU

Изменить на модеме мак адрес на его виртуальной usb карте

 ,


1

1

Добрый день. Есть usb модем huawei Huawei E3372

Нужно изменить на нем мак адрес на его виртуальной usb карте

версия линукса:

127|root@android:/proc/net # cat /proc/version

Linux version 3.4.5 (jenkins@localhost) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 PREEMPT Wed Mar 1 19:17:35 CST 2017

мак показывает такой: 0a:5b:8f:27:9a:64

теоретически лежит тут:

cat /sys/devices/platform/dwc3/gadget/net/usb0/address

cat /sys/class/net/usb0/address

если пытаешься изменить его и сохранить получаю такую ошибку:

[ Error writing /sys/class/net/usb0/address: Input/output error ]

chmod 777 address

ошибок не выдает.

Что я пробовал?

ip link set dev eth0 down ip link set dev eth0 address 00:11:22:33:44:55 ip link set dev eth0 up

Далее попробовал p link set dev usb0 down; ip link set dev usb0 address 00:11:22:33:44:55; ip link set dev usb0 up

Прокатило, только после ребута модема мак-адрес снова стал прежним.

В итоге много чего попробовал. В линуксе модема поменялся, а снаружи он остался таким же как и был.

ps. оболочка не баш, а busybox


«стал прежним»
так и должно быть - изменения от iproute2 нигде не сохраняются

чтобы их сохранить, нужно внести изменения в файл, отвечающий за настройки сети (например /etc/network/interfaces)
у тебя такой файл скорее всего будет защищён от модификации, так что выход у тебя один - просто набивать руками ip l s каждый раз

d00fy ★★★
()

web-интнерфейса нет? Я к тому, что если пользователю позволено менять этот адрес, то будет соответствующая настройка. Если нет, то «перепрошивка only»

Прокатило, только после ребута модема мак-адрес снова стал прежним.

В итоге много чего попробовал. В линуксе модема поменялся, а снаружи он остался таким же как и был.

Не понял: адрес меняется до перезагрузки или только внутри busybox пишет, что сменил.

master_0K
()

Девайс /sys/devices/platform/dwc3/gadget/net/usb0 создаёт драйвер g_ether из модуля g_ether. У модуля есть параметры dev_addr=xx:xx:xx:xx:xx:xx и host_addr=xx:xx:xx:xx:xx:xx. Передать эти параметры можно

  • в modprobe g_ether dev_addr=... host_addr=... (если CONFIG_USB_ETH=m)
  • или в командной строке ядра g_ether.dev_addr=... g_ether.host_addr=... (если CONFIG_USB_ETH=y).

https://elixir.bootlin.com/linux/v3.4.5/source/drivers/usb/gadget/ether.c

А зачем менять этот MAC-адрес, если не секрет? Он ведь ни на что не влияет. Он используется на линке между хостом и модемом. На этом линке никаких других устройств нету, конфликта MAC-адресов быть не может. Или ты на хосте хочешь сбриджевать линк к модему с локалкой и там с каким-то из хостов локалки получается конфликт? Или ты хочешь на хосте сбриджевать линки нескольких модемов и у них получается конфликт?

iliyap ★★★★★
()
Последнее исправление: iliyap (всего исправлений: 1)