前些日子一时兴起,买回一个笔记本用的无线网卡,在Windows下立刻就调通了,并与学校的无线网成功连接。但想一想自己是一个Linuxer,便开始了无线网卡在Linux下的安装过程。
首先上网找了一下,发现了这个软件:ndiswrapper,它可以在Linux下利用Windows驱动使用无线网卡。大家可以到http://sourceforge.net/projects/ndiswrapper/ 下载到最新的版本。
我的全安装过程如下:
首先要声明的是,我在我的系统做了两件事,一是把/sbin和/usr/sbin加入了我自己的PATH;二是用root编辑/etc/sudoers文件,把自己的用户名放在了root的下面。这样我就可以用sudo命令来实现对系统的操作。大家可以在自己的系统上进行相应的调整。另外,我的网卡在安装前就已经插进了PCMCIA插槽。
具体操作如下:
一、
$ vi ~/.bashrc
在其中加入一行 export PATH=$PATH:/sbin:/usr/sbin
二、先用root用户登录
# chmod 777 /etc/sudoers
# vi /etc/sudoers
在root ALL=(ALL) ALL一行下加入(你的用户名) ALL=(ALL) ALL。
# chmod 440 /etc/sudoers
全安装过程我是完全按照它的说明做的,具体可以参照http://ndiswrapper.sourceforge.net/phpwiki/index.php/Installation
1、安装ndiswrapper。
首先请确认你的系统内核,ndiswrapper要求最低为2.6.6或2.4.26。系统内核确认的方法有很多,我是用命令
$ ls /boot
看到以下文件,
config-2.6.9-1.667 initrd-2.6.9-1.667.img System.map-2.6.9-1.667
grub lost+found vmlinuz-2.6.9-1.667
很显然,我的内核是2.6.9-1.667。
如果你的内核支持,就可以开始安装了,方法是进入下载文件所在目录,输入以下命令:
$ tar zxvf ndiswrapper-1.0.tar.gz
$ cd ndiswrapper-1.0
$ make distclean
$ make
$ sudo make install (我用的是sudo,也可以直接以root用户执行,下同)
2、安装无线网卡的Windows驱动。
一定要注意的是
除非ndiswrapper的网站的List里写明用原CD带的驱动没有问题,否则千万不要用原CD带的驱动!!我一开始就是用的原CD带的驱动,结果机器死掉,不得不关机再重新开。
先打以下命令:
$ lspci
在我的机器上可以看到这样一行:
07:00.0 Network controller: Texas Instruments ACX 111 54Mbps Wireless Interface
然后再打:
$ lspci -n
在我的机器上可以看到这样一行:
07:00.0 Class 0280: 104c:9066
最后的104c:9066就是我的网卡的PCI ID了。
然后到下面的网站去寻找相同PCI ID的网卡,把它的驱动下载下来。
http://ndiswrapper.sourceforge.net/phpwiki/index.php/List
比如说我的网卡的话,就下了第一个可以下载的ZIP文件,名为AL5410-G_WinXP_DR.zip。解压该文件,用命令:
$ unzip AL5410-G_WinXP_DR.zip
解出一个Windows\ XP目录,当然,会因为网卡不同,驱动不同而各自不同。
再输入命令:
$ sudo ndiswrapper -i filename.inf
这里的filename.inf会因为驱动的不同而不同,我的网卡输入的是Windows\ XP/ttnet1130.inf。(一般Windows的驱动里只有一个inf文件,就输入它的名字就可以了。)
然后可以输入命令
$ ndiswrapper -l
确认,我的机器显示的是:
Installed ndis drivers:
tnet1130 driver present, hardware present
3、加载网卡驱动
输入以下命令就可以加载网卡的驱动了。
$ sudo modprobe ndiswrapper
说明上说如果没有出错的话,打dmesg这条命令可以看到System的Log,里面会出现ndiswrapper version 1.0 loaded字样。反正我执行的时候一点问题都没有。
这时我的网卡电源灯已经开始亮了。
下面就进行无线网卡的设置。先输入命令:
$ iwconfig wlan0
我的机器的显示结果是:
wlan0 IEEE 802.11b
ESSIDff/any Nickname:"********"
Mode:Managed Channel:0
Access Point: 00:00:00:00:00:00 Bit Rate=11Mb/s Tx-Power:0 dBm Sensitivity=0/3
RTS thr=4096 B Fragment thr=4096 B
Power Managementff Link Quality:100 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
大家注意红字的部分,我把基本会出现的问题都显示出来了。看自己的Power Management是不是off了,ESSID是不是off/any,Access Point是不是都是0。
如果Power Management是off的话,用命令
$ sudo iwconfig wlan0 power on
把它打开。
如果没有ESSID的话,用命令
$ sudo iwconfig wlan0 essid "YOURESSID"
来指定为YOURESSID,反正我用的时候都加了引号了,不知道对还是不对。
如果不知道指定为什么的话,用命令
$ sudo iwlist wlan0 scan
来寻找,我的机器的显示结果为:
wlan0 Scan completed :
Cell 01 - Address: 00:30:65:1F:24:AD
ESSID:"ChinaUnix"
Protocol:IEEE 802.11FH
Mode:Managed
Frequency:2.467GHz (Channel 12)
Quality:0/100 Signal level:-64 dBm Noise level:-256 dBm
Encryption key
ff
Bit Rate:1Mb/s
Bit Rate:2Mb/s
Bit Rate:5.5Mb/s
Bit Rate:11Mb/s
Extra:bcn_int=100
Extra:atim=0
只要把那个"ChinaUnix"粘出来,输入到命令里就可以了。
接下来是网络的设置了,反正我是用dhcp,设置的方法应该是用ifconfig吧,具体我就不知道了。
网络设置好了,接通网络吧,用命令:
$ sudo ifup wlan0
如果是用dhcp的话,也可以用
$ sudo dhclient wlan0
原说明上说可以用$ sudo ifconfig wlan0 up,但我用了之后分配不到IP地址。可能直接指定IP地址的话可以用吧。
网络接通了,可以输入命令
$ ifconfig wlan0
来确认,起码应该有个IP地址的显示。 再上网试试,怎么样?速度如何呀??
4、保存设置
按说明中写的我执行了
$ sudo ndiswrapper -m
但没有起什么反应,只是修改了我的系统的/etc/modprobe.conf文件。再重启动的话还得从第3步开始再设置一遍。我又在网上查了一些资料,发现两种说法:
1、用root用户编辑/etc/sysconfig/network-scripts/ifcfg-wlan0文件,输入以下内容:
DEVICE=wlan0
ONBOOT=yes
BOOTPROTO=dhcp (如果是指定IP地址的话输入static)
TYPE=Ethernet
MODE=Managed
ESSID="YOURESSID"
如果指定IP地址的话,还要输入
IPADDR=192.168.0.2 (根据自己情况,做相应修改,下同)
NETMASK=255.255.255.0
NETWORK=192.168.0.0
GATEWAY=192.168.0.1
BROADCAST=192.168.0.255
以上都是我从别的网站抄回来的,有的我自己都不知道是什么意思,所以用不了千万不要骂我呀。
2、上面的/etc/sysconfig/network-scripts/ifcfg-wlan0文件,把ONBOOT设为no,然后也用root用户编辑/etc/rc.d/rc.local文件,加入以下几行
/sbin/modprobe ndiswrapper
sleep 2
/sibn/ifup wlan0
只要/etc/sysconfig/network-scripts/ifcfg-wlan0文件按上面写的设了,据说也可以连通。我两个都试了,好像是第1个连通了,第2个没有连通,但人与人的系统都不一样,大家两个都试一下吧。
以上的文字在Fedora Core 3, 内核2.6.9-1.667下测试通过。
谨以此篇献给跟我一样菜的兄弟们。