LV07-02-openssl-移植

本文主要是openssl库的移植相关笔记。若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows版本 windows11
Ubuntu版本 Ubuntu16.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
终端软件 MobaXterm(Professional Edition v23.0 Build 5042 (license))
Linux开发板 正点原子 i.MX6ULL Linux 阿尔法开发板
uboot NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03)
linux内核 linux-4.15(NXP官方提供)
Win32DiskImager Win32DiskImager v1.0
buildroot 2023.05.1版本
点击查看本文参考资料
分类 网址 说明
官方网站 https://www.arm.com/ ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档
https://www.nxp.com.cn/ NXP官方网站
https://www.nxpic.org.cn/NXP 官方社区
https://u-boot.readthedocs.io/en/latest/u-boot官网
https://www.kernel.org/linux内核官网
点击查看相关文件下载
分类 网址 说明
NXP https://github.com/nxp-imx NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库
https://elixir.bootlin.com/linux/latest/source 在线阅读linux kernel源码
nxp-imx/linux-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga NXP linux内核仓库tags中的rel_imx_4.1.15_2.1.0_ga
nxp-imx/uboot-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga NXP u-boot仓库tags中的rel_imx_4.1.15_2.1.0_ga
I.MX6ULL i.MX 6ULL Applications Processors for Industrial Products I.MX6ULL 芯片手册(datasheet,可以在线查看)
i.MX 6ULL Applications ProcessorReference Manual I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网)

一、openssl简介

1. 它是什么?

openssl是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。openSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto。

2. 官网在哪?

它的官网在这里:/index.html (openssl.org),如下所示:

image-20230806105533985

3. 源码下载

我们可以在这里找到下载的地方:/source/index.html (openssl.org)

image-20230806105603445

我直接选择下载的这个:

image-20230806105712227

下载解压后会得到以下文件:

image-20230806105825987

二、移植openssl

1. 编译源码

我们进入刚才解压的openssl目录:

1
cd ~/5ALPHA/openssl-1.1.1v

然后我们通过以下命令配置、编译和安装openssl:

1
2
3
4
5
6
7
mkdir -p ~/5ALPHA/openssl-1.1.1v/openssl_output

./Configure linux-armv4 shared no-asm --prefix=/home/hk/5ALPHA/openssl-1.1.1v/openssl_output CROSS_COMPILE=arm-linux-gnueabihf-

make

make install

编译安装完成以后的 openssl 目录内容如图 :

image-20230806110708334

然后将编译安装的目录中的 lib 目录是我们需要的,将 lib 目录下的 libcrypto 和 libssl 库拷贝到开发板根文件系统中的/usr/lib 目录下,命令如下

1
2
3
cd ~/5ALPHA/openssl-1.1.1v/openssl_output/lib
sudo cp -af libcrypto.so* ~/4nfs/buildroot/usr/lib
sudo cp -af libssl.so* ~/4nfs/buildroot/usr/lib

2. 测试库是否可用

暂时没测,不过后边会一直openssh,会用到这个库,可以相当于从那边侧面验证库知否可用了。