首页 > 代码库 > Linux下的无线网络

Linux下的无线网络

无线网络:pc和服务器通过网络设备连接到一块称为网络,其中有线的为有线网络,无线的为无线网络。

无线网络的标准:

802.11a使用5GHz频段,传输速度为54Mbps,802.11b不兼容。

802.11b使用2.4GHz频段,传输速度为11Mbps,802.11b不兼容。

802.11g使用2.4GHz频段,传输速度主要有54Mbps,108Mbps802.11b兼容。

802.11n使用2.4GHZ频段,传输速度可达300Mbps

无线网卡的历史:CDMIA接口卡  pci接口  usb接口卡

实验环境:

版本:CentOS release 6.5

内核:2.6.32-431.el6.i686

无线网卡版本: Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter

Usb接口无线网卡的使用:
usb无线网卡先插上电脑,打开电脑,如果是虚拟机需要设置

wKioL1RORpaCLCdeAAHLl4zOXB0977.jpg

 

点击可移动设备,到usb wlan点击连接

这时候将会断开宿主机,连接到虚拟机。

如果输入lsusb命令没有响应,

[root@wang ~]# lsusb

-bash: lsusb: command not found

需要安装usb相关的包

[root@wang ~]mkdir /media/cdrom

[root@wang ~]# mount /dev/cdrom /media/cdrom

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@wang ~]# cd /media/cdrom/Packages/

[root@wang Packages]# ll |grep -i usb

-r--r--r--. 3 root root    91160 Jul  3  2011 libertas-usb8388-firmware-5.110.22.p23-3.1.el6.noarch.rpm

-r--r--r--. 3 root root    27992 Jul  3  2011 libusb-0.1.12-23.el6.i686.rpm

-r--r--r--. 2 root root    77956 Jul  3  2011 libusb-devel-0.1.12-23.el6.i686.rpm

-r--r--r--. 2 root root    82240 Feb 24  2013 libusb1-1.0.9-0.6.rc1.el6.i686.rpm

-r--r--r--. 3 root root     7104 Jul  3  2011 rt73usb-firmware-1.8-7.el6.noarch.rpm

-r--r--r--. 2 root root    59784 Jul  3  2011 usbmuxd-1.0.2-1.el6.i686.rpm

-r--r--r--. 2 root root    41116 Feb 24  2013 usbredir-0.5.1-1.el6.i686.rpm

-r--r--r--. 2 root root    71644 Dec  9  2011 usbutils-003-4.el6.i686.rpm

-r--r--r--. 2 root root    41892 Feb 24  2013 xorg-x11-drv-sisusb-0.9.6-2.el6.i686.r

[root@wang Packages]# yum --disablerepo=\* --enablerepo=c6-media install usbutils -y   安装usbutils-003-4.el6.i686.rpm

[root@wang ~]# lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse

Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub

Bus 001 Device 002: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter

然后输入lsusb将会出现usb无线网卡

查看内核是否支持该无线网卡

[root@wang ~]# cd /boot

[root@wang boot]# ll

total 20731

-rw-r--r--. 1 root root  1982877 Nov 22  2013 System.map-2.6.32-431.el6.i686

-rw-r--r--. 1 root root   109953 Nov 22  2013 config-2.6.32-431.el6.i686

drwxr-xr-x. 3 root root     1024 Jul  9 02:39 efi

drwxr-xr-x. 2 root root     1024 Jul 13 16:25 grub

-rw-------. 1 root root 14917989 Jul 10 08:03 initramfs-2.6.32-431.el6.i686.img

drwx------. 2 root root    12288 Jul  9 02:37 lost+found

-rw-r--r--. 1 root root   190104 Nov 22  2013 symvers-2.6.32-431.el6.i686.gz

-rwxr-xr-x. 1 root root  4002656 Nov 22  2013 vmlinuz-2.6.32-431.el6.i686

[root@wang boot]# grep -i rt1 config-2.6.32-431.el6.i686    查看内核是否支持芯片型号rtl的无线网卡

CONFIG_RTL8180=m

CONFIG_RTL8187=m

CONFIG_RTL8187_LEDS=y

CONFIG_USB_RTL8150=m

# CONFIG_RTL8187SE is not set

# CONFIG_RTL8192SU is not set

# CONFIG_RTL8192E is not set  支持rtl8180 8187等。并不支持RTL8188EUS 

所以需要在官网上下载驱动包并解压

[root@wang 8192]# ll  进入下载的驱动包目录里查看文件

total 68

-rw-r--r--. 1 root root   110 Jul 20 12:28 Kconfig

-rw-r--r--. 1 root root 14353 Jul 20 12:28 Makefile

-rw-r--r--. 1 root root  6848 Jul 20 12:28 autoconf_rtl8192c_usb_linux.h

-rw-r--r--. 1 root root  5358 Jul 20 12:28 autoconf_rtl8192d_usb_linux.h

-rw-r--r--. 1 root root   116 Jul 20 12:28 clean

drwxr-xr-x. 3 root root  4096 Jul 20 12:28 core

drwxr-xr-x. 4 root root  4096 Jul 20 12:28 hal

-rw-r--r--. 1 root root    54 Jul 20 12:28 ifcfg-wlan0

drwxr-xr-x. 3 root root  4096 Jul 20 12:28 include

-rw-r--r--. 1 root root  3272 Jul 20 12:28 make_drv

drwxr-xr-x. 3 root root  4096 Jul 20 12:28 os_dep

-rw-r--r--. 1 root root   294 Jul 20 12:28 wlan0dhcp

Makefile文件,所以应该是基于源代码安装。

需要挂载硬盘安装个工具包具体为

[root@wang 8192]# mount /dev/cdrom /media/cdrom  挂载硬盘

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@wang 8192]# yum --disablerepo=\* --enablerepo=c6-media groupinstall "Development tools" -y   安装工具包

[root@wang 8192]# make

[root@wang 8192]# make install  安装

install -p -m 644 8192cu.ko  /lib/modules/2.6.32-431.el6.i686/kernel/drivers/net/wireless/

/sbin/depmod -a 2.6.32-431.el6.i686

查看下系统所说的目录

[root@wang 8192]# cd /lib/modules/2.6.32-431.el6.i686/kernel/drivers/net/wireless/

[root@wang wireless]# ls

能找到8192cu.ko 安装成功,接下来

模块的加载方式

insmod (后跟全路径,不能解决依赖关系)

modprobe (后跟模块名称,自动解决依赖关系)当然用这种了

[root@wang wireless]# modprobe 8192cu  加载模块

[root@wang wireless]# lsmod |grep 8192  查看已经加载的模块是否成功

8192cu                481561  0  成功了

[root@wang wireless]# ifconfig -a 查看网卡情况

lo        no wireless extensions.

 

eth0      no wireless extensions.

 

wlan0     unassociated  Nickname:"<WIFI@REALTEK>"

          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated   

          Sensitivity:0/0  

          Retry:off   RTS thr:off   Fragment thr:off

          Encryption key:off

          Power Management:off

          Link Quality:0  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

[root@wang wireless]# cd /media/cdrom/Packages/

[root@wang Packages]# ll |grep -i wireless

-r--r--r--. 2 root root    94584 Jul  3  2011 wireless-tools-29-5.1.1.el6.i686.rpm

[root@wang Packages]# yum --disablerepo=\* --enablerepo=c6-media install wireless-tools -y 安装wireless相关的工具

[root@wang Packages]# iwconfig  查看无线网卡

[root@wang ~]# ifconfig wlan0 up  激活无线网卡

[root@wang ~]# iwlist wlan0 scanning  扫描无线网络ap

wlan0     Scan completed :

          Cell 01 - Address: F8:D1:11:FB:F6:D4

                    ESSID:"php-1"

                    Protocol:IEEE 802.11bgn

                    Mode:Master

                    Frequency:2.437 GHz (Channel 6)

                    Encryption key:on

                    Bit Rates:300 Mb/s

                    Extra:wpa_ie=dd160050f20101000050f20401000050f20401000050f202

                    IE: WPA Version 1

                        Group Cipher : CCMP

                        Pairwise Ciphers (1) : CCMP

                        Authentication Suites (1) : PSK

                    Extra:rsn_ie=30140100000fac040100000fac040100000fac020000

                    IE: IEEE 802.11i/WPA2 Version 1

                        Group Cipher : CCMP

                        Pairwise Ciphers (1) : CCMP

                        Authentication Suites (1) : PSK

                    IE: Unknown:  

[root@wang ~]# wpa_passphrase php-1 设置连接php-1的密码  如果没有wpa_passphrase,需要安装wpa_supplicant相关的包

# reading passphrase from stdin

qaz123!@#

network={

ssid="php-1"

#psk="qaz123!@#"

psk=3a30ab87951721ed310c46f6b19ceed2aa2fdb54baaffcbdd965d6bc81744698

[root@wang ~]# wpa_passphrase php-1 >>/etc/wpa_supplicant/wpa_supplicant.conf 将上面的文件追加到wpa_supplicant.conf控制文件中

qaz123!@#

[root@wang ~]# vim /etc/wpa_supplicant/wpa_supplicant.conf可以查看下是否追加成功

[root@wang ~]# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext 

进行无线网络的连接  -B后台运行 -i指出哪个设备 -c密码文件的路径  -D驱动名称

ioctl[SIOCSIWAP]: Operation not permitted  出现这个没关系实际上已经连接上了

[root@wang ~]# iwconfig

lo        no wireless extensions.

 

eth0      no wireless extensions.

 

wlan0     IEEE 802.11bgn  ESSID:"php-1"  Nickname:"<WIFI@REALTEK>"

          Mode:Managed  Frequency:2.437 GHz  Access Point: F8:D1:11:FB:F6:D4   

          Bit Rate:300 Mb/s   Sensitivity:0/0  

          Retry:off   RTS thr:off   Fragment thr:off

          Encryption key:****-****-****-****-****-****-****-****   Security mode:open

          Power Management:off

          Link Quality=100/100  Signal level=74/100  Noise level=0/100

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

[root@wang ~]# dhclient wlan0获取ip地址

[root@wang ~]# ifconfig

wlan0     Link encap:Ethernet  HWaddr 0C:82:68:1E:48:FB  

          inet addr:192.168.102.103  Bcast:255.255.255.255  Mask:255.255.255.0

          inet6 addr: fe80::e82:68ff:fe1e:48fb/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:333 errors:0 dropped:476 overruns:0 frame:0

          TX packets:11 errors:0 dropped:6 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:59505 (58.1 KiB)  TX bytes:3244 (3.1 KiB)

获取ip地址成功

接下来还有个问题,当系统重启时候

wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext 

dhclient wlan0  这些命令不会自动执行

如果需要自动执行需要把这些文件写到开机脚本里面

开机脚本写到/etc/rc.local 或者 /etc/rc.d/rc.local 都可以

[root@wang ~]# echo "wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext" >>/etc/rc.d/rc.local  

[root@wang ~]# echo "dhclient wlan0">>/etc/rc.d/rc.local  将这2条命令加入开机脚本即可


本文出自 “你猜我是谁” 博客,请务必保留此出处http://whhhj.blog.51cto.com/9289395/1568607

Linux下的无线网络