嵌入式学习小组
登录
直播中
感谢相遇
9年用户
929经验值
擅长:嵌入式技术 制造/封装 控制/MCU
私信
关注
如何将mini2440嵌入式开发板移植到OpenSSH上去呢
开启该帖子的消息推送
嵌入式开发板
Mini2440
如何将mini2440嵌入式
开发板
移植到OpenSSH上去呢?有哪些移植步骤呢?
回帖
(1)
张桂兰
2021-12-27 12:06:44
一、说明
移植对象: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账号的密码即可登录了。
一、说明
移植对象: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账号的密码即可登录了。
举报
更多回帖
rotate(-90deg);
回复
相关问答
嵌入式开发板
Mini2440
怎样
将
sqlite3数据库交叉编译并
移植
到
嵌入式开发板
上去呢
2021-12-27
833
初试imx6ull
mini
嵌入式开发板
2021-12-27
1165
怎样
将
主机存储通过NFS挂载在
嵌入式开发板
上去呢
2021-12-27
1057
学
嵌入式
系统,求
开发板
推荐
2014-04-05
2016
RTLinux内核提取并向
Mini2440
开发板
上
移植
2018-11-19
3249
如何将
Qt程序
移植
到
Arm
开发板
上
2022-07-13
4041
怎样
将
rz/sz命令的源码
移植
到
嵌入式开发板
的宿主机下呢
2021-12-27
699
如何将
嵌入式开发板
设置成无密码登录呢
2021-12-27
535
请问一下
如何将
用QT做好的播放器
移植
到
ARM
开发板
上去呢
2022-07-12
3032
选择怎样的
嵌入式
处理器,做图像处理?
2014-02-20
3628
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分