Como alterar o endereço mac (permanentemente) ou identificar um dongle USB 3G?

1

Eu comprei dois dongles usb 3G e ambos têm o mesmo endereço MAC. Depois de algumas pesquisas, eu encontrei este é um problema comum, então comprar novos talvez não corrija o problema.

Eu preciso identificar um dispositivo específico, então minha pergunta é como eu posso identificar o dispositivo se o mac é o mesmo para ambos os dispositivos?

É possível atribuir um novo endereço mac a um dispositivo (permanentemente de alguma forma, como o dispositivo pode perder energia de tempos em tempos) ou existe algum identificador único que eu possa usar?

    
por Anthony Hunt 27.01.2015 / 16:45

3 respostas

1

Existem algumas maneiras de definir o endereço MAC de uma interface de rede. No Windows, você pode editar as configurações na visualização avançada do cartão. Ou use o powershell (esteja ciente de que o Set-NetAdapter pode não estar disponível em versões mais antigas do Windows):

Set-NetAdapter –Name "Ethernet 1" -MacAddress "00-10-18-57-1B-0D"

No Linux, você precisa encontrar um comando adequado ou editar o arquivo / etc / network / interfaces de maneira semelhante a esta:

auto eth0
iface eth0 inet dhcp
hwaddress ether 01:02:03:04:05:06
    
por 27.01.2015 / 18:33
1

Parece que não há como alterar o mac "permanentemente". Todas as soluções encontradas permitem que você altere apenas até que o dispositivo seja reiniciado. Para alterá-lo permanentemente, você precisa ter acesso aos drivers e, mesmo assim, pode não ser possível (ou seja, o fabricante simplesmente não oferece essa opção).

    
por 01.07.2015 / 06:49
0

Estou experimentando o mesmo com o E3372h. O endereço MAC pode ser alterado nos firmwares HiLink: você tem que ter acesso ao console Android (que também não é trivial) do dispositivo e alterar o arquivo como /app/config/lan/config.xml

Para firmwares Stick, não encontrei o caminho para mudar o MAC. Eu suponho que poderia ser algum comando para escrever mac em alguma célula nvram como AT^NVWREX=bla-bla , mas eu não consegui encontrá-lo.

Outra abordagem que você pode usar no Linux é criar uma regra do udev com base no caminho do dispositivo USB. Assim, o nome da interface será vinculado à porta USB específica (mas não ao dispositivo em si, o que é preferível, com certeza). Crie o arquivo com o nome como /etc/udev/rules.d/99-wwan.rules

## Rules to setup fixed interface and port names for usb dongles with identical MAC addresses
# To get MAC address of interface use:
#     N=0; ip addr show wwan${N}
# To get ID_PATH of current interface use (N is interface number, e.g. N=0 for wwan0):
#     N=0; udevadm info -q all -p /sys/class/net/wwan${N} | grep -m1 ID_PATH=
# To get devpath of cdc-wdm${N} use (see first parent):
#     N=0; udevadm info -a -n /dev/cdc-wdm${N}
# To get KERNELS and bInterfaceProtocol for ttyUSB${N} use (see first parent):
#     N=0; udevadm info -a -n /dev/ttyUSB${N}
# Ports configuration related to AT^SETPORT="FF;12,16,5,A1,A2"

# wwan0 on 1.4.1
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1e:10:1f:00:00", ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.4.1:1.1", KERNEL=="wwan*", NAME="wwan0"
SUBSYSTEM=="tty",     KERNELS=="1-1.4.1:1.0", ATTRS{bInterfaceProtocol}=="12", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-wwan0"
SUBSYSTEM=="usbmisc", KERNELS=="1-1.4.1:1.1", ATTRS{bInterfaceProtocol}=="16", KERNEL=="cdc-wdm*", SYMLINK+="cdc-wdm-wwan0"
SUBSYSTEM=="tty",     KERNELS=="1-1.4.1:1.2", ATTRS{bInterfaceProtocol}=="05", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-a_shell-wwan0"

# wwan1 on 1.4.3
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1e:10:1f:00:00", ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.4.3:1.1", KERNEL=="wwan*", NAME="wwan1"
SUBSYSTEM=="tty",     KERNELS=="1-1.4.3:1.0", ATTRS{bInterfaceProtocol}=="12", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-wwan1"
SUBSYSTEM=="usbmisc", KERNELS=="1-1.4.3:1.1", ATTRS{bInterfaceProtocol}=="16", KERNEL=="cdc-wdm*", SYMLINK+="cdc-wdm-wwan1"
SUBSYSTEM=="tty",     KERNELS=="1-1.4.3:1.2", ATTRS{bInterfaceProtocol}=="05", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-a_shell-wwan1"

# # wwan on ???
# SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="???", ENV{ID_PATH}=="???", KERNEL=="wwan*", NAME="wwan???"
# SUBSYSTEM=="tty",     KERNELS=="???:1.0", ATTRS{bInterfaceProtocol}=="12", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-wwan???"
# SUBSYSTEM=="usbmisc", KERNELS=="???:1.1", ATTRS{bInterfaceProtocol}=="16", KERNEL=="cdc-wdm*", SYMLINK+="cdc-wdm-wwan???"
# SUBSYSTEM=="tty",     KERNELS=="???:1.2", ATTRS{bInterfaceProtocol}=="05", KERNEL=="ttyUSB*",  SYMLINK+="ttyUSB-a_shell-wwan???"

Altere os valores de ID_PATH, KERNELS e endereço para seus próprios valores. Você também pode modificar o nome, links simbólicos e / ou adicionar opções adicionais do udev.

    
por 22.12.2016 / 14:07