移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d
来源:互联网 发布:查看阿里云ecs带宽 编辑:程序博客网 时间:2024/05/30 04:26
#PS:要转载请注明出处,本人版权所有
#PS:这个只是 《 我自己 》理解,如果和你的
#原则相冲突,请谅解,勿喷
HOST:
Linux 4.10.0-35-generic #39~16.04.1-Ubuntu SMP Wed Sep 13 09:02:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
TARGET:
arm-hisiv400-linux-gnueabi 工具链,GLIBC-Kernel
移植起因
最近有个项目是使用的hisiv3520d的片子,按照官方SDK移植好了glibc-kernel之后,准备进行后期的开发。但是这块板子只有一个调试串口,多个同事就不能够同时使用这块板子,所以,就有了移植openssh的想法。
First
首先配置好官方的SDK,工具链必须是hisiv400的,这个工具链是glibc版本的,同时为了保持和内核的兼容性。
Second
首先找到当前openssh的稳定版本,下载地址为下面的地址,版本为7.5p1
ftp://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/
下载解压后,这里有一个文件希望大家在移植前先读一读根目录下一个叫做INSTALL的文本文件,特别是关于依赖的zlib和openssl兼容版本部分(下图已圈出重点)。下面是截图:
友情提示:一定要选择 《 版本合适 》 的zlib和openssl,不然最后编译不过openssh,我就是踩了这个坑。
Third
移植openssl-1.0.2l,下载地址(https://www.openssl.org/source/)。
这里很多网上的交叉编译方法答案都比较的乱,个人感觉有点复杂,都没有仔细的去读INSTALL文件。
其实直接执行:
./config no-asm shared –prefix=/home/sky/hisi3520d/Work/install –cross-compile-prefix=arm-hisiv400-linux-gnueabi-
我就不对这些参数一一说明了,这些参数的说明来自于Configure和INSTALL这个文件。非常全,下面是节选的部分说明。
# --prefix prefix for the OpenSSL include, lib and bin directories# --cross-compile-prefix Add specified prefix to binutils components.# no-asm do not use assembler# shared In addition to the usual static libraries, create # shared libraries on platforms where it's supported.
这里,我们需要查找自己要移植的芯片的arm架构版本,并且修改.config里面的有个叫做GUESSOS的变量。我看它脚本里面写的TARGET名字的规则(如下图),就自己定义一个合理的值给GUESSOS(这里很烦的,这个东西猜不准我的目标架构)
比如我给的值就是GUESSOS=armv7-hisi-3520d-linux2,中间的随意填,只要注意他的命名规则就好了
然后,make ,make install 就好了(其实有兴趣的可以去研究那个叫做Configure的文件,并直接执行这个脚本就可以配置完成了,但是在linux下,这样不推荐,config脚本也是调用的Configure的那个脚本)
Fourth
移植zlib-1.2.11,下载地址(http://www.zlib.net/),这个我没有找到好的方法,只有通过原始的改Makefile来实现。
首先
./config --prefix=/.../.../.../zlib_install
把makefile里面的CC,LDSHARED,CPP,AR,RANLIB等变量中编译链接相关的东西,改为交叉工具链中对应的东西。
然后make,make install
Fifth
开始正题。
./configure –host=arm-hisiv400-linux-gnueabi –with-libs –with-zlib=/home/sky/hisi3520d/Work/install –with-ssl-dir=/home/sky/hisi3520d/Work/install –disable-etc-default-login CC=arm-hisiv400-linux-gnueabi-gcc AR=arm-hisiv400-linux-gnueabi-ar
然后make就可以了。
最终生成的openssh相关的可执行程序在根目录。
最后相关的安装步骤我就不写了,都是按照网上的方法安装的,没有啥坑要填的了,你随意百度就能够得到。
#PS:请尊重原创,不喜勿喷
#PS:要转载请注明出处,本人版权所有.
有问题请留言,看到后我会第一时间回复
- 移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d
- CentOS7 安装 OpenSSL 1.0.1m 和 OpenSSH 6.8p1
- GdbServer和libuuid移植到HISI3520d
- openssh-7.5p1升级
- 升级OpenSSH7.2p1到OpenSSH7.6P1,升级openssl
- 可用:zlib-1.2.11.tar+openssl-1.0.2l.tar+curl-7.54.1.tar纯静态编译
- libCurl/openssl/Zlib的ARM移植
- CentOS 5.5下升级OpenSSH-4.3p2到5.6p1
- 移植openssh到montavista后记
- 移植OpenSSH到arm手记
- 移植OpenSSH到arm手记
- 移植OpenSSH到ARM板
- 移植openssh到nuc951evb板
- openssl 移植到 arm
- CentOS 6.8 升级OpenSSH至最新版本7.5p1
- 编译 libcurl 7.45.0 + zlib 1.2.8 + openssl 1.0.2d
- 移植OpenSSH 到嵌入式操作系统当中
- OpenSSH移植到ARM Linux教程
- java.net.BindException: Address already in use: bind
- 机房验收总结
- 负载均衡(Load Balancing)学习笔记三——负载均衡算法
- iOS之《Effective Objective-C 2.0》读书笔记(49)
- 机器学习原来如此有趣:如何用深度学习进行语音识别 #精选APPLEAR
- 移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d
- 服务器fastdfs java 文件上传测试
- php 全局变量 ,局部变量和global
- php56编译
- 聚类算法之K-means算法与聚类算法衡量指标
- 使用PHPExcel实现数据批量导出为excel表格
- SpringBoot intercept拦截器中获取JPA数据库操作实例
- 转载——correlation filter tracking,
- C++中的inline关键字