分类: LINUX
2011-02-24 19:46:40
Contents []
|
在Arch Linux(或其他Linux发行版)下配置无线网络一般分两步.第一步是识别您的硬件并为您的硬件安装驱动程序,第二步是选择一种方式来管理您的无线连接。这篇文章涵盖了这两方面,并提供了无线管理工具的连接地址。
关于Arch新装系统: 在安装Archlinux时,无线网络驱动和工具已经包含在base-devel
下面.确保为您的无线网卡安装正确的驱动.通常在初始化的光盘系统,和新装的系统一样,Udev会加载合适的驱动,并创建无线网络界面.如果在安装
Archlinux系统的时候没有配置无线网卡,请确保下列所需的软件包已经通过pacman安装完毕,(驱动,必须的固件,无线工
具
(这里有一些"老驱动"可能效果不错).
If you have wired ethernet available, and are simply adding wireless functionality to an existing system, and did not include wireless_tools during initial installation, use pacman to install:
# pacman -S wireless_toolsThe drivers' corresponding package names are all highlighted in bold on this page. The packages can be installed during initial package selection on the Arch installation media and can also be installed later with pacman, e.g.:
# pacman -S madwifi软件包wireless_tools已经放在安装包的base-devel。
你必须使用这些用户工具来来启用无线连接,所以你必须从你的安装介质中安装他们(在选择软件包阶段)。特别如果你没有其他方式可以上网的 话,你会在接下来要安装你的Arch System的阶段卡住:你需要这些无线工具和驱动,但是为了获取他们,你还是需要无线工具和驱动。
Wireless QuickstartThe general procedure will be:
or
# lshwdor
# lspci | grep -i netIf your WEP key is ASCII, prefix with s:, e.g.:
# iwconfig ath0 essid linksys key s:mywepkey对于应用更为广泛的开放式WEP加密,应该是如下命令:
# iwconfig ath0 essid linksys open key s:mywepkeyDone.
Refer to to ensure a permanent configuration solution for your system.
If you are using WPA, refer to below.
安装驱动和固件这里包含如何获取你的网卡驱动的细节。或许你有好几种驱动可以选择,你可以访问来帮助你获取最佳驱动。
wlan-ng pacman -S wlan-ng24 或者 pacman -S wlan-ng26 rt2x00Ralink 芯片的通用驱动 (替代 rt2500,rt61,rt73 etc). 使用wext驱动程序接口,兼容 wpa_supplicant.这个驱动现在已经集成到 2.6.24内核中。可以用下边的方法手动加载...
modprobe rt2500pci(用rt2500pci来代替你的硬件,例如rt2400pci, rt2500usb, rt61pci, rt73usb) 有些芯片需要一个firmware文件. 请查看 .
RT2500对于基于Ralink的PCI/PCMCIA的rt2500系列芯片(Ralink的支持802.11g的第一代芯片):
pacman -S rt2500支持标准的未加密和WEP的链接的iwconfig工具,尽管它可能对于命令的顺序非常敏感。
在使用标准wext接口时wpa_supplicant是不被支持的。驱动支持WPA(使用硬件加密),但是用的是一种不标准方式。一些主要的wpa_supplicant(0.6.x)版本可能包含对于这个驱动的特殊支持,而且能用iwpriv命令手动链接到WPA
详情请见 。 这对于下面的RT61和RT73一样适用.
RT61基于PCI/PCMCIA卡的Ralink的后来的802.11g的芯片(包括那些支持转悠的MIMO模式的芯片)。
详见.
RT73基于USB设备的Ralink的后一代的802.11g的芯片(包括那些支持受限的MIMO模式的)。 详见.
madwifi pacman -S madwifi这个模块叫做 ath_pci. 为了能够使用所在国家制定的关于channels和transmit power settings, 你可能需要在加载MadWifi驱动的时候添加一个countrycode的配置项. 例如, 在荷兰的时候, 你可能需要用如下的代码来加载MadWifi驱动:
modprobe ath_pci countrycode=528你可以使用 iwlist 命令来检查你的设置, 可以从 man iwlist 或者 上面得到更多的信息. 为了让系统启动的时候就能够自动应用上那些设置, 可以把它们放到 /etc/modprobe.conf 文件中去:
options ath_pci countrycode=528注意: 我不得不完全移除那些countrycode的选项否则ath0设备不被创建(andyrtr, kernel 2.6.21)!
ipw2100 与 ipw2200根据你的芯片型号,执行:
pacman -S ipw2100-fw或者:
pacman -S ipw2200-fw然后重新启动来加载驱动。
iwl3945 与 iwl4965Intel的新 驱动同时支持这两款芯片,该驱动已集成到Linux内核2.6.24以上的内核中。可以用下边的命令轻松安装你的芯片驱动:
pacman -S iwlwifi-3945-ucode或者:
pacman -S iwlwifi-4965-ucode如果你的rc.conf中的MOD_AUTOLOAD 设置成了yes(默认就是yes),恭喜你,你的驱动已经安装完毕了. 重新启动并且在终端下运行ifconfig来检查你的驱动是否正常工作了.运行结果中应该包含一个wlan0的项.(译者注:lsmod |grep iwl可以查看驱动是否已经加载了)
如果你喜欢手动加载驱动(就是MOD_AUTOLOAD设成no的情况), 你可以把它加到MODULES 组里边去:
在MODULES=()的列表中添加 iwl3945或者iwl4965, 当然,这取决于你是3945ABG还是4965AGN的网卡
用CTRL + X, Y 退出nano并保存(译者废话两句:当然,你用gedit,kwrite等纯文本编辑器来编辑也完全没问题,但是千万别用windows下的写字板来编辑,这个家伙会把换行'0a'改成'0a 0d'而让你的配置文件坏掉).
这样,重启后就可以自动加载了。在终端中运行'ifconfig'会发现一个名字叫wlan0的新网络接口。
提示:如果iwlwifi驱动经测试没法使用(据译者的测试,iwlwifi就能用),不妨用windows下的NETw4x32驱动配合ndiswrapper来试试,可能会工作得很好。
注意: ipw3945驱动已经停止开发了. 上边提到的iwlwifi应该工作的很好
你应该安装 ipw3945-ucode, ipw3945, and ipw3945d (daemon).
# pacman -S ipw3945 ipw3945-ucode ipw3945d
为了能够启动的时候正确初始化驱动, 需要修改 /etc/rc.conf 文件(需要root权限)...
在modules=()那一行里面, 把ipw3945添加进去
MODULES=(... mii ipw3945 snd-mixer-oss ...)在daemons()那一行里面, 把ipw3945d添加进去(ipw3945d必须在network和dhcdbd/networkmanager前面)
DAEMONS=(syslog-ng ipw3945d network ...)用CTRL + X, Y来保存并退出
在"Loading Modules..."阶段ipw3945模块应该被加载进来, 并且在daemon初始化的时候, 你应该可以看到"Starting IPW3945d"之类的字样, 而且ehtX接口也应该存在了
更新: 在某人的HP nc6320机器上, 除非卸载了ipw3945这个模块, 否则蓝牙是无法连接的.
orinoco这应当是内核的一部分,是已经被安装的。
ndiswrapperNdiswrapper并不是一个真正的驱动,但是如果你无法找到适合你的无线网卡驱动的适合, 它就派上用场了.有的时候, 它是非常有用的.为了使用Ndiswrapper, 你需要Windows驱动中的*.inf文件(*.sys文件应该和*.info在同一个目录中).下面是安装ndiswrapper的几个步骤:
用pacman来安装ndiswrapper:
pacman -S ndiswrapper ndiswrapper-utils注意: 较早版本的内核需要安装的是ndiswrapper-beyond,而不是ndiswrapper!
注意: 如果你的Arch无法联网的话, 可以从下 载ndiswrapper到本地硬盘来进行安装.需要下载的是ndiswrapper(或者ndiswrapper-beyond)和 ndiswrapper-utils软件包.你也能也需要下载最新的内核kernel26(或者更早版本的内核),因为CD上面提供的内核版本可能不是最 新的.
一旦安装好了ndiswrapper,就要开始配置的步骤了.
ndiswrapper -i filename.inf现在基本上就要安装完ndiswrapper了; 剩下的工作就是更新一下/ect/rc.conf文件去设置当启动的时候加载这个模块(下面是一个简单的例子, 你的可能有些区别的):
MODULES=(ndiswrapper snd-intel8x0 !usbserial)最主要的是要把ndiswrapper加到MODULES这一行里面去. 最好通过如下的命令测试一下ndiswrapper是否已经加载了:
modprobe ndiswrapper如果正常的话, 你应该可以看到wlan0接口了. 如果有问题的话, 你可以从 上面得到更多的信息.
prism54从下载与你的网卡匹配的固件驱动。将文件重命名为'isl3890'。如果不存在/lib/firmware那么创建之,然后将'isl3890'放进去。这应该有效。()
ACX100/111从[unstable]库中下载并安装'tiacx'包。
pacman -S tiacx注意:如果你发现kernel log中全是关于驱动的废话,很有可能是以为你正同时运行着Kismet和channel-hopping,你应当在/etc/modprobe.conf中添加
options acx debug=0Broadcom 43xx系列芯片的使用者有一种使用ndiswrapper的方法。 在2.6.17以上的内核中最好使用bcm43xx驱动.
相对于bcm43xx,这驱动相对较好解决,而且驱动已经包含在2.6.24及以上的内核中了.
接下来有两种办法,任选一种:第一种是直接在从 安装"b43-firmware"包。第二种办法就是按下面的来做
如果现有的bcm43xx或者b43不能驱动您的broadcom 43xx无线网卡. 不仅仅是指bcm4312. 请参考.而且可以在上可以找到相应的软件包.这些芯片通常被用于Dell等笔记本平台.
rtl8187参见.
zd1211rw 是ZyDAS ZD1211 802.11b/g USB WLAN芯片的驱动,最近的版本的内核已经包括了。[3]有被支持的设备列表。 你只需要这样安装固件驱动: pacman -S zd1211-firmware Part II: 无线网络管理为了管理已经安装好的无线驱动,并且使无线能正常工作,需要安装一个无线连接管理工具。下面章节将帮助您确定一个最佳管理方法。
过程和需要使用的工具,将依赖于下面几个因素:
The Wired Equivalent Privacy encryption scheme was introduced in 1997. But the discovery of weaknesses in the WEP algorithm in 2001 have made it a poor choice of wireless security protocol. Some tools, such as aircrack, can break the WEP protection in a couple of seconds. Despite this issue, WEP is still popular and the default encryption scheme in many commercial wireless routers.
WPA/WPA2The Wi-Fi Protected Access security protocol was created in response to the WEP weaknesses. WPA and especially WPA2, which uses the AES encryption algorithm, are considered secure. Wi-Fi certified devices must now provide WPA2. Several modes of authentication are supported by WPA/WPA2: a PSK mode (Pre-Shared Key) designed for home and small office use, and an Enterprise (EAP) mode, which requires an authentication server. The following instructions will only cover the PSK method.
管理方法选择This table shows the different methods that can be used to activate and manage a wireless network connection, depending on the encryption and management types, and the various tools that are required. 虽然还有其他办法,但这通常是最常使用的:
管理方法 | No encryption/WEP | WPA/WPA2 PSK |
---|---|---|
手动, 需要每次系统启动重做一次 | ifconfig + iwconfig + dhcpcd/ifconfig | ifconfig + iwconfig + wpa_supplicant + dhcpcd/ifconfig |
自动管理, centralized without network profile support | define interface in /etc/rc.conf | not covered |
自动管理, with network profiles support | Netcfg, wicd, NetworkManager, etc… |
无论选的那个方案,最好先尝试手动方法。这将有助于您了解不同步骤的意义,并在出问题时解决之。 Another tip: if possible
(e.g. if you admin your wifi access point), try connecting with no
encryption, to check everything works. Then try using encryption, either
WEP (simpler to configure) or WPA.
软件包 wireless_tools 提供的程序是建立一个无线连接的基础工具。如果你需要使用WPA/WPA2 encryption, 您还需要软件包wpa_supplicant。 These powerful userspace console tools work extremely well and allow complete, manual control from the shell.
These examples assume your wireless device is wlan0. Replace wlan0 with the appropriate device name.
1. (可选,可能需要) 一些无线网卡在使用wireless_tools前需要激活kernel interface:
# ifconfig wlan0 up2. (可选,可能需要) See what access points are available:
# iwlist wlan0 scanWe assume you want to use the essid named MyEssid.
3. Depending on the encryption, you need to associate your wireless device with the access point to use and pass the encryption key.
using an hexadecimal key:
# iwconfig wlan0 essid "MyEssid" key 1234567890using an ascii key:
# iwconfig wlan0 essid "MyEssid" key s:asciikeyYou need to edit the /etc/wpa_supplicant.conf file as described in . Then, issue this command:
# wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.confThis is assuming your device uses the wext driver. If this does not work, you may need to adjust these options. Check for more information and troubleshooting.
4. Finally, provide an IP address to the network interface. Simple examples are:
# dhcpcd wlan0for DHCP, or
# ifconfig wlan0 192.168.0.2for static IP.
For example:
# /etc/rc.conf并不是所有的无线网卡都是wlan0. 你可以用ifconfig -a来查看你的网络接口。举个例子:如果你的无线网络接口是ath0的话,你就应该把wlan_wlan0 改成wlan_ath0:
wlan_ath0="ath0 essid MyEssid key 12345678"把ath0加入INTERFACES= 行,替换wlan0.)
provides a versatile, robust and fast solution to networking on Arch.
It uses a profile based setup and is capable of detection and connection to a wide range of network types. This is no harder than using graphical tools. Following the directions above, you can get a list of wireless networks. Then, as with graphical tools, you will need a password.
Occasionally, you have to properly at first, if you want to use an encrypted wireless connection (eg: wep, wpa, wpa2, etc.) in netcfg, because netcfg package depends on wpa_supplicant.
详细文档: 开发中版本的详细文档: Network Profiles development
下面还有一系列的替代方案:
wireless-tools这些强大的控制台工具十分有效而且能够实现完全的、手工的控制。这些例子假设你的无线设备是wlan0。将wlan0换成你自己的设备名称。 很多网卡需要你的核心接口是打开的,这样你才能使用无线工具:
ifconfig wlan0 up扫描可用接入口:
iwlist wlan0 scan利用扫描结果,告诉你的无线设备去用哪一个接入口。例如:
iwconfig wlan0 essid linksys然后像平时一样设置网络接口。简单的例子如下:
dhcpcd wlan0或者
ifconfig wlan0 192.168.0.2除了能管理有限链接,NetworkManager还提供了一个易于使用的图形界面程序来选择你想要的的无线移动链接。
详情请见 。
WicdWicd 是一个网络管理工具,能够同时管理无线和有线连接。程序是用Python 和 Gtk写的,比NetworkManager对依赖的要求 更少, 非常适合轻量级桌面用户。 Wicd 现在已经被放在extra里面,有适合 i686和x86_64的版本。
想了解更多,请阅读 的wiki.
AutowifiAutowifi is a daemon that configures your wireless network automatically depending on the ESSID. Once configured, no user interaction is necessary and no GUI tools are required.
For more information, see the wiki.
Wifi RadarWiFi Radar是一个Python/PyGTK2的管理无线配置的程序(只有无线的)。它能够扫描可用的网络、为你所选择的网络创建新的配置。
详情请见。
WlassistantWlassistant是一个非常简单直观的图形界面无线网连接管理程序。 安装方法如下:
pacman -S wlassistantWlassistant必须以root权限运行:
sudo wlassistant一种使用wlassistant管理/etc/rc.conf里面有的无线网卡的方法是指出你经常使用的链连接点。开机后你的网卡就会自动连接到这 个essid,但是如果其他的无线网络是需要的/可用的,wlassistant在那时会请求连入它们。通过在名称前加一个@来后台运行/etc /rc.conf中的network守护程序来减少开机等待时间。
其他资源