一.在移植之前需要准备做一些前期准备:

1.移植zlib库

1.1获取zlib源码

1.2解压

tar xvf zlib-1.2.11.tar.xz

1.3交叉编译

1.3.1 指定交叉编译器

export CC=arm-linux-gnueabi-gcc

export AR=arm-linux-gnueabi-ar

1.3.2指定安装路径进行配置

./configure --prefix=$PWD/_install

1.3.3编译并安装

make && make install

2.编译openssl

2.1tar xvf openssl-1.0.2l.tar.gz

2.2设置一些环境变量方便使用

export CROSS=arm-linux-gnueabi

export CC=${CROSS}-gcc

export LD=${CROSS}-ld

export AS=${CROSS}-as

export AR=${CROSS}-ar

2.3获取一个针对当前版本的补丁

wget www.linuxfromscratch.org/patches/downloads/openssl/openssl-1.0.2l-compat_versioned_symbols-1.patch

2.4打补丁

patch -Np1 -i ../openssl-1.0.2l-compat_versioned_symbols-1.patch

2.5./Configure -DOPENSSL_NO_HEARTBEATS --openssldir=/home/jello/openssl-1.0.2l/_install shared os/compiler:arm-linux-gnueabi-  //openssldir是指定安装目录

2.6make

2.7make install

2.8生成动态库

2.8.1 切换到openssl的安装目录(笔者的安装目录为/home/jello/openssl-1.0.2l/_install)

  cd /home/jello/openssl-1.0.2l/_install

2.8.2 $AR -x libcrypto.a

2.8.3 $CC -shared *.o -o libcrypto.so
2.8.4 rm *.o
2.8.5 $AR -x libssl.a

2.8.6 $CC -shared *.o -o libssl.so

2.8.7 rm *.o

二.准备已经就绪,接下来就是编译openssh了

1.获取源码

git clone git://anongit.mindrot.org/openssh.git

2.编译

2.1 autoconf

2.2 autoheader

2.3 export CFLAGS="$CFLAGS -I/home/jello/openssl-1.0.2l/_install/include/ -fPIC"

2.4 export LDFLAGS="-L/home/jello/openssl-1.0.2l/_install"

2.5. LD=arm-linux-gnueabi-gcc

2.6 ./configure --with-ssl-dir=/home/jello/openssl-1.0.2l/_install \

--with-zlib=/home/jello/zlib-1.2.11/_install --host=arm-linux-gnueabi

2.7 make -j4

3.将生成的文件都拷贝到要移植的板子上吧!!!

05-15 03:30