wpa_supplicant 移植及 linux 命令行模式配置无线上网
本文涉及内容为linux 命令行模式配置无线上网 及 wpa_supplicant 移植到开发板的过程,仅供参考。
1.源码下载
wpa_supplicant 源码下载地址 :http://hostap.epitest.fi/releases/ 本人使用的是 wpa_supplicant-0.7.3.tar.gz
openssl 源码下载地址:http://www.openssl.org/source/ 本人使用的是openssl-1.0.0j.tar.gz。
2.openssl 交叉编译
在服务器home目录下,创建连个文件wpa_source , wpa_install ,两个目录 mkdir wpa_source ,mkdir wpa_install .
创建完成后,将两份源码上传到wpa_source目录中,分别解压 tar xvf xxx (源码名称)。
解压完成后,进入openssl-1.0.0j文件中。执行命令:
./config no-asm shared --prefix=/home/wpa_install
说明: no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程。
shared 生成动态链接库。
--prefix 指定生成lib include bin目录的路径,不修改此项则默认为OPENSSLDIR目录。 我们将其安装在/home/wpa_install 目录下。
* 此处注意下,本人在编译openssl时,如果不加no-asm shared ,在后面make中会出错。
修改Makefile 文件,具体修改如下,主要修改有三处:
CC= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-gcc
。。。省略
AR= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-ar $(ARFLAGS) r
RANLIB= mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-ranlib
修改的几处换成你使用的交叉编译工具即可。
把所有的 –march=pentium 去掉(三处)。否则编译的时候会出错
然后执行make , make install。中间如果出错,请baidu or google。我在编译openssl时,未出现问题。
具体openssl交叉编译可以参考 :http://blog.csdn.net/zqj6893/article/details/8778237 ,讲的比较详细
3.编译wpa_supplicant
进入wpa_supplicant.0.7.3/wpa_supplicant/ 目录,执行:
cp defconfig .config vi .config
修改如下:
#### sveasoft (e.g., for Linksys WRT54G) ######################################
#CC=mipsel-uclibc-gcc
CC=mips-wrs-linux-gnu-mips_74k_softfp-glibc_small-gcc -L /home/wpa_install/lib/
#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
#CFLAGS += -Os
CFLAGS += -I /home/wpa_install/include/
#CPPFLAGS += -I../src/include -I../../src/router/openssl/include
#LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9./lib -lssl
LIBS += -L /home/wpa_install/lib/
* ,# 开头的为文件本身的代码,我们需要修改CC,CFLAGS,LIBS三处内容。 分别指向你包含的include和lib文件夹
修改完成后,保存并退出,执行 make 命令。在当前目录下会生成wpa_supplicant,wpa_cli 两个可执行文件,这个就可以放在开发板中进行运用啦!
* 几句废话:在编译wpa_supplicant时,最开始使用的是最新版本,wpa_supplicant-2.0的一个版本,编译好多次没有编译过去,都是出现缺少这个或那个连接的问题,较典型的就是 can't find -lnl .后来换成0.7.3的版本后就没有出现过该问题。只是暂时的把这个绕过去了吧。移植后的功能也都满足我使用的。所以就用0.7.3的版本了。
参考连接:http://blog.csdn.net/ti_tantbx/article/details/7037741
4.在开发板实际使用。
此处我只说下wpa_supplicant 配置上网的用法。wpa_cli适合个人使用配置,wpa_supplicant 使用于后台操作型的配置。
注:默认无线驱动已加载,此处略。
(1)、在使用前,将wpa_supplicant 复制的/bin/目录下。
(2)、在/var/run/目录下创建wpa_supplicant文件夹,mkdir /var/run/wpa_supplicant
(3)、在/etc/下创建文件wpa_supplicant.conf. (也可不是/etc/,其他目录亦可)
此处的wpa_supplicant.conf 文件内容有几种。
1]、无密码连接
ctrl_interface=/var/run/wpa_supplicant
network{
ssid="你要连接的SSID"
key_mgmt=NONE
}
2]、WEP连接
ctrl_interface=/var/run/wpa_supplicant network{
ssid="你要连接的SSID"
key_mgmt=NONE
wep_key0="你的密码"
wep_key1=
wep_tx_keyidx=
}
3]、WPA-PSK/WPA2-PSK,TKIP/AES 连接
# WPA-PSK/TKIP ctrl_interface=/var/run/wpa_supplicant network={
ssid="你要连接的SSID"
key_mgmt=WPA-PSK
proto=WPA //RSN 如果WPA2连接不成功时,可以设置为RSN看看
pairwise=TKIP //CCMP 。如果为AES时,可以设置为CCMP TKIP看看
group=TKIP //同上
psk="SSID的密码"
}
加密文件配置参考连接:http://www.360doc.com/content/12/0709/15/9424702_223192125.shtml
http://evan7s.blog.163.com/blog/static/108955356201132494921476/
这两篇文章的提示作用很大的,建议看看
按照无线连接方式配置好wpa_supplicant.conf后,执行命令
wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf
注释:-B 是指后台运行,如果想查看连接信息,可以把—B去掉。
-i wlan0 ,-i是接口名称,如果你的无线网卡不是wlan0,(如ra0),那么随之更改接口名称。
-d ,指增加debug信息。
-c , 后面跟wpa_supplicant配置文件的路径
执行之后就连接到你想要连接的无线SSID上啦。连接上之后,如果想要wlan0 动态获取地址:输入
dhclient wlan0
如果不用DHCP,手动配置地址哎
ifconfig wlan0 192.168.x.x netmask 255.255.255.0
wpa_cli 配置无线网络可以参考:http://blog.163.com/wxiongn@126/blog/static/11788203820102262748358/
OK, 这就是我移植wpa_supplicant 及配置无线上网的过程。希望对大家有帮助
转载谢谢注明。
wpa_supplicant 移植及 linux 命令行模式配置无线上网的更多相关文章
- 在Linux命令行模式安装VMware Tools
在Linux命令行模式安装VMware Tools 方法/步骤1: 首先启动CentOS 7,在VMware中点击上方“VM”,点击“Install VMware Tools...”(如已安装则显示“ ...
- Linux命令行模式下安装VMware Tools详细步骤
在Linux命令行模式安装VMware Tools 方法/步骤1: 首先启动CentOS 7,在VMware中点击上方"VM",点击"Install VMware Too ...
- Linux 命令行模式 你需要知道的那些事
注: 安装软件 pip install + 软件名 例如: pip install xadmin 卸载软件 pip uninstall + 软件名 例如 pip uninstall xadmin 安 ...
- [亲身实践]linux命令行下配置网路
1.在命令行下输入setup, 2.之后出现下图,选择网络配置 4.配置IP地址,子网掩码,DNS 5.保存之后回到命令行模式下,输入service network restart,至此网络配置完成
- linux命令行模式下对FTP服务器进行文件上传下载
参考源:点击这里查看 1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码 ...
- linux 命令行模式下,浏览网页
Ubuntu自带最新版的Gnome桌面,拥有大量的服务和桌面应用程序,让您仅通过一张安装光盘就可以体验到无比舒适的操作环境.下文介绍的在ubuntu下使用终端命令行上网的方法. 第一步,需要安装一个名 ...
- linux命令行模式下实现代理上网
有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了! 一.命令行界面的一般代理设置方 ...
- linux命令行模式下实现代理上网(转)
有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了! 一.命令行界面的一般代理设置方 ...
- linux 命令行模式下,浏览网页方法
Ubuntu自带最新版的Gnome桌面,拥有大量的服务和桌面应用程序,让您仅通过一张安装光盘就可以体验到无比舒适的操作环境.下文介绍的在ubuntu下使用终端命令行上网的方法. 第一步,需要安装一个名 ...
随机推荐
- Linux makefile教程之make运行八[转]
make 的运行 —————— 一 般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的.但也有时你也许只想让 make重编译某些文件, ...
- Dev GridView 获取选中分组下的所有数据行 z
现在要在DevExpress 的GridView 中实现这样一个功能.就是判断当前的选中行是否是分组行,如果是的话就要获取该分组下的所有数据信息. 如下图(当选中红框中的分组行事.程序要获取该分组下的 ...
- Loadrunner常用的分析要点都有哪些
提供了生产负载的虚拟用户运行状态的相关信息,可以帮助我们了解负载生成的结果. Rendezvous(负载过程中集合点下的虚拟用户): 当设置集合点后会生成相关数据,反映了随着时间的推移各个时间点上并发 ...
- html中的div、td 、p 等容器内强制换行和不换行的实现
div.td .p 等容器内强制换行和不换行,在某些情况下还是比较实用的,下面本文整理了一些相关方面的知识,并有具体的实现方法,需要的朋友可以参考下1.强制不换行,同时以省略号结尾. 代码如下:< ...
- latex公式中的空格如何表示
两个quad空格 a \qquad b 两个m的宽度 quad空格 a \quad b 一个m的宽度 大空格 a\ b 1/3m宽度 中等空格 a\;b 2/7m宽度 小空格 a\,b 1/6m宽度 ...
- Windows字符集的统一与转换
以前也零零散散看过一些字符编码的问题,今天看来这边博客,感觉很多东西都总结在里面,非常值得学习! 一.字符集的历史渊源 在Windows编程时经常会遇到编码转换的问题,一直以来让刚接触的人摸不着头脑. ...
- static public和 public static 区别
static:加static 的是静态成员,不能实例化在你运行的时候他自己在内存中开辟了块空间,不用在new, 有点像全局变量,如果不用你必须去 实例化(new)才能用 static是静态的意思,pu ...
- 基于mapreduce的大规模连通图寻找算法
基于mapreduce的大规模连通图寻找算法 当我们想要知道哪些账号是一个人的时候往往可以通过业务得到两个账号之间有联系,但是这种联系如何传播呢? 问题 已知每个账号之间的联系 如: A B B C ...
- Spark1.0.x入门指南
1 节点说明 IP Role 192.168.1.111 ActiveNameNode 192.168.1.112 StandbyNameNode,Master,Worker 192.168.1. ...
- 前端复习-02-ajax原生以及jq和跨域方面的应用。
ajax这块我以前一直都是用现成的jq封装好的东西,而且并没有深入浅出的研究过,也没有使用过原生形式的实现.包括了解jsonp和跨域的相关概念但是依然没有实现过,其中有一个重要的原因我认为是我当时并不 ...