1. 程式人生 > >openssl移植的arm開發板全過程

openssl移植的arm開發板全過程

1.交叉編譯

參考了:

我的makefile修改完如下:

#CC=gcc

CC=armv6zk-none-linux-gnueabi-gcc

CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3-fomit-frame-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

AR=armv6zk-none-linux-gnueabi-ar$(ARFLAGS) r

#ARD=ar$(ARFLAGS) d

ARD=armv6zk-none-linux-gnueabi-ar$(ARFLAGS) d

#RANLIB=/usr/bin/ranlib

RANLIB=armv6zk-none-linux-gnueabi-ranlib

編譯命令:

./configno-asm shared --prefix=/usr/local/openssl

no-asm表示不編譯部分彙編程式碼

--prefix=/home/stb/md5表示把編譯後的庫,配置工具等放到此目錄。

編譯後:

md5/

|-- bin

|   |--c_rehash

|   `--openssl

|-- include

|   `--openssl

|-- lib

|   |--engines

|   |--fips_premain.c

|   |--fips_premain.c.sha1

|   |--libcrypto.a

|   |--libcrypto.so -> libcrypto.so.0.9.8

|   |--libcrypto.so.0.9.8

|   |--libssl.a

|   |--libssl.so -> libssl.so.0.9.8

|   |--libssl.so.0.9.8

|   `--pkgconfig

`-- ssl

    |-- certs

    |-- man

    |-- misc

    |--openssl.cnf

    `--private

2.測試程式的編譯:

測試參考了:

如何編譯參考了:

/*

 Code snippet to calculate SHA1sum using openssl libs.

 Copyright 2005 Junichi Uekawa, given to public domain.

$ gcc openssltest.c –lssl

$ ./a.out  < ./a.out

eae8189278303caaa78f2d89e6a6ebeb7d37b554

$ sha1sum ./a.out

eae8189278303caaa78f2d89e6a6ebeb7d37b554  ./a.out

*/

#include <stdio.h>

#include <openssl/sha.h>

main ()

{

  SHA_CTX s;

  int i, size;

  char c[512];

  unsigned char hash[20];

  SHA1_Init(&s);

  while ((size=read (0, c, 512)) > 0)

    SHA1_Update(&s, c, size);

  SHA1_Final(hash, &s);

  for (i=0; i < 20; i++)

    printf ("%.2x", (int)hash[i]);

  printf ("\n");

}

編譯命令

armv6zk-none-linux-gnueabi-gccssl_test.c -I /home/stb/md5/include/ -L/home/stb/md5/lib -lssl -lcrypto -ldl -oding.out

       -I引數制定了標頭檔案路徑;

       -L引數制定了連結庫路徑;

       -lssl-lcrypto –ldl引數是如何確定的呢。上面的

[[email protected]]# cat libssl.pc

prefix=/home/stb/md5

exec_prefix=${prefix}

libdir=${exec_prefix}/lib

includedir=${prefix}/include

Name: OpenSSL

Description: Secure Sockets Layer and cryptographylibraries

Version: 0.9.8j

Requires:

Libs: -L${libdir} -lssl -lcrypto -ldl

Cflags: -I${includedir}

3.在arm11核的開發板上執行:

[[email protected]]#./ding.out<ding.out

出現錯誤:

./ding.out: error while loading sharedlibraries: libssl.so.0.9.8: cannot open shared object file: No such file ordirectory

[[email protected]]#export

export HISTSIZE="1000"

export HOME="/root"

export HOSTNAME="decate"

export LD_LIBRARY_PATH="/usr/local/lib"

。。。。。。。

把libssl.so.0.9.8、libcrypto.so.0.9.8拷貝到/usr/local/lib,並執行:

ln-s libssl.so.0.9.8 libssl.so

ln-s libcrypto.so.0.9.8 libcrypto.so

再次執行:

[[email protected]]#./ding.out<ding.out

輸出:

ac6edbdcc88ca9d85b9448843f4cb0d17cf686b3

自此,移植初步完成。

相關推薦

openssl移植arm開發全過程

1.交叉編譯參考了:我的makefile修改完如下:#CC=gccCC=armv6zk-none-linux-gnueabi-gccCFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS-D_REENTRANT -DDSO_DLFCN -DH

MiniGUI 移植到pc和arm開發全過程詳解 及錯誤解答

最近移植了 MiniGUI 1.3.3 到一個開發板上,中間遇到許多問題,在論壇上發問題,結果也沒多少人回我,就算偶爾有回的,基本上回答也沒有什麼用,網上找不到一個完整的移植文章,所以就決定把自己這次移植摸出來的一些方法寫出來,給像我一樣的小菜鳥做個參考吧。本文不教你怎麼寫驅

移植wpa_supplicant2.5到arm開發

this func gnu error netlink eabi err erro arm-linux 編譯libnl1-1: ./configure --host=arm-linux --enable-static --prefix=/usr/local/ssl CC

將lrzsz工具移植ARM開發 ---只通過串列埠實現window和ARM之間檔案互傳

事情背景:由於需要在windows和ARM板之間只通過串列埠傳輸檔案(windows的檔案只通過串列埠傳輸到ARM板上) 這時超級終端SecureCRT+lrzsz工具可以完成這項使命!(其他終端軟體

lrzsz串列埠工具移植ARM開發

lrzsz是一個Unix通訊包,提供XMODEM、YMODEM和ZMODEM檔案傳輸協議。lrzsz以前是Omen科技的主打軟體,現在已經免費,並且遵循GNU開源協議。 lrzsz適合這樣一種開發環境,一塊板子,除了串列埠,沒有任何外部出入輸出裝置,沒有sd卡,沒有網線,這個時候如

移植Qt圖形介面應用程式到S3C2440 arm開發

1.進入qt已經寫好的一個圖形介面應用程式目錄裡,例如,我的應用程式目錄是在/home/czd/qt_project/mp3player/ $ cd /home/czd/qt_project/mp3player/ 發現裡面有個mp3player.pro檔案 我們在上面已配置

python和json 移植ARM開發

下載移植包:http://download.csdn.net/detail/lyh2529/72389411.將bin12.02.tar傳送到arm板上,並將其解壓到arm板上作業系統的bin目錄下,命令為:tar -xvf bin12.02.tar -C /2.將lib12.02.tar傳送到arm板上,並

qt creator 檔案移植開發上執行 的全過程

因為板子已經有qt庫檔案了 我們不進行移植qt庫,1 安裝arm-linux-gcc交叉編譯器2 編譯 qt4.7.1 原始碼(原始碼有點錯自己google修改)3 安裝qtcreator4 配置qt create的 debug 加入編譯好的qt4.7.1 qmake 檔案

ARM開發系統移植-----kernel的編譯

前面一篇文章介紹了開發板上系統軟體的第一部分--bootloader的編譯方法。   背景:把bootloader燒寫到開發板的Nand Flash中後,開發板從Nand啟動,硬體會自動將bootlo

arm開發的NTFS-3G完整移植+中文目錄支援+自動掛載(udev)

-NTFS-3G完整移植+中文支援+自動掛載1核心裁剪1.1進入核心原始碼目錄下:$make menuconfig Linux/arm 2.6.37 Kernel Configuration   File systems  --->                //N

ARM開發OK6410移植opencv-2.4.7庫qt介面顯示(附加各種問題解決方案)

轉載:http://blog.csdn.net/jiebaoabcabc/article/details/22935185          經過了昨天一天苦逼的研究opencv原始碼、arm-linux編譯器工作原理和堅持不懈的make,我終於移植成功了opencv-2

SQLITE+PYTHON成功移植ARM開發執行

下載原始碼: Sqlite 3.6.23.1 http://www.sqlite.org/sqlite-3.6.23.1.tar.gz Python 2.6.5 http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2 由於sqlite是pyth

移植ubuntu core到Arm開發

最初是想把整個ubuntu移植到MX51開發板,因為專案不需要執行桌面系統,所以只移植了一個基本的ubuntu core系統  1. 下載ubuntu core rootfs,關於ubuntu core參考https://wiki.ubuntu.com/Core http:

移植boa 伺服器到arm開發筆記

(1)開發版:    TQ2440 , (2)編譯linux主機:  虛擬機器上的RHEL 5.4   (3)交叉 工具鏈:   是前段時間自己編譯出來的arm-sdutyl-linux-gnueabi-gcc (4)環境變數: [[email protec

移植madplay到arm開發

這篇文章寫的很全,沒什麼好改的了。 按照上面做肯定能成功的,但是要注意目錄的問題,記得自已的目錄別搞錯了。 <--! 強烈建議不要在虛擬機器掛接Windows共享目錄下進行編譯 --> 1.配置編譯環境     首先,將要使用的交叉編譯器設為預設交

將node.js移植arm開發

node.js版本  0.12.6   下載地址:https://nodejs.org/download/release/v0.12.6/   我用的版本是:node-v0.12.6.tar.gz a

ARM開發搭建NFS網絡文件系統方法

安裝 http ext 博客 主機 文件 oot ini first 前邊 已經提到過吧vmare的IP改成了靜態IP,對於上網來說,這個是個麻煩的事。現在重新配置Vmware的IP VMware-Edit-Virtual network editor 選擇PC機的無線網

產品研發ARM開發如何選擇?飛思卡爾I.MX6Q開發

pow 清分 工作 images logs 時鐘 網通 https 處理器 處理器:迅為-i.MX6開發板恩智浦Cortex-A9 四核i.MX6Q處理器,主頻1GHz,內存2G,存儲16GB。 系統支持:i.MX6開發板系統支持LINUX,Android,Ubuntu系統

嵌入式開發ARM開發-迅為4418開發接口基本介紹

4418開發板 接口介紹 迅為4418開發板無縫兼容6818平臺,是北京迅為電子有限公司研發設計的一款開發板平臺,核心板尺寸小,引出腳多,能夠幫助工程師們快速開發新產品。行業應用:iTOP-4418開發板/6818開發板可廣泛適用於工控、智能家居、醫療、多媒體、安防、車載、金融、消費電子、手持設備、顯

初試ARM開發

style min 學習 down win7 too 顯示 pan 成功 博主剛開始學習嵌入式開發,在老師指導下進行了led點亮的實驗。 一、準備工作 開發板型號:Friendly mini 2451 環境:win7+minitools 二、進入usb下載模式 使用 Min