前言
4G模块:EC20
开发板芯片:SD3403
交叉编译工具:aarch64-mix210-linux-gcc
虚拟机:Ubuntu18.04
PPP编译
由于在调试过程中需要使用pppd进行拨号,所以需要在PC上编译并且将其拷贝至开发板。
ppp源码
ppp源码链接
解压ppp-2.4.8.tar.gz
tar -zxvf ppp-2.4.8
cd ppp-2.4.8
配置编译
mkdir __install
./configure --prefix=$PWD/__install
make CC=aarch64-mix210-linux-gcc
出现错误
aarch64-linux-gnu/bin/ld: cannot find -lcrypto
ps:在这里直接使用make编译是不会出错,说明系统是有这个库的
一番冲浪之后发现是缺少了libcrypto.so文件
openssl源码
openssl源码链接
解压后进行编译
./config --prefix=/opt/linux/x86-arm/aarch64-mix210-linux/lib --cross-compile-prefix=aarch64-mix210-linux- no-asm shared
sed -i "s/-m64//g" Makefile
make
sudo make install
编译安装之后,再编译依然出错,此时库已经在/opt/linux/x86-arm/aarch64-mix210-linux/lib目录中。
也可以使用以下命令查找该库
sudo find / -name libcrypto.so
使用以下命令确定编译器搜寻路径
aarch64-mix210-linux-gcc -lcrypto --verbose
发现在LIBRARY_PATH=后没有我选择的路径,将库拷贝到其中一个路径编译就通过了。
PPP移植
将源码目录下pppd/pppd文件以及chat/chat文件移植到开发板/usr/sbin目录下,并且将库移植进开发板的/usr/lib目录下