模仿步骤:
https://blog.csdn.net/qq_24835087/article/details/104459726
需要三个文件
zlib-1.2.11.tar.gz
./configure --share --prefix=/research/ssh/install_zlib
--static 表示生成静态库 也可以使用--share生成动态库
--prefix 指定make install的安装目录
2>修改makefile 更换编译器为交叉编译器
CC=arm-himix100-linux-gcc
LDSHARED=arm-himix100-linux-gcc
CPP=arm-arm-himix100-linux-gcc -E
AR=arm-himix100-linux-ar
make
make install
openssl-1.1.1c.tar.gz
./Configure linux-generic32 no-asm shared no-async --prefix=/research/ssh/install_openssl CROSS_COMPILE=/opt/hisi-linux/x86-arm/arm-himix100-linux/bin/arm-himix100-linux- -fPIC
linux-generic32:32位系统
no-asm:在交叉编译过程中不使用汇编代码代码加速编译过程
shared:生成动态连接库
no-async:不使用GNU的ucontext库 交叉编译工具链没有提供GNU C的ucontext库
--prefix:指定install输出的目录
CROSS_COMPILE:指定编译器,需要绝对路径
-fPIC全称是Position Independent Code,用于生成位置无关代码,代码无绝对跳转,都是相对跳转
make
make install
openssh-82p1.tar.gz
./configure --host=arm-himix100-linux --with-libs --with-zlib=/research/ssh/install_zlib --with-ssl-dir=/research/ssh/install_openssl --disable-etc-default-login CC=arm-himix100-linux-gcc AR=arm-himix100-linux-ar
make
不需要make install
-readelf -d sshd 就可以知道sshd需要哪些动态库
如果你开发板的文件系统能够运行起来,那么其中的大部分库应该是有的,缺少的可能是libcrypt.so.1和libz.so.1,libcrypt.so.1在openssl源码根目录下可以找到,libz.so.1在libz源码的根目录下。将缺少的库拷贝到开发板/lib下即可。
将开发板/usr/local/etc/sshd_config,将PermitRootLogin yes前的注释“#”号去掉,若没有这一句,增加这一句即可。
开发板执行passwd root,给root用户增加密码,若之前有密码,这一步可跳过。
开发板打开 /etc/passwd 文件,在最后添加一行:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
开发板打开/etc/init.d/rcS,在最后增加一句:/usr/sbin/sshd &,让ssh服务开机在后台启动(必须保证此时网卡已经配置好,否则启动ssh服务需要放到网卡配置后面)
mkdir /var/empty //重要