首页 > 代码库 > Linux下的无线网络
Linux下的无线网络
无线网络:pc和服务器通过网络设备连接到一块称为网络,其中有线的为有线网络,无线的为无线网络。
无线网络的标准:
802.11a使用5GHz频段,传输速度为54Mbps,与802.11b不兼容。
802.11b使用2.4GHz频段,传输速度为11Mbps,与802.11b不兼容。
802.11g使用2.4GHz频段,传输速度主要有54Mbps,108Mbps与802.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无线网卡先插上电脑,打开电脑,如果是虚拟机需要设置
点击可移动设备,到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下的无线网络