交叉编译ssh服务到ARM开发板
遇到的问题
在同一个局域网下,ubuntu linux
和开发板能 ping
通,但是 scp
传文件到开发板失败了,提示ssh remote_ip **** lose connection connection timeout
原因在于开发板上板子没有启动 sshd
这个服务 ,不然连不上的,然后发现板子上并没有sshd
因此需要交叉编译ssh服务到开发板上才能使用相关应用,这篇博客浅浅记录一下整个过程,一站式脚本用的也更得心应手了
编译环境
- Ubuntu16.04 x86_64
- 交叉编译工具arm-linux-gnueabihf
- 板子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开发板相关推荐
- 配置SSH服务器到ARM开发板中使用
本例中所使用的硬件平台是GEC6818 ARM开发板 SSH_config.tar.bz下载 链接:https://pan.baidu.com/s/12xqy3ZxhBEjNm8lGQ0ZjAA 提取 ...
- mplayer linux arm,【嵌入式】交叉编译移植 Mplayer 到 ARM开发板
一.基本信息 1.移植环境 ①:ubuntu16.04 ②:iMX6Q开发板 2.移植所需软件源码 ①:libmad libmad 下载 ②:mplayer mplayer下载 ③:百度网盘下载: 链 ...
- RV1109开发板ssh服务器移植到arm开发板
RV1109开发板ssh服务器移植到arm开发板 ssh功能移植到RV1109开发板的,由于RV1109的SDK中,没有telnet功能,有时候adb功能在量产中需要关闭,避免造成设备留有漏洞,造成安 ...
- apache arm 交叉编译_Apache 2移植到Arm开发板的过程整理——如何交叉编译Apache 2
话说要在arm开发板的linux系统中运行apache服务器,需要在pc linux系统中交叉编译Apache源码,在网上参考了很多资料都是1.3版本的,最后终于找到apache 2移植到arm开发板 ...
- arm linux 核心板 制作,Linux下制作给ARM开发板使用的文件系统
1.Busybox源码请网上自行下载,编译方法请参考百度. 2.交叉编译工具链的设置也请先设置好. 如果以上1.2没有问题,那么可以使用以下脚本,制作一个给ARM开发板使用的文件系统. 可以自行定制使 ...
- 编译ARM平台的 QtEmbedded 的MySQL插件和移植MySQL到ARM开发板
经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把MySQL也移植到了mini2410的开发板上. 编译器:arm-linux-gcc(4.3.2) Pc平台: ...
- 如何优雅地用ARM开发板搭建服务器
为什么80%的码农都做不了架构师?>>> 本文参见Building a tiny ARM-based server,是翻译,也是学习. 我拆了一个旧的ARM开发板,并用它制作了 ...
- [2021]Linux下C语言qrencode二维码生成库的基本使用和ARM开发板移植
文章目录 一.前言 二.准备所用到的环境以及版本信息 1.Ubuntu和内核版本 2.gcc和g++版本 3.交叉编译gcc和g++版本 4.开发板信息 三.开发环境编译&安装qrencode ...
- 基于ARM开发板搭建物联网服务器
基于ARM开发板搭建物联网服务器 一.项目需求 1.1设备需求 1.2知识需求 1.3项目介绍 二.开发环境搭建 2.1阿里云服务器配置 2.2虚拟机交叉编译环境搭建 2.3下载相关应用压缩文件 三. ...
最新文章
- python轨迹追踪、全链路日志追踪trace_id实现
- 迅为工业级iMX6Q开发板全新升级兼容PLUS版本|四核商业级|工业级|双核商业级...
- 3D开发-AR技术基础
- Orchard源码分析(5.3):EndRequest事件处理(DefaultOrchardHost.EndRequest方法)
- 计算机任务类别 搜索服务,服务删除后仍要求启动 计划任务里找不到 该怎么办...
- linux 下.bashrc和.profile的区别
- Zimbra的zmcontral服务无法起来,提示ldap有问题。
- 通过ip地址定位计算机,局域网通过IP地址如何找到电脑的位置
- vue项目中引入vuex------初试
- 多线程下载王者荣耀高清壁纸
- Java正则表达式工具类(持续更新)
- 爱上一个人的七种表现
- sorted函数python_sorted函数
- 支付宝吱口令自动复制脚本,自动复制 JavaScript 代码介绍
- 苹果手机输入法软件测试,苹果手机三款输入法谁更牛?专业媒体评测后给出结果...
- imperva-代理安装
- RHCSA 2022/10/14
- 结构设计模式:复合模式
- Qt5.14.2下载与安装
- interlib android客户端开发,基于Android的移动图书馆设计与开发