Esqueci-me desta questão; Eu acabei de redescobri-lo e pensei que poderia colocar isso em prática.
Quando fiz esta pergunta, usei um gerenciador de rede bastante básico. (Agora eu executo wpa_supplicant
, ifconfig
e route
manualmente.) Gerentes mais avançados como NetworkManager
devem lidar com isso automaticamente, mas se não, basta executar o comando wpa_cli
(você provavelmente terá que ser root), digite reassociate
nesse prompt (Control-C quando terminar). Isso faz com que o wpa_supplicant reconecte sem diminuir a interface, o que redefine a tabela de roteamento. Outra alternativa é executar ifconfig <interface> down
seguido de ifconfig <interface> up
(o que eu estava fazendo quando fiz esta pergunta). Isso fará com que wpa_supplicant
se reconecte, mas também exclui a entrada da tabela de roteamento que foi definida por dhclient
, portanto, você terá que executar route add -net default gw <router IP address> dev <interface>
(o que eu não consegui descobrir). Basta desligar e ligar novamente o Wi-Fi (ou desconectar e reconectar, se isso for o seu objetivo) em seu gerenciador de rede também deve funcionar.
O Wi-Fi ainda se desconecta ocasionalmente, mas quando isso acontece, eu sempre digo ao wpa_supplicant
para se associar e ele funciona novamente após alguns segundos. Esse é provavelmente um problema que todos os sistemas operacionais têm, eles apenas se associam automaticamente em segundo plano.