移植应用Wireless Tools

前提条件

下载源码

点击前往下载
或者使用以下命令

wget -c https://hewlettpackard.github.io/wireless-tools/wireless_tools.29.tar.gz

打个补丁

复制以下补丁内容,保存名为wireless_tools-29-fix_iwlist_scanning-1.patch

diff -Naur wireless_tools.29.orig/iwlist.c wireless_tools.29/iwlist.c
--- wireless_tools.29.orig/iwlist.c	2007-06-30 01:11:09.000000000 +0000
+++ wireless_tools.29/iwlist.c	2016-09-03 17:51:56.703353035 +0000
@@ -799,7 +799,7 @@
 	  if(iw_get_ext(skfd, ifname, SIOCGIWSCAN, &wrq) < 0)
 	    {
 	      /* Check if buffer was too small (WE-17 only) */
-	      if((errno == E2BIG) && (range.we_version_compiled > 16))
+	      if((errno == E2BIG) && (range.we_version_compiled > 16) && (buflen < 65535))
 		{
 		  /* Some driver may return very large scan results, either
 		   * because there are many cells, or because they have many
@@ -815,6 +815,9 @@
 		  else
 		    buflen *= 2;
 
+                  if(buflen > 65535)
+                    buflen = 65535;
+
 		  /* Try again */
 		  goto realloc;
 		}

解压缩源码

#解压缩
tar -xvf wireless_tools.29.tar.gz
#进入源码目录
cd wireless_tools.29

打补丁

patch -Np1 -i ../wireless_tools-29-fix_iwlist_scanning-1.patch

编译安装

替换
CC=你的编译工具
AR=你的编译工具
RANLIB=你的编译工具
PREFIX=你要安装的目录
INSTALL_MAN=你要安装的目录
PS:当安装目录/usr/local等普通用户没有写入权限的情况下,需切换为root用户进行执行安装命令

#编译
make CC=/home/aron566/opt/arm-2014.05/bin/arm-none-linux-gnueabi-gcc AR=/home/aron566/opt/arm-2014.05/bin/arm-none-linux-gnueabi-ar RANLIB=/home/aron566/opt/arm-2014.05/bin/arm-none-linux-gnueabi-ranlib
#安装
make PREFIX=/home/aron566/Downloads/wifi/wireless_tools_INSTALL INSTALL_MAN=/home/aron566/Downloads/wifi/wireless_tools_man install

使用方法

参考博客
在这里插入图片描述

#1. 扫描可用的无线网络:ifconfig可以看到wifi-name也就是wifi网卡名
iwlist wifi-name scanning
#2. 扫描附近无线网络信息,ESSID项的值即为无线网络的名字。如果值为空,说明在无线路由勾选了隐藏ESSID的选项
iwlist wifi-name scanning
#3. 设置要连接的网络类型
iwpriv wifi-name setNetworkType=Infra
#4. 设置要连接的无线网络的安全模式
iwpriv wifi-name setAuthMode=WPA2PSK
#5. 设置网络加密方式:(CCMP即为AES)
iwpriv wifi-name setEncrypType=TKIP
#6. 设置连接时的密码: 12345678为加密网络的密码
iwpriv wifi-name setWPAPSK=12345678
#7. 连接该网络:有两种方式:
#第一种iwpriv命令
iwpriv wifi-name setSSID=juwei
#第二种用iwconfig命令
iwconfig wifi-name essid juwei
#如果密码正确,就可以连接上网络juwei了。如果你不放心,可以用命令查看状态
iwpriv wifi-name connStatus

大致流程

#加载wifi网卡驱动
insmod   rt3070sta.ko

ifconfig ra0 up     启用无线网卡,至于为什么是ra0,因为我的使用手册上是这样做的

此时cat /proc/wireless   可以看到多了一个ra0

iwlist scanning 可以搜索到可用的网络  iwlist ra0 scanning  (只搜索ra0的无线网络)

iwpriv ra0 set SSID="name"无线网络配置  name是搜到的一个网络的名字。假如不要密码这样就行了。

iwpriv ra0 set WPAPSK="A3DDD"  输入登陆密码

iwconfig ra0 key open       打开密码   输入密码后 一定要加这条命令哦,不然连接不上

ifconfig ra0 192.168.1.109 netmask 255.255.255.0为无线网卡指定IP地址

设置网关   route add default gw 192.168.1.1

之后我在ubantu上ping 192.168.1.109 成功。这些命令就是所谓的工具。

在超级终端ping 外网成功。

各种密码的命令参数,这在iwpriv_usage.txt里面可以查到。

无密码:

iwpriv ra0 set SSID="Vodafone D100"

注意:在切换到无密码的用户时,若之前是有密码用户,则要iwconfig ra0 key off。

WPA型密码:

网上说若路由器的加密方式是wpa的话要移植wpa_supplicant工具,我没有这样做,还是可以。

iwpriv ra0 set NetworkType=Infra       网络类型有Infra,Adhoc两种,前者是基于AP的,后者是p2p

iwpriv ra0 set AuthMode=WPAPSK                OPEN,SHARED,WEPAUTO,WPAPSK,WPA2PSK,WPANONE

iwpriv ra0 set EncrypType=TKIP                NONE,WEP,TKIP,AES

iwpriv ra0 set SSID="Vodafone D100"

iwpriv ra0 set WPAPSK="1234567890"

WEP型密码:

iwpriv ra0 set NetworkType=Infra

iwpriv ra0 set AuthMode=OPEN

iwpriv ra0 set EncrypType=WEP

iwpriv ra0 set DefaultKeyID=1

iwpriv ra0 set Key1="1234567890"

iwpriv ra0 set SSID="Vodafone D100"

切换用户登陆:

直接重新输入登陆名字和输入密码的命令,值得注意的是在切换有密码和没有密码的用户时要相应的iwconfig ra0 key open和iwconfig ra0 key off。

常见问题

网上说若路由器的加密方式是wpa的话要移植wpa_supplicant工具http://blog.csdn.net/jimmy_1986/archive/2010/09/09/5872536.aspx

错误信息

PING 192.168.1.1 (192.168.1.1): 56 data bytes

ping: sendto: Network is unreachable

此原因是没有设置ip ifconfig ra0 192.168.1.109 up 解决。

ping 219.134.65.113 外网

ping: sendto: Network is unreachable

此原因是没有设置网关 route add default gw 192.168.1.1 解决。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aron566

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值