Fiz uma pergunta ontem na placa Unix-Linux sobre como eu poderia ter uma maneira menos instável de conectar um laptop Linux ao meu Hotspot pessoal do IPhone. Ele realmente não recebeu uma resposta verdadeira, além da minha própria solução alternativa .
Mas aqui, eu gostaria de colocar a questão em um nível mais teórico. Todos os sistemas operacionais com os quais estou familiarizado, principalmente muitos tipos de Linux, assim como o Windows, usam o que chamo de modelo "Scan/Choose/Connect" para estabelecer conexões WiFi. A Interface de Usuário de todos esses sistemas tem alguma forma de trazer para a tela uma lista de Redes Wifi disponíveis (compiladas a partir de um processo de digitalização), a partir das quais o usuário é convidado a escolher, solicitando então uma credencial (senha), que se validada , permite e faz a conexão. Este é, sem dúvida, um ponto ideal para a grande maioria das interações do usuário para conexão wifi.
Mas, considere o caso de uso do IPhone Personal Hotspot. Um usuário possui um IPhone e um laptop executando algum sistema operacional, digamos Linux, mas também pode ser o Windows. O usuário com bastante frequência precisa usar seu IPhone como provedor de internet para seu laptop em um ambiente onde não há wifi disponível.
Nesse caso de uso, o usuário possui os dois equipamentos. Eles sabem o ID e a senha do ponto de acesso do IPhone. Deve ser possível escrever algum tipo de script de shell (ou arquivo de lote no Windows) fornecendo esses dois itens de dados e informando ao sistema para alternar sua rede de qualquer coisa que esteja tentando apontar (e falhando se não houver wifi) para o IPhone , que o usuário sabe que está próximo e operando. A digitalização não deve ser necessária nesse cenário e torna todo o processo mais frustrante. No meu cenário, a tentativa de conexão será bem-sucedida ou falhará e relatará de acordo.
Pesquisei na Internet uma resposta geralmente aceita para esse caso de uso e não encontrei nada confiável. E eu me pergunto por que não . Alguém pode me explicar por que isso geralmente não é publicado ou me indicar um lugar onde é respondido?
Uma questão relacionada é a seguinte: se um ponto de acesso do IPhone não aparecer na lista de varredura do computador que está tentando se conectar a ele, esse script certamente falhará se for tentado?
Isso é possível, mas ainda envolve a varredura, pois o computador deve descobrir em qual frequência a rede está disponível.
Por exemplo, o NetworkManager salva cada rede Wi-Fi como um "perfil de conexão" que você pode ativar a qualquer momento, por exemplo, usando
nmcli con up <name>
. Mas sempre que você fizer isso, ele ainda precisará pesquisar todos os canais por quaisquer pontos de acesso que forneçam esse SSID - dos quais pode haver vários e/ou podem ter recursos diferentes da última vez. (Seu ponto de acesso sempre encontra um novo canal toda vez que você o ativa, então isso não é algo que o computador possa lembrar.)No entanto, ele ainda pode atingir seu objetivo de se conectar mais rapidamente, pois o NetworkManager se desconectará da rede antiga antes de procurar a nova. Normalmente, quando você está usando ativamente uma rede em um canal específico, o adaptador Wi-Fi não pode ser muito agressivo na busca por redes em outros canais, pois não pode enviar/receber dados durante esse tempo (veja, por exemplo, vários posts de jogadores perguntando como desativar as verificações em segundo plano, pois elas causam latência inesperada) – e há muitos canais que precisam ser verificados, um de cada vez. Isso é pelo menos parte do motivo pelo qual as redes disponíveis podem demorar a aparecer na lista. (Dito isto, abrir a lista de redes nas versões atuais do GNOME aciona uma verificação imediata – mas o equivalente 'nmcli' não.)