udev iw adicionar problema de renomeação de interface

2

Eu preciso colocar a interface wifi no estado adicional do monitor.

  • Se eu não usar a regra do udev e a interface do Wi-Fi nomeada pelo kernel como wlan0 (padrão):

$ iw dev wlan0 interface add mon0 type monitor

neste caso, não tenho nenhum problema e tudo funciona. Eu posso ver a interface mon0 na saída do iwconfig.

mon0      IEEE 802.11  Mode:Monitor  Frequency:2.412 GHz  
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
  • Se eu estiver usando a regra do udev e a interface de Wi-Fi nomeada como wbrd0 :

Arquivo 70-wireless.rule:

SUBSYSTEM=="net", ACTION=="add", ATTRS{address}=="xx:xx:xx:xx:xx:xx", NAME="wbrd0"

$ iw dev wbrd0 interface add mon0 type monitor

Neste caso, a saída do iwconfig tem esta aparência:

rename4   IEEE 802.11  Mode:Monitor  Frequency:2.412 GHz  
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

wbrd0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

Como você pode ver, não há uma interface mon0 e, em vez disso, ela é renomeada como rename4 . Eu acho que é por causa da regra do udev, o udev está tentando nomear a nova interface do monitor como wbrd0 ao invés de mon0 . Provavelmente há algo que estou perdendo na documentação do udev. Embora eu saiba que funciona com regras padrão do udev, mas não consigo encontrar um lugar onde esteja.

Eu tenho uma solução alternativa, posso apenas renomear a interface rename4 com:

$ ip link set rename4 name mon0

Mas é muito sujo, deve haver uma maneira melhor.

Então, minha pergunta é como escrever a regra do udev que criará uma interface de monitor a partir do wbrd0 existente?

OR

Como encontrar um lugar na regra do udev padrão que está renomeando a interface do monitor para mon0 quando não estou usando minha regra de 70 sem fio?

    
por cy8g3n 03.03.2018 / 16:28

0 respostas