Ativando o wpa_supplicant no boot

Falta agora automatizar as coisas, fazendo com que o comando seja executado automaticamente durante o boot. Existem várias formas de fazer isso. Você poderia desde criar um ícone no desktop até adicionar o comando no final do arquivo “/etc/init.d/rc.local”. Entretanto, a solução mais correta é fazer com que o sistema estabeleça a conexão ao ativar as interfaces de rede.

Se você usa o Ubuntu, Kubuntu ou qualquer outra distribuição derivada do Debian, abra o arquivo “/etc/network/interfaces“. Adicione as duas linhas abaixo, contendo os parâmetros do wpa_supplicant, no final do arquivo. Note que agora adicionamos também a opção “w”, específica para uso em scripts de inicialização:

pre-up wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -wB -D wext
post-down killall -q wpa_supplicant

Lembre-se de substituir o “wlan0” e “wext” pelos parâmetros corretos no seu caso. Para que fique tudo certo, o arquivo deve conter também uma seção com os endereços usados pela placa. Veja um exemplo de arquivo completo:

# /etc/network/interfaces

auto lo wlan0

iface lo inet loopback

iface wlan0 inet static
address 192.168.1.56
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
pre-up wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -wB -D wext
post-down killall -q wpa_supplicant

Como de praxe, ao usar esse exemplo como modelo, preste atenção para substituir todos os “wlan0” pela interface correta no seu caso e ajustar os endereços de acordo com a configuração da sua rede.

Como pode ver, a primeira linha indica a localização do arquivo de configuração do wpa_supplicant. Se você ainda não o criou, aproveite para fazê-lo usando o comando que vimos há pouco: wpa_passphrase minharede minhapassphrase > /etc/wpa_supplicant.conf.

Se o ponto de acesso foi configurado para esconder o SSID e você só consegue se conectar à rede usando o comando manual do iwconfig, adicione a linha “wireless-essid casa” (onde o “casa” é o SSID desejado) na seção com a configuração da interface de rede, como em:

iface wlan0 inet static
address 192.168.1.56
etmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
wireless-essid casa
pre-up wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -wB -D wext
post-down killall -q wpa_supplicant

No Fedora, o wpa_supplicant roda como um serviço de rede, que é configurado através do arquivo “/etc/sysconfig/wpa_supplicant“. Ele é criado automaticamente quando o pacote é instalado, com o seguinte conteúdo:

# wlan0 and wifi0
# INTERFACES=”-iwlan0 -iwifi0″

INTERFACES=”-iwlan0″

# ndiswrapper and prism
# DRIVERS=”-Dndiswrapper -Dprism”

DRIVERS=”-Dndiswrapper”

Como pode ver, o arquivo contém a interface que deve ser monitorada e o driver que deve ser usado. Você precisa apenas editá-lo, de forma a incluir as informações corretas. Os comentários são apenas para informação e podem ser removidos, como em:

# /etc/sysconfig/wpa_supplicant

INTERFACES=”-iwlan0
DRIVERS=”-Dwext

Falta agora editar o arquivo “/etc/wpa_supplicant/wpa_supplicant.conf“, que é usado pelo serviço para armazenar a configuração. Ele é também criado ao instalar o pacote, inicialmente com o seguinte conteúdo:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel

network={
ssid=”any”
key_mgmt=NONE
}

Use o comando “wpa_passphrase minharede minhapassphrase” para gerar a configuração apropriada para a sua rede e insira as linhas no arquivo, sem apagar as duas primeiras, como em:

# /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel

network={
ssid=”minharede”
psk=24b0d83ee1506019e87fcf1705525ca60abbd9b24ac5bedf183620d0a22ab924
}

Depois de feita a configuração, use o comando “service wpa_supplicant restart” para reiniciar o serviço, de forma que as alterações sejam aplicadas. Aproveite também para certificar-se de que ele será carregado durante o boot, usando o comando chkconfig:

# service wpa_supplicant restart
# chkconfig wpa_supplicant on

Concluindo, falta apenas editar o arquivo com a configuração da placa de rede, dentro da pasta “/etc/sysconfig/network-scripts”. Se a interface wireless é a “wlan0”, o arquivo será o “/etc/sysconfig/network-scripts/ifcfg-wlan0”.

Ele deve conter as linhas “ONBOOT=yes”, “Type=Wireless” e “MODE=Managed”, como em:

#/etc/sysconfig/network/network-scripts/ifcfg-wlan0
DEVICE=wlan0
IPADDR=192.168.1.21
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BOOTPROTO=static
ONBOOT=yes
Type=Wireless
MODE=Managed

ou:

#/etc/sysconfig/network/network-scripts/ifcfg-wlan0
DEVICE=wlan0
BOOTPROTO=dhcp
ONBOOT=yes
Type=Wireless
MODE=Managed

Se você precisar indicar manualmente o SSID da rede, evitando o bug do wpa_supplicant ao se conectar em pontos de acesso que não divulgam o SSID, adicione também a linha “ESSID=xxxx”, como em:

#/etc/sysconfig/network/network-scripts/ifcfg-wlan0
DEVICE=wlan0
BOOTPROTO=dhcp
ONBOOT=yes
Type=Wireless
MODE=Managed
ESSID=minharede

Ao editar o arquivo, não se esqueça de reiniciar o serviço responsável pela configuração das interfaces para que a nova configuração seja carregada:

# /etc/rc.d/init.d/network restart

Uma observação importante é que, ao ser configurado para rodar em background, o wpa_supplicant ficará o tempo todo tentando se conectar às redes wireless configuradas. Se você quiser se conectar a uma rede cabeada, deverá (além de configurar a rede), desativar o wpa_supplicant, usando o comando:

# service wpa_supplicant stop

Postado por
Siga em:
Compartilhe
Deixe seu comentário
Assine nossa Newsletter
Assine nossa newsletter e receba nossa seleção de conteúdo sobre tecnologia, games, IA e internet em seu email.
Veja também
Publicações Relacionadas
Img de rastreio
Localize algo no site!