Linux下的无线网卡
TP-Link TL-WN510G on Kubuntu
TP-Link TL-WN510G是TP-Link出品的廉价802.11g PCMCIA无线网卡(我花¥130购得,应该还可以更便宜),Kubuntu是著名的Ubuntu项目的KDE版本。
在Linux下驱动无线网卡主要是使用ndiswrapper和iwconfig两个工具。其中ndiswrapper是用来使用Windows驱动的工具,iwconfig是Linux下的无线网管理工具。TL-WN510G是ndiswrapper wiki上被证实可用的一款无线网卡。
步骤:(参考1,参考2)
- 下载ndiswrapper 1.5(or any newest version)的源码,因为Kubuntu自带的ndiswrapper是1.1,版本过低。
- 用下面的命令安装编译源码需要的相应包:
sudo apt-get install debhelper build-essential fakeroot linux-headers-$(uname -r)
- 解压缩下载下来的源码包,进入解压出来的目录
- 因为Ubuntu跟普通linux目录结构不太一样,用下面的命令替换一下:
sed -e "s/misc/kernel\/drivers\/net\/ndiswrapper/g" debian/rules > debian/temp mv debian/temp debian/rules
- 运行下面的命令来安装:
make sudo make install
- 准备好你的Windows驱动,就是安装光盘上那个Driver目录。注意要使用安装光盘上的那个版本。我用过tp-link主页上下载的新版本,结果是加载无线网卡的时候有80%的机会造成内核crash -_-
- 进入Driver目录,运行
sudo ndiswrapper -i 11gAdapter.inf
来安装驱动,然后Driver目录就可以不管了(删掉也可以,ndiswrapper自己复制了一份在/etc/ndiswrapper下),可以用
ndiswrapper -l
看到驱动挂载成功的信息
Installed ndis drivers: 11gadapter driver present, hardware present
成功后用下面的命令建立wlan0这个别名:
sudo ndiswrapper -m
- 加载ndiswrapper模块,运行下面的命令:
sudo depmod -a sudo modprobe ndiswrapper
运行完后可以用下面的命令看看系统日志:
dmesg | grep ndiswrapper
如果成功,应该可以看到下面的日志:
ndiswrapper version 1.5 loaded ndiswrapper: driver ''11gAdapter'' added
- 然后就是用iwconfig对wlan0进行设置了,方便起见可以直接写在/etc/network/interface里面。比如我使用的是WEP open认证和dhcp,我在/etc/network/interface里面就是这样写的(其中power off那行是用来关闭power management的,这样就不会在没有连接一段时间后自动断开连接了):
mapping hotplug script grep map eth0 map wlan0 iface wlan0 inet dhcp wireless_keymode open wireless_key s:<YourWEPKeyHere> wireless_mode managed wireless_essid <YourAPNameHere> wireless_nick fishy wireless_power off auto wlan0
然后每次启动或者插入无线网卡就会自动连接了,搞定!
使用WPA认证
WPA认证比WEP认证更安全(但是会稍微慢一点),而且有些无线路由器使用WEP认证的时候只能用16进制字符串(比如我用的NetGear),这样别的设备输入密码会很麻烦。
要在Linux下使用WPA认证,需要安装wpasupplicant包。安装后修改/etc/network/interface文件:
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant.conf auto wlan0
其中/etc/wpa_supplicant.conf为wpasupplicant的配置文件,具体内容如下:
ctrl_interface=/var/run/wpa_supplicant network={ ssid="<Your SSID here>" psk="<Your WPA password here>" key_mgmt=WPA-PSK proto=WPA }
这样就可以用WPA认证的无线网了。wpasupplicant带来的另一个好处是断线后会自动重连。