Isso é o que funcionou para mim. Essa é uma solução bem complicada, espero que alguém possa melhorar essa resposta.
wlp3s0
é minha interface de rede wifi, o DIR-300NRU é o ssid. Ajuste-os ao seu caso.
Minha configuração de interface em /etc/network/interfaces
:
auto wlp3s0
allow-hotplug wlp3s0
iface wlp3s0 inet dhcp
wireless-essid "DIR-300NRU"
wireless-mode managed
Eu corro:
sudo ifup wlp3s0
(o próximo passo não faz parte da solução)
Eu verifico meu dispositivo Wi-Fi:
$ sudo iw dev wlp3s0 info
Interface wlp3s0
ifindex 3
wdev 0x1
addr 74:df:bf:b5:07:bb
type managed
wiphy 0
txpower 20.00 dBm
Enquanto o DHCP está tentando se conectar, eu corro o seguinte em outro terminal:
sudo iw dev wlp3s0 connect DIR-300NRU
Agora o wifi está funcionando até que eu reinicie o sistema. Eu posso ver que a saída de sudo iw dev wlp3s0 info
muda para:
$ sudo iw dev wlp3s0 info
Interface wlp3s0
ifindex 3
wdev 0x1
addr 74:df:bf:b5:07:bb
ssid DIR-300NRU
type managed
wiphy 0
channel 1 (2412 MHz), width: 40 MHz, center1: 2422 MHz
txpower 20.00 dBm