1.根据上篇文章内核可以编译,无问题,但是无法使用GMSSL
2.查看GMSSL版本
gmssl version
gmssl: relocation error: gmssl: symbol PBEPARAM_it, version OPENSSL_1_1_0d not defined in file libcrypto.so.1.1 with link time reference
3.获取到GMSSL安装压缩包,放在tool文件夹下
unzip GmSSL-master.zip
配置安装
sudo ./config
sudo make
sudo make install
4.安装成功验证
gmssl version
GmSSL 2.3.1 - OpenSSL 1.1.0d 30 Mar 2018
5.编译飞腾的网安打包工具发现,生成固件是没有问题,且修改固件配置和启动都是成功,但是报错信息
/*****************************************************************/
./my_scripts/UpdateBIOS: /usr/local/lib/libcrypto.so.1.1: version `OPENSSL_1_1_0' not found (required by ./my_scripts/UpdateBIOS)
cp: cannot stat 'my_scripts/BiosHead.bin': No such file or directory
rm: cannot remove 'my_scripts/BiosHead.bin': No such file or directory
77563+1 records in
77563+1 records out
3723059 bytes (3.7 MB, 3.6 MiB) copied, 0.427732 s, 8.7 MB/s
解决一下以上问题,
ldd /usr/local/bin/gmssl
linux-vdso.so.1 => (0x00007ffd2f765000)
libssl.so.1.1 => /usr/local/lib/libssl.so.1.1 (0x00007f6273ebf000)
libcrypto.so.1.1 => /usr/local/lib/libcrypto.so.1.1 (0x00007f627394a000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f627372d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6273363000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f627315f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6274138000)
cd GmSSL-master
sudo cp libssl.so.1.1 /usr/local/lib/libssl.so.1.1
sudo cp libcrypto.so.1.1 /usr/local/lib/libcrypto.so.1.1
并没有解决,时间有限,作为遗留问题,后面继续
并发现新问题
6.此刻编译内核会报错如下
why@why:~/work/os/linux-phytium-4.19.8$ make ARCH=arm64
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
EXTRACT_CERTS
scripts/extract-cert: /usr/local/lib/libcrypto.so.1.1: version `OPENSSL_1_1_0' not found (required by scripts/extract-cert)
rm: cannot remove 'certs/x509_certificate_list': No such file or directory
certs/Makefile:29: recipe for target 'certs/x509_certificate_list' failed
make[1]: *** [certs/x509_certificate_list] Error 1
Makefile:1052: recipe for target 'certs' failed
make: *** [certs] Error 2
why@why:~/work/os/linux-phytium-4.19.8$ openssl version
openssl: /usr/local/lib/libssl.so.1.1: version `OPENSSL_1_1_0' not found (required by openssl)
openssl: /usr/local/lib/libcrypto.so.1.1: version `OPENSSL_1_1_0' not found (required by openssl)
7.将openssl 编译的文件替换
why@why:~/work/tool/openssl-1.1.0k$ ldd /usr/local/bin/openssl
/usr/local/bin/openssl: /usr/local/lib/libssl.so.1.1: version `OPENSSL_1_1_0' not found (required by /usr/local/bin/openssl)
/usr/local/bin/openssl: /usr/local/lib/libcrypto.so.1.1: version `OPENSSL_1_1_0' not found (required by /usr/local/bin/openssl)
linux-vdso.so.1 => (0x00007ffc27fcd000)
libssl.so.1.1 => /usr/local/lib/libssl.so.1.1 (0x00007fe077bc8000)
libcrypto.so.1.1 => /usr/local/lib/libcrypto.so.1.1 (0x00007fe077653000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe077436000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe07706c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe076e68000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe077e41000)
why@why:~/work/tool/openssl-1.1.0k$ sudo cp libssl.so.1.1 /usr/local/lib/libssl.so.1.1
why@why:~/work/tool/openssl-1.1.0k$ sudo cp libcrypto.so.1.1 /usr/local/lib/libcrypto.so.1.1
查看openssl 版本,正常
openssl version
OpenSSL 1.1.0k 28 May 2019
8.总结主要是两个文件
libssl.so.1.1 => /usr/local/lib/libssl.so.1.1 (0x00007fe077bc8000)
libcrypto.so.1.1 => /usr/local/lib/libcrypto.so.1.1 (0x00007fe077653000)
因为GMSSL的原因openssl版本不能兼容,目前只能用的时候替换