Arch linux wifi 手动工作,如何使其自动?

Arch linux wifi 手动工作,如何使其自动?

在我的 Raspberry Pi 上运行带有内核 3.6.11-12-ARCH+ 的 Arch Linux。

我有一个 Linksys wifi usb dongle (WUSB54GC v3),在执行以下命令后正在运行并工作:

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

如何让该设备上的 wifi 每次启动后都能工作?最终我想将它部署在没有有线连接(因此是wifi)的位置,但如果我每次都必须手动启动/连接wifi,我显然无法做到这一点。

答案1

你应该使用netctl。它是Arch Linux内置的网络管理系统。如果尚未安装(应该已安装),请运行pacman -Syu netctl然后查看/etc/netctl.中有示例配置文件/etc/netctl/examples

要快速启动并运行:

  1. 记下无线适配器的设备名称。将我的示例中的所有实例替换wlan0为与您的设置匹配的名称。
  2. 确保您已安装所需的软件包。

    pacman -Syu wpa_supplicant dhcpcd

    1. WPA 保护的接入点需要 wpa_supplicant,并且使用 DHCP 服务器从任何网络获取 IP 需要 dhcpcd,如 Arch Linux wiki 上所列。
  3. 复制一个适当的例子:

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

  4. 编辑您的新配置以/etc/netctl/somedescriptivename适合您的设置。
  5. netctl-auto为您的无线适配器启用该服务。再次替换wlan0为您的设置的设备名称。

    systemctl enable [email protected]

有几点需要注意:

  • 当您进入接入点范围时,netctl 将自动连接到 /etc/netctl 中的任何配置文件
  • 此设置仅适用于使用Security=wpa-configsection和 的配置文件Security=wpa
  • 使用 禁用所有以前启用的 wifi 配置文件netctl disable profilename。否则,一旦启用 netctl-auto,netctl 将在启动时启动它们两次。

欲了解更多信息,请参阅Netctl 维基条目

答案2

一种更简单的方法,消除了有关如何制作配置文件的一些猜测netctl(取自netctlarch wiki 上的页面):

wpa_supplicant步骤1.按照OP中所述使用手动设置无线互联网。如果您的系统没有安装它,请执行$ pacman -S wpa_supplicant.

步骤 2. 您还需要dialog包,因此$ pacman -S dialog.然后,您可以重新启动系统或断开与无线网络的连接。

步骤 3. 运行$ wifi-menu -o,然后进行非常简单的 Windows/Mac 式设置。您可以通过查看系统网络 ID 的预设值$ sudo netctl list。该值的格式为wlan098-SSID. (其中 SSID = 您的 WLAN 名称)

步骤4.最后运行$ netctl enable wlan098-SSID并重新启动系统$ reboot

不过,偶尔您可能会收到类似以下内容的错误消息temporarily unable to resolve name或者其他什么,但只要再次尝试 ping 就可以了。

答案3

我相信所有其他答案都是有缺陷的,正如我对它们的评论中所解释的那样。

这些步骤将自动连接到最强的热点。使用 systemd 在标准 arch 安装上进行测试(可能适用于其他操作系统):

一次性设置:

或者,只需禁用它们,正如 @JacobWiltse 在另一个答案的评论中所解释的那样。wiki.archlinux.org/index.php/Netctl#Wireless

  • 获取您的 WiFi 设备 ID basename $(ls -d /sys/class/net/w*)

  • 启用 netctl-auto 服务。这是将自动连接的服务。 systemctl enable [email protected]

首次连接热点:

  • 跑步wifi-menu。需要根。 pkexec wifi-menu -o 或者 sudo wifi-menu -o

保留-o以便在键入时查看网络密码。

  • 向下箭头,选择所需的连接,按 Enter 键,接受连接名称,输入密码。

根据需要添加更多热点。此后 netctl-auto 将自动重新连接到最强的可用热点。

相关内容