Arch linux wifi fonctionne manuellement, comment le rendre automatique?

22

Exécuter Arch Linux avec le noyau 3.6.11-12-ARCH + sur mon Raspberry Pi.

J'ai un dongle USB Linksys wifi (WUSB54GC v3) qui fonctionne et fonctionne après avoir exécuté les commandes suivantes:

$> 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

Comment puis-je faire fonctionner le wifi sur cet appareil à chaque fois après le démarrage? Finalement, je veux le déployer sur place sans connexion filaire (d'où le wifi), mais je ne peux évidemment pas le faire si je dois démarrer / connecter manuellement le wifi à chaque fois.

Mat
la source
Le sans fil est mieux géré via un démon tel que network-managerou wicd.
jordanm
1
Avez-vous essayé cette instruction pour vous connecter automatiquement aux réseaux sans fil: wiki.archlinux.org/index.php/Netcfg
Raza
3
netcfg est déprécié en faveur de netctl (je ne sais pas encore si ce changement a été reflété dans la réponse ARM d'Arch), mais oui, c'est la façon de gérer votre configuration réseau.
fukawi2

Réponses:

18

Vous devez utiliser netctl. Il s'agit du système de gestion de réseau Arch Linux intégré. S'il n'est pas déjà installé (il devrait l'être cependant), exécutez pacman -Syu netctlpuis recherchez /etc/netctl. Il existe des exemples de fichiers de configuration dans /etc/netctl/examples.

Pour être opérationnel rapidement:

  1. Prenez note du nom de l'appareil pour votre adaptateur sans fil. Remplacez toutes les instances de wlan0dans mes exemples par le nom qui correspond à votre configuration.
  2. Assurez-vous d'avoir installé les packages requis.

    pacman -Syu wpa_supplicant dhcpcd

    1. wpa_supplicant est requis pour les points d'accès protégés par WPA, et dhcpcd est requis pour obtenir une IP à partir de n'importe quel réseau utilisant un serveur DHCP, comme indiqué sur le wiki Arch Linux.
  3. Copiez un exemple approprié:

    cp /etc/netctl/example/wireless-wpa /etc/netctl/somedescriptivename

  4. Modifiez votre nouvelle configuration à /etc/netctl/somedescriptivenamepour l'adapter à votre configuration.
  5. Activez le service netctl-auto pour votre adaptateur sans fil. Encore une fois, remplacez wlan0 par le nom de l'appareil pour votre configuration.

    systemctl enable [email protected]

Quelques points à noter:

  • netctl se connectera automatiquement à tous les profils que vous avez dans / etc / netctl lorsque vous vous déplacerez dans la plage du point d'accès
  • Cette configuration ne fonctionnera qu'avec les profils utilisant Security=wpa-configsectionet Security=wpa.
  • Désactivez tous les profils wifi précédemment activés en utilisant netctl disable profilenamesinon netctl les démarrera deux fois au démarrage une fois que netctl-auto sera activé.

Pour plus d'informations, veuillez vous référer à l'entrée wiki Netctl .

Jacob Wiltse
la source
qui netctl-auto listne renvoie aucun profil, alors que 4 sont configurés et fonctionnent avec netctl manuel est attendu ou anormal? Comment puis-je utiliser netctl-auto switch-to Xs'il n'y a apparemment pas de valeurs X valides? Je trouve l'entrée wiki de netctl-auto arch étonnamment inutile, peut-être savez-vous où trouver un meilleur document?
Nikana Reklawyks
Nikana, je n'utilise pas netctl-autobeaucoup, mais juste quelques conseils: 1. netctl-autoest uniquement pour les connexions sans fil. Si vous cherchez à l'utiliser pour Ethernet, utilisez netctl-ifplugd. 2. Assurez-vous de ne pas utiliser wpa-configcomme méthode de sécurité, et au lieu de wpa-configsectionou wpa. Les profils ne s'affichent pas lors de l'utilisationwpa-config
Jacob Wiltse
Merci. Malheureusement pour les futurs téléspectateurs, ma configuration fonctionne maintenant, pas que je me souvienne d'avoir fait quelque chose de spécial. netctl-auto listrenvoie un tas de profils comme il se doit. Je pense que peut-être l'un de mes profils n'était pas compatible avec netctl-auto en raison de cette absence d' wpa-configexigence, ce qui les a tous empêchés de s'afficher.
Nikana Reklawyks
Comme mentionné dans ma réponse, vous devez supprimer les profils créés avec netctl avant d'activer netctl-auto. Ensuite, après avoir démarré netctl-auto, ajoutez-les à nouveau.
johny pourquoi
Vous n'utiliseriez pas wlan0 comme indiqué ici. Vous devez utiliser votre identifiant WiFi correct.
johny pourquoi
5

Un moyen plus facile qui élimine une partie de la conjecture sur la façon de créer des profils netctl(tirés de la netctlpage sur le wiki de l'archive):

Étape 1. Configurez Internet sans fil manuellement, en utilisant wpa_supplicantcomme décrit dans l'OP. Si votre système ne l'a pas installé, faites-le $ pacman -S wpa_supplicant.

Étape 2. Vous aurez également besoin d'un dialogpackage $ pacman -S dialog. Ensuite, vous pouvez soit redémarrer votre système, soit vous déconnecter de votre réseau sans fil.

Étape 3. Exécutez $ wifi-menu -o, puis passez par les paramètres très simples de Windows / Mac-esque. Vous pouvez vérifier la valeur prédéfinie de l'ID réseau de votre système via $ sudo netctl list. La valeur serait au format wlan098-SSID. (où SSID = le nom de votre WLAN)

Étape 4. Enfin, exécutez $ netctl enable wlan098-SSIDet redémarrez le système$ reboot

Pourtant, de temps en temps, vous pouvez obtenir un message d'erreur avec quelque chose comme temporarily unable to resolve nameou quelque chose, mais essayez à nouveau de faire un ping et cela devrait fonctionner.

xdavidliu
la source
Sans netctl-auto, vous ne vous reconnecterez pas automatiquement car les points d'accès se trouvent à portée. Voir ma réponse pour la configuration.
johny pourquoi
3

Je crois que toutes les autres réponses sont erronées, comme expliqué dans mes commentaires à leur sujet.

Ces étapes se connecteront automatiquement au point d'accès le plus puissant. Testé sur une installation d'archive standard avec systemd (peut fonctionner sur d'autres systèmes d'exploitation):

Configuration unique:

  • Assurez-vous que les éléments suivants sont installés: dialog, wpa_supplicant, dhcpcd, netctl, wifi-menu.

  • sur xfce, ajoutez le plugin xfce4-wavelan. Ce n'est qu'un voyant lumineux qui indique que vous êtes connecté. Cela n'a pas d'autre but.

  • Assurez-vous que tous les autres gestionnaires de réseau et services sont supprimés ou désactivés. https://wiki.archlinux.org/index.php/Netctl#Wireless

  • supprimez tous les profils réseau créés précédemment. https://www.ostechnix.com/fix-job-netctl-service-failed-error-arch-linux/

  • Obtenez votre ID d'appareil WiFi basename $(ls -d /sys/class/net/w*)

  • activer le service netctl-auto. Il s'agit du service qui se connectera automatiquement. systemctl enable [email protected]

Connectez-vous à un hotspot pour la première fois:

  • Courez wifi-menu. Nécessite root. pkexec wifi-menu -o ou sudo wifi-menu -o

Laissez le -opour voir les mots de passe réseau lorsque vous le tapez.

  • Flèche vers le bas, choisissez la connexion souhaitée, appuyez sur Entrée, acceptez le nom de la connexion, entrez le mot de passe.

Ajoutez plus de points d'accès au besoin. netctl-auto se reconnectera automatiquement au point d'accès le plus puissant disponible par la suite.

johny pourquoi
la source
Réponse améliorée
johny why