linux wpa_supplicant 移植

来源:互联网 发布:网络 党建 编辑:程序博客网 时间:2024/05/18 00:24

这里参考了

http://blog.chinaunix.net/uid-28572323-id-3482376.html

http://blog.chinaunix.net/uid-26921272-id-3416832.html

这位两位朋友的博文 加上我自己出现问题,然后解决问题,特此加以笔记。红色标记


因为现在的无线wifi网络大多是wpa加密。所以需要移植wpa_supplicant工具。

一、下载源码

        http://hostap.epitest.fi/wpa_supplicant/

        下载wpa_supplicant-0.7.3.tar.gz (openssl用到0.7.3提供的补丁)

                #tar xvfz wpa_supplicant-0.7.3.tar.gz

        下载www.openssl.org/source/openssl-1.0.1c.tar.gz
 
               #tar zxvf openssl-1.0.1c.tar.gz

二、编译openssl库


makefile修改 (-为去掉设置, +为新加的设置)
#vi makefile
- CC= cc
+ CC= arm-none-linux-gcc

- AR= ar $(ARFLAGS) r
+ AR= arm-none-linux-ar $(ARFLAGS) r
- RANLIB= /usr/bin/ranlib
+ RANLIB= arm-
none-linux-gnueabi-ranlib

#make 
#make install
在/usr/local/ssl目录下安装了ssl库

PS:+AR= arm-none-linux-ar $(ARFLAGS) r
这里需要特别注意linux-ar这之间没有空格,我因为在这里添加空格 所以,耽搁了半天没找到原因。


拷贝下面文件驱动到目标系统/usr/lib/
libssl.a
libcrypto.a

openssl 移植完成.

三、编译wpa_supplicant 
进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:
        #cp defconfig        .config
        #vim .config

            CC=arm-linux-gcc  -L/usr/local/ssl/lib/
            #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
           CFLAGS += -I/usr/local/ssl/include
           #CPPFLAGS += -I../src/include -I../../src/router/openssl/include
           LIBS += -L/usr/local/ssl/lib
        #make

出现错误:

../src/drivers/driver_nl80211.c:25:31: fatal error: netlink/genl/genl.h: No such file or directory
compilation terminated.
make: *** [../src/drivers/driver_nl80211.o] Error 1

安装libnl-dev 和libpopt-dev后,编译成功。

注:一开始安装了wpa_supplicant-1.0,死活找不到/usr/include内的头文件,报类似上面的错误,最后退回到wpa_supplicant-0.7.3编译通过。

PS:这里我出现了另外的问题,提示如下

/usr/bin/ld: skipping incompatible /usr/local/ssl/lib/libcrypto.a when searching for -lcrypto/usr/bin/ld: cannot find -lcryptocollect2: ld returned 1 exit statusmake: *** [wpa_supplicant] Error 1
解决方法是:

sudo apt-get install libssl-dev
安装libssl-dev 包


经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。

终于可以成功编译出来。


原创粉丝点击