本帖最后由 andeyqi 于 2023-11-14 23:54 编辑
简介:
之前开发过程中更新程序,kernel,dtb 到板子的时候都是,通过u盘mount 后更新到系统,需要先从pc 拷贝到u盘然后U盘挂载到系统,效率相对低些,如果能直接从开发的虚拟机传递到开发板这样效率就会高很多,开发板配套的资料里提到了通过**scp的方式更新到开发板上,这样就会省去中间商U盘的环节,对开发的效率上会大大的提高。
SCP协议是一种安全文件传输协议,允许用户在本地主机和远程主机之间安全地复制文件和目录。它使用了SSH协议来进行加密,具有很高的安全性。SCP协议支持各种高级用法,如批量复制、上传目录、下载目录等。在使用SCP协议时,需要合理使用各种安全认证方式,以保障传输过程中的安全性。
环境配置:
根据上述的描述,SCP 协议是依赖网络的应用层协议,理论上我们只要把网络配置ok 即可实现设备间的通信。我们的开发环境主要涉及到三个网络配置,用于交叉编译的Ubantu 20.4 虚拟机,Windows10开发主机,AM62开发板 开发板,我们对涉及的三个网卡进行配置让三个设备能够通信。
虚拟机网卡配置:
本地的虚拟机使用的是Oracle VM VirtualBox,我们在设置中创建一个虚拟网卡采用桥接的配置方式,配置如下:
ubantu 配置网卡ip,w我们本地配置192.160.32.xxx的网络地址段,输入如下命令配置虚拟机的IP 地址为192.168.32.110 此处要根据自己实际网卡名称进行配置本地网卡名称为enp0s9:
- sudo ifconfig enp0s9 192.160.32.110 netmask 255.255.255.0 up
复制代码配置完后ifconfig 读取ip 配置发现已经按照我们设置的IP进行配置了。
配置Windown10 IP地址:
我们配置window10 地址为同网段的192.160.32.20 配置信息如下,同时要关闭window10的防火墙配置,避免通信异常。
配置开发板IP地址:
按照上面配置虚拟机IP的方式配置开发板的IP地址为192.160.32.10,配置命令如下:
- ifconfig eth0 192.160.32.10 netmask 255.255.255.0 up
复制代码通过ifconfig 读取IP配置发现已经按照预期的配置更新到开发板了。
上机验证:
配置好上述的三个网卡的IP后我们先验证下网络通信是否正常,通过ubantu 分别ping 下Window10 和AM62 开发板,发现都已经能正常ping 通。
上述虚拟机已经能和开发板正常通信了,我们就可以验证scp 传输文件的功能了,我们在虚拟机上输入如下命令验证我们上一篇的gpio_key的测试程序,看看能否传输成功。
我们传入开发板的如下路径,传输前查看下目录内容如下:
- root@myd-am62x:/home/workspace/usb# ls -l
- total 64
- -rw-r--r-- 1 root root 60513 Apr 29 01:20 myd-y62x-6252.dtb
- drwxr-xr-x 2 root root 4096 Jan 1 1970 test
复制代码虚拟机输入如下命令传输event可执行文件:scp event root@192.160.32.10:/home/workspace/usb/
上述截图显示已经传输成功,我们查看下AM62开发板的home/workspace/usb/ 目录下也已经多了个event文件了。
上述截图可以看出event 已经通过网络传输到开发板了,有了scp 我们就可以告别U盘传输可执行程序的过程了,使用体验大大提高了。
|