通过ssh搭建PC和ARM开发板文件传输系统

本文详细介绍如何通过SSH协议在ARM开发板与PC间搭建文件传输系统,包括网络配置、IP地址设置、SSH服务移植及密钥登录方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过ssh搭建PC和ARM开发板文件传输系统

1.首先确认开发板与电脑是否能ping通

(1)使用网线连接开发板与PC,PC可以连上WiFi,这里注意如果之前电脑通过网线连接了外网,可能通过DHCP的方式自动获取一个IP地址,这时候再使用网线连接PC和开发板,IP可能会出错(而通过后面的方法一般通过WIFI共享给的以太网端口的地址是192.168.137.1),因此一般连接之后,我都使用网络重置,或者开机之前就连接好PC和开发板。

(2)打开网络和Internet设置——更改适配器选项——右击“WLAN”——选择共享——允许其他网络用户通过此计算机连接——以太网——确定

网络选项

(3)在windows里查看cmd,输入ipconfig查看以太网的地址应该是192.168.137.1(其他地址只要保证开发板的IP跟PC的IP在同一个网段(只有最后一位不同)就可ping)这个ip也是开发板的网关ip。电脑本地连接ip == 开发板的网关ip!

(4) 开发板通过网线连接笔记本电脑,修改开发板的ip地址,需要对应好自己的网关地址配置ip,例如网关ip是192.168.137.1,配置ip的命令:ifconfig eth0 192.168.137.XXX,XXX随便写个数字(除了1),要保证ARM开发板里的linux系统里有ifconfig和route命令,没有的话,在menuconfig里选择命令,make,make install,使用busybox重新制作文件系统,这里不详谈了(之前的系统不是我烧的,这些命令都没有,苦啊),但是这样重启之后,ip又会回到初始ip,要想永久修改ip到系统下etc/init.d/rcS里添加一句ifconfig eth0 192.168.137.XXX

(5)设置完ip后,先ping自己的电脑试一下

ping 192.168.137.1
成功了之后,设置网关
route add default gw 192.168.137.2
设置完ping百度
ping 202.108.22.5
如果能ping上则代表成功

2.移植SSH到ARM开发板

openssh移植到ARM Linux教程
几点说明:

1.按照此教程,但是我用的是arm-linux-gcc交叉编译器,直接把里面的arm-none-linux-gnueabi-gcc换成arm-linux-gcc即可

2.第6步交叉编译openssh中命令有错改为:

CC=arm-linux-gcc AR=arm-linux-ar ./configure --host=arm-linux --with-zlib=/home/sunproud/ssh/zlib.install/ --with-ssl-dir=/home/sunproud/ssh/openssl.install --disable-etc-default-login

3.还是第6步,一开始总是invalid host type,后来还查询了交叉编译器的bulid、host、target:

在讨论工具链创建时必须区分三台机器
构建机,其中工具链构建。
主机,其中,工具链将被执行。
目标机器,其中由工具链创建二进制文件被执行。工具链有四种常见的构建类型:
本机构建 ie BUILD=HOST=TARGET
用于为工作站构建普通gcc。例如BUILDHOSTTARGET==x86
交叉构建 ie BUILD=HOST!=TARGET
用于构建在工作站上工作但为目标生成二进制文件的工具链。例如BUILD=HOST=x86 TARGET=arm
跨本机构建,即BUILD!=HOST=TARGET
用于在目标上工作的工具链,并为目标生成二进制文件。例如BUILD=x86 HOST=TARGET=ARM
加拿大工具链即BUILD!=HOST!=TARGET
用于构建架构工具链在B上运行并为架构C生成二进制文件。例如BUILD=x86 HOST=mac TARGET=arm
但最后发现跟这个三个没什么关系,是openssh的版本问题,最后去找与编译器相同年份的openssl,谷歌gcc 4.8 openssh server找到openssh:release notes
下载与gcc相同年份的版本wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.4p1.tar.gz

4.最终用这篇文章上密码登陆的方法失败,大佬说说我arm上linux版本的问题,最后用rsa key的方法登陆了

### 如何在开发板上安装配置OpenWRT系统 #### 准备工作 为了顺利地将OpenWrt系统移植并安装到目标开发板,前期准备工作至关重要。这不仅涉及到硬件环境的搭建,还包括软件资源的获取与准备。 - **硬件准备**:确保拥有稳定可靠的电源供应、USB转TTL串口线用于调试以及网络接口以便于后续的数据传输。 - **软件准备**:下载适用于所用开发板型号(如i.MX6UL)的最新版OpenWrt镜像文件[^1]。对于某些特殊平台,可能还需要额外准备特定版本的Linux内核或其他依赖库来适配硬件特性[^2]。 #### 编译定制化OpenWrt固件 如果官方提供的预编译二进制包无法完全满足项目需求,则可以根据实际应用场景自行编译适合的OpenWrt固件: - 获取最新的OpenWrt源码仓库,并按照官方说明完成必要的初始化操作; - 配置Target System为目标处理器架构(例如ARM Cortex-A7),同时选择合适的子target(比如Freescale i.MX6系列)作为具体芯片支持; - 定义所需的软件包集合,在菜单config界面中勾选计划集成的功能模块服务程序; - 执行`make V=s`命令启动整个编译流程直至生成最终可刷写的.bin/.img格式映像文件。 #### 刷写OpenWrt至开发板 当准备好兼容的目标设备及其对应的OpenWrt固件之后,就可以着手进行烧录过程了。这里介绍两种常见的方法: - **通过Uboot阶段加载**:利用串口控制台进入UBoot引导模式下执行相应的指令集,借助TFTP协议从局域网内的服务器拉取远端存储的新固件副本并将其写入Flash分区中永久保存下来[^4]; ```bash setenv serverip <PC_IP> tftpboot ${loadaddr} openwrt-imx6ul-som.img saveenv bootm ${loadaddr} ``` - **基于WebUI在线升级**:假如当前运行的是带有图形界面管理后台的老版本OpenWrt或者其他第三方ROM的话,可以直接访问http://<device_ip>/cgi-bin/luci页面上传本地已有的新firmware来进行无缝替换而不必担心破坏现有数据结构。 #### 后期配置优化 一旦成功部署完毕新的操作系统后,便可以登录SSH终端进一步调整各项参数设定以适应具体的使用场景: - 修改默认管理员账户密码保护网络安全免受非法入侵威胁; - 设置静态IP地址分配策略保障内部通信稳定性; - 添加防火墙规则过滤不必要的外部流量请求提高整体性能表现; - 安装额外的应用组件扩展基本功能范围,诸如Samba共享服务、DDNS动态域名解析等实用插件都可以极大地方便日常运维管理工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值