参考:https://blog.csdn.net/baidu_29221887/article/details/103706745
一、下载源码:
1、zlib:http://www.zlib.net/zlib-1.2.11.tar.gz
2、openssl:https://www.openssl.org/source/openssl-1.1.1h.tar.gz
3、openssh:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
二、编译
export CC=arm-himix200-linux-gcc
export CXX=arm-himix200-linux-g++
建立输出目录
/home/leon/Workspace/opensshd/output
建立编译目录
/home/leon/Workspace/opensshd/build
1、编译zlib
在build目录下解压zlib
tar xf zlib-1.2.11.tar.gz
cd cd zlib-1.2.11
./configure –prefix=/home/leon/Workspace/opensshd/output
出现如下错误:
Compiler error reporting is too harsh for ./configure (perhaps remove -Werror).
** ./configure aborting.
其实只是提示编译器警告设置不合适,并不是致命错误, 在configure文件中找到如下字段:
echo “Checking for obsessive-compulsive compiler options…” >> configure.log
if try $CC -c $CFLAGS $test.c; then
:
else
echo “Compiler error reporting is too harsh for $0 (perhaps remove -Werror).” | tee -a configure.log
leave 1
fi
注释掉leave 1,即可往下进行,如下:
echo “Checking for obsessive-compulsive compiler options…” >> configure.log
if try $CC -c $CFLAGS $test.c; then
:
else
echo “Compiler error reporting is too harsh for $0 (perhaps remove -Werror).” | tee -a configure.log
#leave 1
fi
make
make install
2、编译openssl
./config linux-generic32 no-asm no-async shared –prefix=/home/leon/Workspace/opensshd/output –cross-compile-prefix=arm-himix200-linux-
对生成的Makefile进行检查:
CFLAGS加上zlib的头文件路径和lib路径
CROSS_COMPILE=arm-himix200-linux-
CC=$(CROSS_COMPILE)gcc
CXX=$(CROSS_COMPILE)g++
CPPFLAGS=
CFLAGS=-Wall -O3 -fomit-frame-pointer -I/home/leon/Workspace/opensshd/output/include -L/home/leon/Workspace/opensshd/output/lib
make -j8
需要几分钟时间
make install
3、编译openssh
./configure –host=arm-linux –with-libs –with-zlib=/home/leon/Workspace/opensshd/output –with-ssl-dir=/home/leon/Workspace/opensshd/output –disable-etc-default-login –prefix=/home/leon/Workspace/opensshd/output
make -j8
make很顺利,可以make install失败,没搞清楚怎么解决,直接拷贝文件好了
cp scp sftp sftp-server ssh ssh-add ssh-agent ssh-keygen ssh-keyscan ssh-keysign ssh_config sshd sshd_config ../
4、运行
执行sshd 出现错误:
PRNG is not seeded
一天没能解决,暂时搁置