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


21

在我的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

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


最好通过守护进程(例如network-manager或)管理无线wicd
jordanm

1
您是否尝试过以下指令自动连接到无线网络:wiki.archlinux.org/index.php/Netcfg
Raza

3
netcfg已被netctl折旧(虽然不确定该更改是否已在Arch的ARM重新发布中反映出来),但是是的,这是处理网络配置的方法。
fukawi2 2013年

Answers:


17

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

要快速启动并运行:

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

    pacman -Syu wpa_supplicant dhcpcd

    1. WPA_supplicant是受WPA保护的访问点所必需的,并且dhcpcd是从Arch IP Wiki上列出的使用DHCP服务器从任何网络获取IP所必需的。
  3. 复制一个适当的示例:

    cp /etc/netctl/example/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条目


不会netctl-auto list返回任何配置文件,而配置了4个配置文件并且预期会使用手动netctl还是异常?netctl-auto switch-to X如果似乎没有有效的X值,我该如何使用?我发现netctl-auto arch Wiki条目出奇地无益,也许您知道在哪里可以找到更好的文档?
Nikana Reklawyks,

Nikana,我使用的netctl-auto不是很多,但是有一些提示:1. netctl-auto仅用于无线连接。如果您希望将其用于以太网,请使用netctl-ifplugd。2.确保您不使用或wpa-config作为安全方法,而不要使用wpa-configsectionwpa。使用时不会显示个人资料wpa-config
Jacob Wiltse

谢谢。不幸的是,对于将来的观看者来说,我的设置现在可以使用了,并不是我记得做任何特别的事情。netctl-auto list返回一堆应该的配置文件。我认为我的个人资料之一可能与netctl-auto不兼容,因为没有此wpa-config要求,这阻止了所有个人资料的出现。
Nikana Reklawyks

如我的回答中所述,在启用netctl-auto之前,需要删除使用netctl创建的配置文件。然后,在启动netctl-auto之后,重新添加它们。
约翰尼,为什么

您将不会使用如此处所示的wlan0。您必须使用正确的WiFi ID。
johny为什么

5

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

步骤1.使用wpa_supplicantOP中所述手动设置无线互联网。如果您的系统没有安装,请执行$ 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通,它便会起作用。


如果没有netctl-auto,热点不会超出范围,您将不会自动重新连接。请参阅我的设置答案。
约翰尼,为什么

3

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

这些步骤将自动连接到最强的热点。在使用systemd的标准Arch安装中进行了测试(可能在其他OS上工作):

一次性设置:

首次连接到热点:

  • 运行wifi-menu。需要root。 pkexec wifi-menu -o 要么 sudo wifi-menu -o

-o键入后,请取消查看网络密码。

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

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


答案有所改善
约翰尼为什么
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.