查看全志A10的CPU信息可以看到全志A10属于armv7l

$ cat /proc/cpuinfo
Processor   : ARMv7 Processor rev 2 (v7l)
BogoMIPS    : 1001.88
Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part    : 0xc08
CPU revision    : 2

Hardware    : sun4i
Revision    : 0000
Serial      : 0000000000000000

编译工具链可以参考“Rust交叉编译ARM程序(Mac篇)

构建完工具链就可以开始准备编译了,先下载程序,并设置一些初始变量

$ export OPENSSL_VERSION=1.0.1u
$ wget https://www.openssl.org/source/old/1.0.1/openssl-$OPENSSL_VERSION.tar.gz
$ tar -zxvf openssl-$OPENSSL_VERSION.tar.gz && cd openssl-$OPENSSL_VERSION

执行编译

$ export OPENSSL_INSTALL_PATH=/Users/jilili/Projects/build/armv7l/openssl-$OPENSSL_VERSION/
$ ./Configure -march=armv7-a -mfpu=vfpv3 -mfpu=neon --prefix=$OPENSSL_INSTALL_PATH --cross-compile-prefix=arm-linux-musleabi- no-asm shared linux-armv4
$ make -j4
$ make install

编译完成后就可以把程序发送到目标ARM主机

$ cd $OPENSSL_INSTALL_PATH/..
$ tar -zcvf openssl-1.0.1u.tgz openssl-1.0.1u/
$ scp openssl-1.0.1u.tgz ubuntu@192.168.3.148:/home/ubuntu/

由于采用的共享库,所以目前不能直接运行,需要将依赖的c运行时库(/lib/ld-musl-arm.so.1)也放到对应的目录,可在如下地址下载编译好的musl库,请注意版本,我编译OpenSSL时用的是0.9.8版,下载ARM版musl时也要对应的班:

https://bitbucket.org/GregorR/musl-cross/downloads/

$ wget https://bitbucket.org/GregorR/musl-cross/downloads/crossx86-arm-linux-musleabi-0.9.8.tar.xz
$ tar -zxvf crossx86-arm-linux-musleabi-0.9.8.tar.xz
$ sudo cp arm-linux-musleabi/arm-linux-musleabi/lib/libc.so /lib/ld-musl-arm.so.1

完成后解压、执行就行了。

对了,你运行前还有将OpenSSL的共享库路径加入环境变量,或者拷贝库到/lib或/usr/lib或者/usr/lib/arm-linux-gnueabihf/目录

export LD_LIBRARY_PATH=/home/ubuntu/1.0.1u/lib

[ 编辑 | 历史 ]
最近由“jilili”在“2019-11-18 01:02:05”修改