openssl移植到ARM-Linux


openssl简介

OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,
并提供丰富的应用程序供测试或其它目的使用。

开发环境

Ubuntu 16.04
arm-arago-linux-gnueabi-gcc version 4.5.3
开发环境不一定是我这配置,只要是linux操作系统,和ARM对应的交叉工具链就可以。

目标环境

ti arm335x
内核版本:3.2

移植步骤

1.从OpenSSL官网下载最新源码 openssl-1.0.2o.tar.gz。
2.执行下面命名解压缩:

tar zxvf openssl-1.0.2o.tar.gz

3.进入刚解压的目录cd openssl-1.0.2l/,执行下面指令,做相应的配置:

./config no-asm shared --prefix=$(pwd)/__install

no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的。
shared :生成动态连接库。
–prefix :指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)。

4.修改Makefile:

CC= arm-arago-linux-gnueabi-gcc #有更改
CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -O3 -fomit-frame-pointer -Wall #如果有-m64删除
DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST -DOPENSSL_NO_WEAK_SSL_CIPHERS
PEX_LIBS= 
EX_LIBS= -ldl
EXE_EXT= 
ARFLAGS= 
AR= arm-arago-linux-gnueabi-ar $(ARFLAGS) r  #有更改
RANLIB= arm-arago-linux-gnueabi-ranlib
RC= windres
NM= arm-arago-linux-gnueabi-nm  #有更改
PERL= /usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion
MAKEDEPPROG= arm-arago-linux-gnueabi-gcc  #有更改
LIBDIR=lib

注:上面各项都是修改后的,没有增加内容,只是在原来基础上做修改,已标记更改位置。

5.执行下面命令,编译OpenSSL库:

make

6.执行下面命令,将编译好的库文件拷贝到指定目录:

make install

如下图所示在当前目录下的__install目录下生成了头文件和库文件:

bin  include  lib  ssl

7.include下文件在编译程序的时候需要指定include的路径。而lib下在程序运行时会用到,需要将lib下文件拷贝到开发板中。

Logo

更多推荐