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

Mat*_*att 27 linux wifi arch-linux

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

我有一个 Linksys wifi usb 加密狗 (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
Run Code Online (Sandbox Code Playgroud)

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

小智 23

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

要快速启动并运行:

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

    pacman -Syu wpa_supplicant dhcpcd

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

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

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

    systemctl enable netctl-auto@wlan0.service

需要注意的几点:

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

有关更多信息,请参阅Netctl wiki 条目


xda*_*liu 8

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

步骤 1. 手动设置无线互联网,wpa_supplicant按照 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 就可以了。