Não é possível definir o endereço MAC para qualquer hex de minha escolha

0

Eu configurei meu endereço MAC para o chip wifi via:

/sbin/ifconfig wlan0 down                                                          
/sbin/ifconfig wlan0 hw ether ${WIFI_MAC_ADDR}    
/sbin/ifconfig wlan0 up    

Digamos que o endereço MAC padrão seja 98: 00: 00: 00: 00: 00. Eu, se mudar o endereço MAC para qualquer novo endereço que ainda começa com 98então não tenho problema.

No entanto, se eu mudar 98 para qualquer outro número, então recebo o seguinte erro:

wlan0: set cur_etheraddr failed
dhd_sysioc_thread _dhd_set_mac_address() failed

Por quê?

Kousha
fonte

Respostas:

1

O bit menos significativo do primeiro octeto é reservado como o "bit de grupo" (bit de flag multicast / broadcast). Os endereços MAC com esse conjunto de bits não são endereços unicast válidos, portanto, não são válidos para usar como o endereço MAC de uma NIC.

Então, no nibble, onde você tem um 0x8, esses valores (pares) são legais:

0x0
0x2
0x4
0x6
0x8
0xa
0xc
0xe

E esses valores (ímpares) são ilegais:

0x1
0x3
0x5
0x7
0x9
0xb
0xd
0xf
Spiff
fonte
Uau obrigado. Então, isso é verdade para todos os endereços WiFi Mac? O menos significativo do primeiro octeto tem que ser par?
Kousha
@Kousha Isso mesmo, o bit de um lugar do primeiro octeto deve ser claro (zero). Além disso, ao definir seu próprio endereço MAC, é melhor certificar-se de que o bit de lugar do primeiro octeto esteja definido (um). Isso porque esse bit é o bit "local", o que significa que é um endereço MAC personalizado que você define, não um endereço MAC definido de fábrica (garantido como globalmente exclusivo).
Spiff