遇到的问题

在同一个局域网下,ubuntu linux和开发板能 ping 通,但是 scp 传文件到开发板失败了,提示ssh remote_ip **** lose connection connection timeout

原因在于开发板上板子没有启动 sshd 这个服务 ,不然连不上的,然后发现板子上并没有sshd
因此需要交叉编译ssh服务到开发板上才能使用相关应用,这篇博客浅浅记录一下整个过程,一站式脚本用的也更得心应手了

编译环境

  1. Ubuntu16.04 x86_64
  2. 交叉编译工具arm-linux-gnueabihf
  3. 板子ZYNQ7010,ARM平台 cortexa9

准备编译

以下均采用脚本进行编译,可自行根据脚本 download_package () 中的下载地址下载包并存放在 compressed 目录中,如图

开始编译

在一个空目录下新建一个脚本 ,如auto_compile.sh ,写入以下内容

#!/bin/shBASE=`pwd`
BUILD_HOST=arm-linux-gnueabihf
OUTPUT_PATH=${BASE}/arm_installmake_dirs () {cd ${BASE} && mkdir compressed arm_install source -p
}download_package () {cd ${BASE}/compressedwget https://www.zlib.net/fossils/zlib-1.2.12.tar.gzwget https://www.openssl.org/source/openssl-1.1.1q.tar.gzwget http://ftp5.usa.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
}tar_package () {cd ${BASE}/compressedls * > /tmp/list.txtfor TAR in `cat /tmp/list.txt`dotar -xf $TAR -C  ../sourcedonerm -rf /tmp/list.txt
}set_env () {source /opt/pkg/petalinux/2018.3/settings.sh
}make_zlib () {cd ${BASE}/source/zlib*./configure --prefix=${OUTPUT_PATH}/zlib#Makefile 中的gcc和ar替换成自己的sed -i '19,19s/gcc/arm-linux-gnueabihf-gcc/g' Makefilesed -i '30,30s/gcc/arm-linux-gnueabihf-gcc/g' Makefilesed -i '31,31s/gcc/arm-linux-gnueabihf-gcc/g' Makefilesed -i '39,39s/ar/arm-linux-gnueabihf-ar/g' Makefilemake -j8 && make install
}make_openssl () {cd ${BASE}/source/openssl*./config shared no-asm \--prefix=${OUTPUT_PATH}/openssl \--openssldir=${BASE}/source/openssl-1.1.1q/ssl#CROSS_COMPILE= 添加 arm-linux-gnueabihf-sed -i '92,92s/CROSS_COMPILE=/CROSS_COMPILE=arm-linux-gnueabihf-/g' Makefile#去掉 -m64 标签,否则会报错sed -i '126,126s/-m64//g' Makefilesed -i '127,127s/-m64//g' Makefilesed -i '129,129s/-m64//g' Makefilemake -j8 && make install
}make_openssh () {cd ${BASE}/source/openssh*./configure --host=arm-linux \--with-zlib=${OUTPUT_PATH}/zlib \--with-ssl-dir=${OUTPUT_PATH}/openssl \--disable-etc-default-login --disable-strip \CC=${BUILD_HOST}-gcc \AR=${BUILD_HOST}-armake -j8
}make_dirs
set_env
tar_package
make_zlib
make_openssl
make_openssh

移植到开发板

1.新建目录

查看开发板上有没有以下目录,若没有,则新建:

/usr/local/bin/
/usr/local/sbin/
/usr/local/etc/
/usr/local/libexec/
/var/run/
/var/empty/

2.拷贝文件

cd **/source/openssh-9.0p1sudo cp scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan /media/hammer/rootfs/usr/local/bin
sudo cp moduli ssh_config sshd_config /media/hammer/rootfs/usr/local/etc
sudo cp sftp-server  ssh-keysign /media/hammer/rootfs/usr/local/libexec
sudo cp sshd /media/hammer/rootfs/usr/local/sbin/sync

3.生成key文件

cd **/source/openssh-9.0p1ssh-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 ""sudo cp ssh_host_*_key /media/hammer/rootfs/usr/local/etc/

4.修改开发板passwd文件

sudo vi /etc/passwd
#在最后添加一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

上板测试

ssh root@remote_ip
scp file root@remote_folder

参考博客

arm交叉编译 sshd服务

交叉编译ssh服务到ARM开发板相关推荐

  1. 配置SSH服务器到ARM开发板中使用

    本例中所使用的硬件平台是GEC6818 ARM开发板 SSH_config.tar.bz下载 链接:https://pan.baidu.com/s/12xqy3ZxhBEjNm8lGQ0ZjAA 提取 ...

  2. mplayer linux arm,【嵌入式】交叉编译移植 Mplayer 到 ARM开发板

    一.基本信息 1.移植环境 ①:ubuntu16.04 ②:iMX6Q开发板 2.移植所需软件源码 ①:libmad libmad 下载 ②:mplayer mplayer下载 ③:百度网盘下载: 链 ...

  3. RV1109开发板ssh服务器移植到arm开发板

    RV1109开发板ssh服务器移植到arm开发板 ssh功能移植到RV1109开发板的,由于RV1109的SDK中,没有telnet功能,有时候adb功能在量产中需要关闭,避免造成设备留有漏洞,造成安 ...

  4. apache arm 交叉编译_Apache 2移植到Arm开发板的过程整理——如何交叉编译Apache 2

    话说要在arm开发板的linux系统中运行apache服务器,需要在pc linux系统中交叉编译Apache源码,在网上参考了很多资料都是1.3版本的,最后终于找到apache 2移植到arm开发板 ...

  5. arm linux 核心板 制作,Linux下制作给ARM开发板使用的文件系统

    1.Busybox源码请网上自行下载,编译方法请参考百度. 2.交叉编译工具链的设置也请先设置好. 如果以上1.2没有问题,那么可以使用以下脚本,制作一个给ARM开发板使用的文件系统. 可以自行定制使 ...

  6. 编译ARM平台的 QtEmbedded 的MySQL插件和移植MySQL到ARM开发板

    经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把MySQL也移植到了mini2410的开发板上. 编译器:arm-linux-gcc(4.3.2) Pc平台: ...

  7. 如何优雅地用ARM开发板搭建服务器

    为什么80%的码农都做不了架构师?>>>    本文参见Building a tiny ARM-based server,是翻译,也是学习. 我拆了一个旧的ARM开发板,并用它制作了 ...

  8. [2021]Linux下C语言qrencode二维码生成库的基本使用和ARM开发板移植

    文章目录 一.前言 二.准备所用到的环境以及版本信息 1.Ubuntu和内核版本 2.gcc和g++版本 3.交叉编译gcc和g++版本 4.开发板信息 三.开发环境编译&安装qrencode ...

  9. 基于ARM开发板搭建物联网服务器

    基于ARM开发板搭建物联网服务器 一.项目需求 1.1设备需求 1.2知识需求 1.3项目介绍 二.开发环境搭建 2.1阿里云服务器配置 2.2虚拟机交叉编译环境搭建 2.3下载相关应用压缩文件 三. ...

最新文章

  1. python轨迹追踪、全链路日志追踪trace_id实现
  2. 迅为工业级iMX6Q开发板全新升级兼容PLUS版本|四核商业级|工业级|双核商业级...
  3. 3D开发-AR技术基础
  4. Orchard源码分析(5.3):EndRequest事件处理(DefaultOrchardHost.EndRequest方法)
  5. 计算机任务类别 搜索服务,服务删除后仍要求启动 计划任务里找不到 该怎么办...
  6. linux 下.bashrc和.profile的区别
  7. Zimbra的zmcontral服务无法起来,提示ldap有问题。
  8. 通过ip地址定位计算机,局域网通过IP地址如何找到电脑的位置
  9. vue项目中引入vuex------初试
  10. 多线程下载王者荣耀高清壁纸
  11. Java正则表达式工具类(持续更新)
  12. 爱上一个人的七种表现
  13. sorted函数python_sorted函数
  14. 支付宝吱口令自动复制脚本,自动复制 JavaScript 代码介绍
  15. 苹果手机输入法软件测试,苹果手机三款输入法谁更牛?专业媒体评测后给出结果...
  16. imperva-代理安装
  17. RHCSA 2022/10/14
  18. 结构设计模式:复合模式
  19. Qt5.14.2下载与安装
  20. interlib android客户端开发,基于Android的移动图书馆设计与开发

热门文章

  1. 容器化技术和Docker
  2. 【总结】北大2018冬令营题目总结
  3. Python-数组切片
  4. android 控件美化,Android UI 美化
  5. 跨境电商独立站流量起飞!社媒 Hashtags 营销全攻略!
  6. 计算机输入出设备课件,《电脑输入设备》PPT课件.ppt
  7. python沙盒逃逸
  8. “npm”‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  9. 用matlab读csv数据_Matlab读取csv文件csvread函数的使用
  10. web系统多语言切换