Arch linux wifi funciona manualmente, ¿cómo hacerlo automático?


22

Ejecutar Arch Linux con el kernel 3.6.11-12-ARCH + en mi Raspberry Pi.

Tengo un dongle usb wifi de Linksys (WUSB54GC v3) que se ejecuta y funciona después de ejecutar los siguientes 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

¿Cómo hago para que funcione el wifi en este dispositivo cada vez que arranco? Eventualmente quiero implementarlo en una ubicación sin una conexión por cable (de ahí el wifi), pero obviamente no puedo hacerlo si tengo que iniciar / conectar manualmente el wifi cada vez.


La conexión inalámbrica se gestiona mejor a través de un demonio como network-managero wicd.
jordanm

1
Raza

3
netcfg se deprecia a favor de netctl (aunque todavía no estoy seguro si ese cambio se ha reflejado en ARM respin de Arch), pero sí, esa es la forma de manejar la configuración de su red.
fukawi2

Respuestas:


18

Deberías usar netctl. Es el sistema de gestión de red integrado Arch Linux. Si aún no está instalado (debería estarlo), ejecute y pacman -Syu netctlluego mire /etc/netctl. Hay ejemplos de archivos de configuración en /etc/netctl/examples.

Para ponerse en marcha rápidamente:

  1. Tome nota del nombre del dispositivo para su adaptador inalámbrico. Reemplace todas las instancias de wlan0en mis ejemplos con el nombre que coincida con su configuración.
  2. Asegúrese de haber instalado los paquetes necesarios.

    pacman -Syu wpa_supplicant dhcpcd

    1. Se requiere wpa_supplicant para los puntos de acceso protegidos WPA, y se requiere dhcpcd para obtener una IP de cualquier red que use un servidor DHCP, como se detalla en la wiki de Arch Linux.
  3. Copie un ejemplo apropiado:

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

  4. Edite su nueva configuración en /etc/netctl/somedescriptivenamepara adaptarse a su configuración.
  5. Habilite el servicio netctl-auto para su adaptador inalámbrico. Nuevamente, reemplace wlan0 con el nombre del dispositivo para su configuración.

    systemctl enable netctl-auto@wlan0.service

Algunas cosas a tener en cuenta:

  • netctl se conectará automáticamente a cualquier perfil que tenga en / etc / netctl cuando se mueva dentro del rango del punto de acceso
  • Esta configuración solo funcionará con perfiles usando Security=wpa-configsectiony Security=wpa.
  • Deshabilite todos los perfiles wifi previamente habilitados utilizando, de lo netctl disable profilenamecontrario, netctl los iniciará dos veces en el arranque una vez que netctl-auto esté habilitado.

Para obtener más información, consulte la entrada wiki de Netctl .


que netctl-auto listno devuelve perfiles, mientras que 4 están configurados y el trabajo con netctl manual es normal o normal? ¿Cómo puedo usar netctl-auto switch-to Xsi aparentemente no hay valores X válidos? Encuentro que la entrada wiki de netctl-auto arch es sorprendentemente inútil, ¿tal vez sabes dónde encontrar un mejor documento?
Nikana Reklawyks

Nikana, no uso netctl-automucho, pero solo algunos consejos: 1. netctl-autoes solo para conexiones inalámbricas. Si está buscando usarlo para ethernet, use netctl-ifplugd. 2. Asegúrese de no utilizarlo wpa-configcomo método de seguridad, y en lugar de wpa-configsectiono wpa. Los perfiles no se mostrarán cuando se usewpa-config
Jacob Wiltse

Gracias. Desafortunadamente para los futuros espectadores, mi configuración funciona ahora, no es que recuerde haber hecho nada especial. netctl-auto listdevuelve un montón de perfiles como debería. Creo que tal vez uno de mis perfiles no era compatible con netctl-auto debido a este wpa-configrequisito, que impedía que todos aparecieran.
Nikana Reklawyks

Como mencioné en mi respuesta, debe eliminar los perfiles creados con netctl antes de habilitar netctl-auto. Luego, después de iniciar netctl-auto, vuelva a agregarlos.
Johnny, ¿por qué el

No usarías wlan0 como se muestra aquí. Tienes que usar tu ID de WiFi correcta.
Johnny, ¿por qué el

5

Una forma más fácil que elimina algunas de las conjeturas sobre cómo crear perfiles netctl(tomados de la netctlpágina en la wiki del arco):

Paso 1. Configure Internet inalámbrico manualmente, utilizando wpa_supplicantcomo se describe en el OP. Si su sistema no lo tiene instalado, hágalo $ pacman -S wpa_supplicant.

Paso 2. También necesitarás un dialogpaquete, entonces $ pacman -S dialog. Luego, puede reiniciar su sistema o desconectarse de su red inalámbrica.

Paso 3. Ejecuta $ wifi-menu -o, luego ve a través de la sencilla configuración de Windows / Mac-esque. Puede verificar el valor preestablecido de la identificación de red de su sistema a través de $ sudo netctl list. El valor estaría en el formato de wlan098-SSID. (donde SSID = el nombre de su WLAN)

Paso 4. Finalmente ejecuta $ netctl enable wlan098-SSIDy reinicia el sistema$ reboot

Aún así, ocasionalmente puede recibir un mensaje de error con algo como temporarily unable to resolve nameo algo, pero intente hacer ping nuevamente y debería funcionar.


Sin netctl-auto, no se volverá a conectar automáticamente ya que los puntos de acceso están dentro del alcance. Vea mi respuesta para configurar.
Johnny, ¿por qué el

3

Creo que todas las otras respuestas son defectuosas, como se explica en mis comentarios sobre ellas.

Estos pasos se conectarán automáticamente al punto de acceso más fuerte. Probado en una instalación de arco estándar con systemd (puede funcionar en otros sistemas operativos):

Configuración de una sola vez:

  • Asegúrese de que esté instalado lo siguiente: dialog, wpa_supplicant, dhcpcd, netctl, wifi-menu.

  • en xfce, agregue el complemento xfce4-wavelan-plugin. Esa es solo una luz indicadora que muestra cuándo estás conectado. No tiene otro propósito.

  • Asegúrese de que todos los demás administradores y servicios de red se eliminen o deshabiliten. https://wiki.archlinux.org/index.php/Netctl#Wireless

  • eliminar cualquier perfil de red creado previamente. https://www.ostechnix.com/fix-job-netctl-service-failed-error-arch-linux/

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

  • habilitar el servicio netctl-auto. Este es el servicio que se conectará automáticamente. systemctl enable netctl-auto@YourWifiDeviceID.service

Conéctese a un punto de acceso por primera vez:

  • Ejecutar wifi-menu. Requiere raíz pkexec wifi-menu -o o sudo wifi-menu -o

Deje de -over las contraseñas de red a medida que las escribe

  • Flecha hacia abajo, seleccione la conexión deseada, presione enter, acepte el nombre de la conexión, ingrese la contraseña.

Agregue más puntos de acceso según sea necesario. netctl-auto se volverá a conectar automáticamente al punto de acceso más fuerte disponible a partir de entonces.


Respuesta mejorada
johny por qué
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.