Conecta-se ao WEP / WPA sem nmcli?

1

Estou enfrentando um problema em que nmcli pára de funcionar em um controlador de rockchip personalizado.

Ao executar nmcli dev wifi , não obtenho resultados, então tive que começar a usar iwlist scan . Existe algo semelhante para nmcli d wifi connect ?

Eu continuo recebendo de volta No network with SSID '2KLIC Guests' found com nmcli .

Este é o script que eu quero substituir:

if [ -n "$2" ];then
  nmcli d wifi connect "$1" password "$2"
else
  nmcli d wifi connect "$1"
fi

Ou talvez haja um comando que eu possa executar para corrigir nmcli (ele retornou resultados em um ponto, parece que ele teve suas configurações alteradas durante o uso do modo AP).

Resultados de iwconfig wlan3 :

wlan3     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=0/100  Signal level=0 dBm  Noise level=0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
    
por Philip Kirkbride 27.10.2017 / 17:54

2 respostas

2

Você pode se conectar através do comando wpa_supplicant , criar um arquivo wpa_supplicant.conf através do comando wpa_passphrase e, em seguida, conectar:

touch /etc/wpa_supplicant/wpa_supplicant.conf
echo ctrl_interface=/run/wpa_supplicant > /etc/wpa_supplicant/wpa_supplicant.conf
echo update_config=1 >> /etc/wpa_supplicant/wpa_supplicant.conf
wpa_passphrase "Your_SSID" Your_PASSWORD >> /etc/wpa_supplicant/wpa_supplicant.conf
i=$(iw dev | grep Interface | awk '{ print $2}')
killall wpa_supplicant
wpa_supplicant -i $i -c/etc/wpa_supplicant/wpa_supplicant.conf -B
dhclient $i

Um script de exemplo pode conter as seguintes linhas:

i=$(iw dev | grep Interface | awk '{ print $2}')
killall wpa_supplicant
wpa_supplicant -i $i -c/etc/wpa_supplicant/wpa_supplicant.conf -B
dhclient $i

O killall wpa_supplicant é adicionado porque você está usando o network-manager, ele criará uma instância wpa_supplicant.

Você também pode se conectar através de wpa_supplicant usando uma chave WEP.

Crie um wpa_supplicant.conf manualmente ( wpa_passphrase não funcionará para gerar um arquivo conf), e, g:

ctrl_interface=/run/wpa_supplicant
update_config=1

network={
    ssid="YOUR-SSID"
    key_mgmt=NONE
    wep_key0="12345"
    wep_tx_keyidx=0
}

Ou simplesmente você pode se conectar por meio de:

iwconfig <interface> essid "Your_SSID" key WEP_KEY

ou:

iw dev <interface> connect "Your_SSID" key 0:WEP_KEY

A ferramenta de linha de comando wpa_cli (recommanded by @dirkt ) também é uma alternativa para nmcli , você pode usar o modo interativo digitando wpa_cli ou diretamente por:

wpa_cli -p/var/run/wpa_supplicant OPTION

O OPTION pode ser: scan ; scan_results , add_network 0 ..... veja man wpa_cli e wpa_cli --help para mais detalhes.

    
por 27.10.2017 / 19:42
1

Acabei substituindo meu script por isso. Parece funcionar no meu sistema e mantém a estrutura original.

wifi=$(cat /proc/net/wireless | perl -ne '/(\w+):/ && print $1')

if [ -n "$2" ];then
  iwconfig $wifi essid "$1" key "s:$2"
else
  iwconfig $wifi essid "$1" key
fi

dhclient $wifi
    
por 30.10.2017 / 23:36