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

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

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

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:这里我出现了另外的问题,提示如下

  1. <span style="color:#FF0000;">/usr/bin/ld: skipping incompatible /usr/local/ssl/lib/libcrypto.a when searching for -lcrypto
  2. /usr/bin/ld: cannot find -lcrypto
  3. collect2: ld returned 1 exit status
  4. make: *** [wpa_supplicant] Error 1
  5. </span>

解决方法是:

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

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

终于可以成功编译出来。

wpa_supplicant安装的更多相关文章

  1. wpa_supplicant 和 802.11g WPA 认证的配置

    # cd /etc/init.d# ln -s net.lo net.eth0 默认的接口名是 wlan0,让它开机时自动 up:cp /etc/init.d/net.lo /etc/init.d/n ...

  2. Archlinux安裝指南(uefi+gpt)

    1.系统安装前的一些准备 首先在Archlinux官网下载镜像文件,然后刻录到U盘或光盘上.在我的机器上刻录arch镜像文件到U盘后启动不了,因为时间问题我没做过多的探索,所以后面直接刻录到光盘,用光 ...

  3. 3.1 wifi网卡RT3070在S3C2440的移植和使用

    学习目标:熟悉RT3070在S3C2440的移植和使用,以及其中的相关工具的安装和使用: 一.配置内核选择WIFI驱动 1. 将usb wifi插到电脑,在ubuntu使用命令:# lsusb 查看w ...

  4. blfs(systemd版本)学习笔记-安装、配置和使用wpa_supplicant无线网络连接工具

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! wireless项目地址:http://www.linuxfromscratch.org/blfs/view/stable-sy ...

  5. blfs(systemv版本)学习笔记-安装、配置和使用wpa_supplicant无线网络连接工具

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! wireless项目地址:http://www.linuxfromscratch.org/blfs/view/8.3/basic ...

  6. Raspberry Pi(树莓派)上安装Raspbian(无路由器,无显示器)

    一. 准备工作 1. 树莓派主板 型号:树莓派3 B型 处理器:四核64位ARM Cortex-A53 CPU 内核架构:ARMv8 2. 一张大于8G的TF卡(本人用的是32G的,也作为PiLFS用 ...

  7. linux 代码分析工具 gprof - 以wpa_supplicant为例

        当我们遇到一个新的程序的时候,经常会无从下手,需要debug一个功能的时候,我们不知道函数的运行流程是怎么样的,这就需要借助工具来帮助我们加快流程了.这里以分析wpa_supplicant为例 ...

  8. 树莓派2安装使用小米WIfi(360 小度 腾讯wifi)

    更新2015年11月16日,jessie内核版本号4.1.13(uname -a 可以查看)直接可以驱动MT7601U,无需手动编译. 截止2015-4-6,本文基于树莓派2,raspbian,内核版 ...

  9. Archlinux 2015.07.01 和 Windows7 双系统 安装教程

    提前在windows7下给Archlinux预留一个分区,大小最好在20G以上(根据自己硬盘情况分配). 第一步,安装前的准备 从arch官网下载最新的ISO文件archlinux-2015.07.0 ...

随机推荐

  1. break 和 continue

    break 和 continue 相同点: 都 用在循环体内,如 switch.for.while.do while的程序块中,用于控制程序循环语句的执行 不同点: break可以离开当前switch ...

  2. 华为OJ平台——查找组成一个偶数最接近的两个素数

    import java.util.Scanner; /** * 问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况, * 本题目要求输出组成指定偶数的两个素数差值最小 ...

  3. 用命令实现Win7远程桌面关机和重启

    关机 shutdown -s -t 0 重启 shutdown -r -t 0 打开运行框(Win+R键),输入上述命令即可,后面的数字表示关机/重启延迟的时间 at 12:00 shutdown - ...

  4. hdu 3336【Count the string】(KMP)

    一道字符串匹配的题目,仅仅借此题练习一下KMP 因为这道题目就是要求用从头开始的n个字符串去匹配原来的字符串,很明显与KMP中求next的过程很相似,所以只要把能够从头开始匹配一定个数的字符串的个数加 ...

  5. wcscpy wcscpy_s strcpy strcpy_s的区别

    原型声明:extern char *strcpy(char *dest,const char *src); 头文件:string.h 功能:把从src地址开始且含有NULL结束符的字符串赋值到以des ...

  6. 使用VS2012生成DLL文件 (1)

    一:生成DLL 1:创建DLL工程 文件->新建->项目->visual c++->win32->win32控制台应用程序(win32项目也可以) 填写项目名称MyDLL ...

  7. ajax 跳入error的一些原因

    先放一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2" ...

  8. 理解Linux启动过程

    传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动系统)处理,而基于init的启动系统被认为有效率不足的问题,systemd是Linux系统机器的另一种启动方式,宣称 ...

  9. c# 字符串(含有汉字)转化为16进制编码(转)

    public static string Str2Hex(string s) { string result = string.Empty; byte[] arrByte = System.Text. ...

  10. C\C++ 框架和库整理(转)

    [本文系外部转贴,原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm]留作存档 下次造轮子前先看看现有的轮子吧 值得学习的C语 ...