Arch linux wifi funciona manualmente, como torná-lo automático?


21

Executando o Arch Linux com o kernel 3.6.11-12-ARCH + no meu Raspberry Pi.

Eu tenho um dongle usb wifi da Linksys (WUSB54GC v3) que está em execução e funcionando depois de executar os seguintes comandos:

$> sudo ifconfig wlan0 up
$> sudo iwlist scan
$> sudo iwconfig wlan0 mode managed essid myssid key "mykey" retry 7
   # Only had to do this next one the first time
$> sudo wpa_passphrase myssid "mypassword" > /etc/wpa_supplicant/wpa_supplicant.conf 
$> sudo wpa_supplicant -B -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
$> sudo dhcpcd wlan0

Como faço para que o wifi neste dispositivo funcione sempre após a inicialização? Eventualmente, eu quero implantá-lo no local sem uma conexão com fio (daí o wifi), mas obviamente não posso fazer isso se tiver que iniciar / conectar manualmente o wifi todas as vezes.


A conexão sem fio é melhor gerenciada por meio de um daemon como network-managerou wicd.
jordanm

1
Você tentou esta instrução para conectar automaticamente a redes sem fio: wiki.archlinux.org/index.php/Netcfg
Raza

3
O netcfg é depreciado em favor do netctl (embora ainda não tenha certeza se essa alteração foi refletida na resposta do ARM do Arch), mas sim, essa é a maneira de lidar com a sua configuração de rede.
fukawi2

Respostas:


17

Você deve usar o netctl. É o Arch Linux integrado no sistema de gerenciamento de rede. Se ainda não estiver instalado (deve estar), execute pacman -Syu netctle procure /etc/netctl. Existem exemplos de arquivos de configuração em /etc/netctl/examples. Para usar um exemplo, basta copiá-lo /etc/netctle editá-lo para ajustar-se à sua configuração. Portanto, para o seu caso, execute cp /etc/netctl/example/wireless-wpa /etc/netctl/somedescriptivenamee edite /etc/netctl/somedescriptivenamepara ajustar sua configuração.
Para ativar a configuração automática de suas redes sem fio com systemd, verifique se o wpa_actiondpacote está instalado e ative o serviço:systemctl enable netctl-auto@wlan0.service

Para mais informações, consulte a entrada do wiki Netctl .


que netctl-auto listnão retorna perfis, enquanto 4 estão configurados e o trabalho com netctl manual é esperado ou anormal? Como posso usar netctl-auto switch-to Xse aparentemente não houver valores X válidos? Acho a entrada wiki do netctl-auto arch surpreendentemente inútil, talvez você saiba onde encontrar um documento melhor?
Nikana Reklawyks

Nikana, eu não uso netctl-automuito, mas apenas algumas dicas: 1. netctl-autoé apenas para conexões sem fio. Se você deseja usá-lo para ethernet, use netctl-ifplugd. 2. Certifique-se de não usar wpa-configcomo método de segurança e em vez de wpa-configsectionou wpa. Perfis não vai aparecer quando se utilizawpa-config
Jacob Wiltse

Obrigado. Infelizmente para os telespectadores futuros, minha configuração funciona agora, não que eu me lembre de fazer algo especial. netctl-auto listretorna vários perfis como deveria. Acho que talvez um dos meus perfis não fosse compatível com o netctl-auto por causa desse não- wpa-configrequisito, o que impedia que todos eles aparecessem.
Nikana Reklawyks

Como mencionado na minha resposta, você precisa remover os perfis criados com o netctl antes de ativar o netctl-auto. Depois de iniciar o netctl-auto, adicione-os novamente.
johny why

Você não usaria wlan0 como mostrado aqui. Você precisa usar seu ID WiFi correto.
johny why

5

Uma maneira mais fácil que elimina algumas das suposições sobre como criar perfis netctl(extraídos da netctlpágina no wiki do arch):

Etapa 1. Configure a Internet sem fio manualmente, usando wpa_supplicantcomo descrito no OP. Se o seu sistema não tiver instalado, faça $ pacman -S wpa_supplicant.

Etapa 2. Você também precisará do dialogpacote $ pacman -S dialog. Em seguida, você pode reiniciar o sistema ou desconectar-se da sua rede sem fio.

Etapa 3. Execute $ wifi-menu -oe siga as configurações muito simples do Windows / Mac. Você pode verificar o valor predefinido da identificação de rede do seu sistema via $ sudo netctl list. O valor estaria no formato de wlan098-SSID. (onde SSID = nome da sua WLAN)

Etapa 4. Finalmente, execute $ netctl enable wlan098-SSIDe reinicie o sistema$ reboot

Ainda assim, ocasionalmente, você pode receber uma mensagem de erro com algo assim temporarily unable to resolve name, mas tente executar o ping novamente e ele deve funcionar.


Sem o netctl-auto, você não se reconectará automaticamente quando os pontos de acesso estiverem dentro do alcance. Veja minha resposta para configurar.
johny why

3

Acredito que todas as outras respostas são falhas, como explicado nos meus comentários sobre elas.

Essas etapas serão conectadas automaticamente ao ponto de acesso mais forte. Testado em uma instalação padrão do arch com systemd (pode funcionar em outros sistemas operacionais):

Configuração única:

  • Verifique se o seguinte está instalado: dialog, wpa_supplicant, dhcpcd, netctl, wifi-menu.

  • no xfce, adicione o xfce4-wavelan-plugin. Essa é apenas uma luz indicadora que mostra quando você está conectado. Não tem outro propósito.

  • Verifique se todos os outros gerenciadores e serviços de rede foram removidos ou desativados. https://wiki.archlinux.org/index.php/Netctl#Wireless

  • remova quaisquer perfis de rede criados anteriormente. https://www.ostechnix.com/fix-job-netctl-service-failed-error-arch-linux/

  • Obtenha seu ID de dispositivo WiFi basename $(ls -d /sys/class/net/w*)

  • habilite o serviço netctl-auto. Este é o serviço que se conectará automaticamente. systemctl enable netctl-auto@YourWifiDeviceID.service

Conecte-se a um ponto de acesso pela primeira vez:

  • Corra wifi-menu. Requer raiz. pkexec wifi-menu -o ou sudo wifi-menu -o

Deixe -ode ver as senhas de rede enquanto você digita.

  • Seta para baixo, escolha a conexão desejada, pressione Enter, aceite o nome da conexão, digite a senha.

Adicione mais pontos de acesso, conforme necessário. O netctl-auto se reconectará automaticamente ao ponto de acesso mais forte disponível posteriormente.


Resposta melhorada
johny why 08/12
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.