arm-linux移植openssl

因需求缘故,需要在arm926的平台上使用openssl。在官网上下载了源码包版本OpenSSL 1.0.2(坑爹啊,当正在写博客的时候去看了一下官网,结果今天刚出一个版本OpenSSL 1.0.2a)

地址:http://www.openssl.org/

下面是移植步骤:

(1)解压出来,放到想放的地方。

(2)然后呢,仔细阅读一下README文件(这是常规步骤),然后了解了编译使用的一般步骤,遂按照步骤来操作。

(3)README文件说需要对源码进行配置,也就是运行config文件,运行的时候可以加上一些配置参数,这里我写了一个脚本来进行这个过程,脚本内容为:

./config no-asm shared --prefix=/home/xxx/openssl-1.0.2/openssl-install --cross-compile-prefix=/opt/sourcery-arm-201203/bin/arm-none-linux-gnueabi- >& ./xxx_config-host

no-asm   :     Do not use assembler code.

shared    :    In addition to the usual static libraries, create shared
                libraries on platforms where it‘s supported.  See "Note on
                shared libraries" below。(编译连接成动态库)

--prefix   :  指定之后make install后生成的执行文件跟库的存放位置,后面蓝色部分是我个人的位置。

--cross-compile-prefix :指定交叉编译工具位置及其前缀,当然蓝色部分是我的个人的。

>& ./xxx_config-host   : 最后一步是我故意把输出信息重定向到一个文件,纯粹个人爱好,跟编译无关,可删除。

完了之后执行这个脚本,就这样配置完成了。

(4)配置完之后就是make了,在make的时候发现了一些问题:提示找不到-m64,查了资料之后似乎是说-m64是在64位机器上运行才使用的参数,也不知道为什么怎么会有这个参数,先不管它了,删除试试,删除了:

a.SHARED_LDFLAGS=-m64  将-m64删除

b.CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -O3 -Wall   将其中的-m64删除

之后再编译就没问题了。

(5)拷贝openssl-install/bin下的文件到目标板上运行试试,缺少所需库,能运行提示出错,说明编译的没错,只可惜我用了绝对路径的库,后面的工作就是慢慢再优化这个编译过程。

完成。

时间: 2024-08-27 19:13:07

arm-linux移植openssl的相关文章

# arm linux 移植 curl

背景 libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 .libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies和用户认证. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 libcrul :7.69.1 主机准备 使用以下脚本 ## # Copyright By Schips, All Rights Reserv

linux移植问题汇总(一)

linux移植问题汇总(一) 在此记录移植linux过程中出现的问题以及解决方法. 项目GitHub地址 linux3.0.80:https://github.com/numbqq/linux-3.0.80_for_tiny210linux3.3.5:https://github.com/numbqq/linux-3.3.5_for_tiny210uboot2014.04:https://github.com/numbqq/uboot201404_for_tiny210 1.移植linux ke

ARM Linux从Bootloader、kernel到filesystem启动流程

转自:http://www.veryarm.com/1491.html ARM Linux启动流程大致为:bootloader ---->kernel---->root filesystem.bootloader 是一上电就拿到cpu 的控制权的,而bootloader实现了硬件的初始化.bootloader俨然就成了Power on 之后”第一个吃螃蟹”的代码. 谈到这就得想到硬件机制是如何满足这个功能的了.CPU内部一般都集成小容量的SRAM (又叫stapping stone,垫脚石),

linux移植u-boot(一)——U-Boot详解+自定义命令实战

linux移植u-boot(一)--U-Boot详解+自定义命令实战 2015-02-07 一.Bootloader ????简单地说:Bootloader主要功能就是 在系统上电时开始执行,初始化硬件和设备,准备好软件环境,最后调用操作系统. ????具体的包含:关闭你看门狗WATCHDOG,改变系统时钟,初始化存储控制器 ,将操作系统内核代码复制到内存中去运行. ????为了开发方便,可以增加网络功能,从PC上通过串口或者网络下载文件,烧写文件,将flash上的内核代码解压后运行等. Boo

arm上移植mplayer

关于mplayer移植网上资料很多,但都很混乱.在此,我做了一个关于mplayer 的详细总结.在做之前最好在解压源码包后,先通过./configure --help看一下相关配置. X86的LINUX上已经自带了解码库,不需要另外安装解码库,而arm平台自己做的文件系统没有解码库,需要另外安装解码库. 下载MPlayer:MPlayer-1.0rc2.tar.bz2        解码库:libmad-0.15.0b.tar.gz 一.在x86的LINUX上安装mplayer 1 #./con

学习ARM+Linux的很好的资料(转)

前段时间做了一个关于ARM9 2440资料的汇总帖,很高兴看到***和CSDN等论坛朋友们的支持和鼓励.当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友,耐心的回答我提出的问题.感激.图报,很简单的想法.希望这次整理的资料帖能对更多的嵌入式爱好者朋友带来帮助! PS:    在此特别感谢 古道热肠 版主把我的帖子加精,给小弟极大鼓舞! 嵌入式入门篇: 什么是嵌入式系统                         http://www.helloa

ARM Linux Qt 5.x.x 无标题栏

/********************************************************************************* * ARM Linux Qt 5.x.x 无标题栏 * 说明: * 以前Qt 4.x.x版本是直接有标题栏,但现在的Qt 5.x.x没有了标题栏,从参考文章里 * 可以看出,是需要另外移植窗口管理器的. * * 2017-1-6 深圳 南山平山村 曾剑锋 ***************************************

ARM+Linux 嵌入式开发环境搭建

这些都是自个从一月份开始学习ARM+Linux中遇到的问题做的笔记,我觉得很有用,所以分享出来! 因为没有老师教,自己琢磨遇到的问题很多,欢迎交流! -------------------------------------------------------------------------------------------------- 零点漂移队:封尘浪 ------------------------------------------------------------------

pcDuino的linux移植四简单驱动开发

开发环境系统:ubuntu 10.04.4单板:pcDuino(全志A10)编译器:arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 搭建开发环境详见ubuntu 10.04.4开发环境配置. 目标1.配置 编译linux-3.0.62内核,串口正常输出2.配置内核,支持nfs挂载,启动文件系统3.最简单内核驱动开发 这个是在pcDuino linux移植一.二.三的基础上写的,重点介绍内核驱动开发,其它具体移植过程不再

Linux移植之内核启动过程引导阶段分析

在Linux移植之make uImage编译过程分析中已经提到了uImage是一个压缩的包并且内含压缩程序,可以进行自解压.自解压完成之后内核代码从物理地址为0x30008000处开始运行.下面分析在进入C之前内核做的一些工作,以下是内核启动过程中打印出来的信息,其中Uncompressing Linux就是在自解压代码.make uImage编译的最后也给出了链接脚本arch/arm/kernel/vmlinux.lds,以及链接的顺序arch/arm/kernel/head.o 是第一个.