Wireless_tools、wpa_supplicant和openssl移植

一、Wireless_tools移植

1.当前使用wireless_tools_29

下载地址:https://hewlettpackard.github.io/wireless-tools/wireless_tools.29.tar.gz
2.解压下载的源码到指定目录。

tar -xvf wireless_tools.29.tar.gz
3.进入根目录,根据自己的平台更改Makefile文件,我当前使用hisiv300的如下:

设置安装路径:PREFIX = ./ #当前路径

#CC = gcc
            CC = arm-hisiv300-linux-gcc
            AR = arm
            RANLIB = arm-hisiv300-linux-ranlib
4.编译

make clean

make

make install

这样编译后的工具就会安装到指定的PREFIX目录。

二、openssl移植

openssl 下载地址:ftp://ftp.openssl.org/source/old/0.9.x/ 当然你可以根据自己的需求下载最新版本。

wpa_supplicant官方网站进行下载:http://w1.fi/releases/

当前我使用openssl-0.9.8za和wpa_supplicant-2.5

分别使用tar -xvf openssl-0.9.8za.tar.gz 和tar -xvf wpa_supplicant-2.5.tar.gz 解压到当前路径

1.打补丁

cp wpa_supplicant-2.5/patches/openssl-0.9.8za-tls-extensions.patch openssl-0.9.8za/

cd openssl-0.9.8za/

patch -p1 < openssl-0.9.8za-tls-extensions.patch

结果显示
    patching file ssl/s3_clnt.c
    patching file ssl/s3_srvr.c
    patching file ssl/ssl.h
    patching file ssl/ssl_err.c
    patching file ssl/ssl_sess.c
    patching file ssl/t1_lib.c
    patching file ssl/tls1.h
    patching file util/ssleay.num

./config --prefix=$PWD/out no-asm shared
no-asm是在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的

2.修改Makefile

#CC= gcc
#CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -DL_ENDIAN -DTERMIO -O3 -fomit- -pointer -Wall
CC= arm-hisiv300-linux-gcc
CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -march=armv5 -DL_ENDIAN -DTERMIO -O3 -fomit- -pointer -Wall
DEPFLAG= -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_CMS -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED
PEX_LIBS= 
EX_LIBS= -ldl
EXE_EXT= 
ARFLAGS= 
#AR= ar $(ARFLAGS) r
#ARD=ar $(ARFLAGS) d
#RANLIB= /usr/bin/ranlib
AR = arm-hisiv300-linux-ar $(ARFLAGS) r
RANLIB= arm-hisiv300-linux-ranlib
NM= arm-hisiv300-linux-nm
PERL= /usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion --record-size=10240
MAKEDEPPROG= gcc
LIBDIR=lib

3.编译安装

make clean
make
make install

4.安装出错解决:

        smime.pod around line 272: Expected text after =item, not a number
  smime.pod around line 276: Expected text after =item, not a number
  smime.pod around line 280: Expected text after =item, not a number
  smime.pod around line 285: Expected text after =item, not a number
  smime.pod around line 289: Expected text after =item, not a number
  POD document had syntax errors at /usr/bin/pod2man line 71.

  解决方法:
  删除 pod2man文件:sudo rm /usr/bin/pod2man

三、wpa_supplicant移植

待续...

收藏 打印