移植openssh到arm linux
一.在移植之前需要准备做一些前期准备:
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.将生成的文件都拷贝到要移植的板子上吧!!!