完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
移植对象:mini2440开发板(linux-kernel_6.2.32.2文件系统) 编译环境:deepin20.1 二、移植步骤 1. 下载 下载以下文件并解压: 2. 编译 编译总流程概述:先编译zlib和openssl,编译后会得到头文件和库文件,再用这些头文件和库文件辅助openssh编译,最后得到我们需要的移植程序。 这里,编译zlib和openssl可以得到动态链接库文件,也可以得到静态库链接文件,本文采取的是静态编译,即使用的是.a文件来辅助openssh编译。 2.1 找路径 2.2 zlib编译 编译说明:本文会在zlib文件夹中创建一个tmp目录,将zlib编译结果放入其中备用。 进入zlib解压后的目录,命令如下: cd zlib-1.2.11/./configure --prefix=$PWD/tmp 配置完毕后,修改Makefile文件如下(…为省略后文): CC=gcc 改为:CC=arm-linux-gccLDSHARED=gcc ... 改为:LDSHARED=arm-linux-gcc ...CPP=gcc -E 改为:CPP=arm-linux-gcc -EAR=ar 改为:AR=arm-linux-arRANLIB=ranlib 改为:RANLIB=arm-linux-ranlib 修改完后保存退出,先用make编译,之后再make install: makemake install 之后就可以在zlib目录下看到一个tmp目录,打开如下: 进入lib目录: 进入include目录: 2.3 openssl编译 同理,openssl的编译流程也与zlib一样。 配置Makefile文件如下: cd openssl-1.0.1d/./config --prefix=$PWD/tmp os/compiler:arm-linux-gcc 修改Makefile文件如下: 保存修改,退出,开始编译: makemake install 同样生成tmp目录: lib目录下: include目录下: 2.4 openssh编译 openssh的编译需要用到前两步生成的文件。 补充:此处configure命令参数较多,可以使用./configure --help命令查看参数配置详情,如下: 以下编译命令可以告诉openssh在编译的时候到指定目录下寻找需要的文件: ./configure --host=arm-linux --with-libs --with-zlib=/home/hui/code/openssh/zlib-1.2.11/tmp --with-ssl-dir=/home/hui/code/openssh/openssl-1.0.1d/tmp --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar 可以看到,通过–with-zlib 和 --with-ssl-dir就可以指定openssh编译需要的文件的路径了。 配置结束后,同样需要修改Makefile文件,如下: 要将Makefile中的CC,LD,AR,RANLIB改为上图中红色箭头所示。红色下划线的位置可以看出我们在configure命令中配置的路径已写入Makefile,openssh在编译过程中会去这里取用需要的头文件、库文件。 配置完毕,开始编译,注意:这里不要install make make之后,就会在openssh文件目录下(当前目录)下生成移植openssh需要的所有文件,可以用以下命令查看: ls scp sftp ssh sshd ssh-add ssh-keygen ssh-keyscan ssh-agent moduli ssh_config sshd_config sftp-server ssh-keysign 可看到: 3. 移植 移植过程就需要在开发板的linux系统上进行了。 3.1 创建文件夹 确保在开发板上有以下目录,没有的创建: /usr/local/bin/usr/local/etc/usr/libexec/var/run/var/empty 在开发板上进行目录权限及所属设置(以下命令在开发板上运行): chmod 755 /var/emptychown root:root /var/empty 3.2 复制文件 说明:由于当前开发板使用的是文件系统,使用了NFS挂载的方式,移植过程其实就是将文件复制到文件系统目录中而已。读者根据自己的情况,把以下指定的文件传到开发板指定目录即可。 1. 将之前openssh编译生成的 `scp sftp ssh sshd ssh-add ssh-agent ssh-keygen ssh-keyscan` 共8个文件传到mini2440开发板的`/usr/local/bin`目录下。 2. 将`moduli ssh_config sshd_config`共3个文件传到开发板的`/usr/local/etc`目录下。 3. 将`sftp-server ssh-keysign`共2个文件传到开发板的`/usr/libexec`目录下。 3.3 生成密钥文件 复制完文件后,回到开发板的/usr/local/bin目录下,依次执行以下四个命令: 注意:命令输入后等待时间稍长,不报错或没有Aborted的话,就等着命令执行完。 ./ssh-keygen -t rsa -f ssh_host_rsa_key -N ""./ssh-keygen -t dsa -f ssh_host_dsa_key -N ""./ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""./ssh-keygen -t dsa -f ssh_host_ed25519_key -N "" 命令执行完毕,会有如下打印: 四个命令都执行完后,得到8个文件,在开发板的当前目录(/usr/local/bin)下,执行以下命令: mv ssh_host* ../etc 该命令将以上四个命令生成的密钥文件移动到了开发板的/usr/local/etc目录下。 3.4 配置ssh 将开发板的/usr/local/etc目录下的sshd_config文件里的一句注释打开,以允许root登录,如下: 检查开发板上的/etc/passwd文件: 这里要用sh,不能用bash。 原因:我们开发板使用的是busybox,在开发板的/bin目录可以看到busybox提供的是sh命令,不是bash: 最后,在开发板上执行以下命令设置root用户登录密码: passwd root 3.5 试登录ssh 先在开发板上运行sshd程序,执行以下命令: /usr/local/bin/sshd 执行完后使用ps命令可查看sshd是否在运行: 开发板上sshd运行起来后,查看开发板的IP地址用来ssh登录: 在deepin(linux系统即可)的一个终端窗口执行以下命令即可通过ssh登录开发板了: ssh -v root@192.168.10.45 输入命令后,如果能正常登录,第一次登录的时候就会出现是否确认登录,选yes;然后输入之前设置的root账号的密码即可登录了。 |
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1105 浏览 1 评论
2473 浏览 5 评论
2807 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2645 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
652浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 18:42 , Processed in 1.152377 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号