1. 程式人生 > 實用技巧 >openssl移植到aarch64 Linux

openssl移植到aarch64 Linux

openssl簡介

  OpenSSL 是一個安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。

開發環境

  Ubuntu 16.04

  aarch64-linux-gnu-gcc version 5.4.0

  開發環境不一定是我這配置,只要是linux作業系統,和ARM對應的交叉工具鏈就可以。

目標環境

  rockchip px30(Cotex A35)

  核心版本:4.4.143

移植步驟

  1.從OpenSSL官網下載最新原始碼 openssl-1.0.2l.tar.gz。

  2.執行下面命名解壓縮:

tar zxvf openssl-1.0.2l.tar.gz 
1

  3.進入剛解壓的目錄cd openssl-1.0.2l/,執行下面指令,做相應的配置:

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

no-asm: 是在交叉編譯過程中不使用匯編程式碼程式碼加速編譯過程,原因是它的彙編程式碼是對arm格式不支援的。

shared :生成動態連線庫。

--prefix :指定make install後生成目錄的路徑,不修改此項則預設為OPENSSLDIR目錄(/usr/local/ssl)。

  4.修改Makefile:

具體見附件Makefile

CC= aarch64-linux-gnu-gcc

注:上面各項都是修改後的,沒有增加內容,只是在原來基礎上做修改,故沒有列出修改前的內容。

  5.執行下面命令,編譯OpenSSL庫:

make
1

  6.執行下面命令,將編譯好的庫檔案拷貝到指定目錄:

make install

  7.include下檔案在編譯程式的時候需要指定include的路徑。而lib下在程式執行時會用到,需要將lib下檔案拷貝到開發板中。

安裝錯誤 make install installing man1/smime.1
  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.

  make: *** [install_docs]

解決方法:

開啟/usr/bin/pod2man 這個配置檔案看一下  可以的話 註釋掉 第71行  在編譯 用#註釋
參考:
https://blog.csdn.net/u010696228/article/details/44977497? https://blog.csdn.net/zhaoxd200808501/article/details/74331986?utm_source=copy