开发板linux到虚拟机linux间的文件传输——scp指令与本地地址的配置
2019-07-12 23:14发布
生成海报
(调试了整整一晚上,ping来ping去,开发板和虚拟机之间就是ping不通。经过自己一顿瞎折腾,总算通了之后却没处装逼,索性来写一篇博客。)
(这是我第一次写博客,我也是刚开始学嵌入式的新手,而且这篇文章涉及更多的是网络通信,好多原理也不太懂,所以可能说的也很不详细。)
(当作是日记吧)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
首先,我用的是BBblack。
要实现开发板到虚拟机的文件传输,首先要知道linux下的一个很牛逼的指令:scp。
scp root@192.168.1.96:/home/gyj/main.c /home/gyj/
scp跟cp一样,就是将某路径的文件复制到目标路径里,但是它牛逼就牛逼在它手长——可以跨到另一个linux上取文件。如这句指令,意思是从地址为192.168.1.96的(我将虚拟机linux的本地地址设为192.168.1.96了)、用户名为root的linux操作系统中,的/home/gyj/文件夹中取main.c文件,拷到开发板的linux下的/home/gyj/文件夹中。如果要传输文件夹的话,加个参数-r。
很拗口?去百度吧……
之后会要求你输入源目标的用户密码。就是你虚拟机上root用户的密码了。输入正确后就会传输,传输成功后查看gyj文件夹,就会发现main.c了。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
当然,要实现用这条指令的传输显然没有那么简单(不然我也不会花一晚上来搞了)。
想要用这条指令,前提是你在开发板上使用ping命令: ping 192.168.1.96 (即虚拟机linux本地地址)能够ping通。
这也是我瞎折腾了一晚上的东西。
两步走:①开发板linux与PC互ping能通,②虚拟机linux与PC互ping能通
说简单其实是真的简单到没天理……只不过我走了无数种弯路而已。
For ①:
<1>开发板用网线与主机相连
<2>在串口终端中设置开发板linux的地址,即用指令ifconfig eth0 192.168.1.xxx netmask 255.255.255.0
(XXX可以是0~255间的任意数字,记住别和虚拟机linux和PC的本地地址相同了。netmask是设置子网掩码)
<3>(我用的win10)控制面板-网络和Internet-更改适配器设置,找到PC与开发板链接的那个本地连接,修改TCP/IPv4如下,我将PC的IP地址设置为192.168.1.18。
(如果不能确定是哪个本地连接,可以拔掉互联的网线,显示网缆断开的那个就是了。记住默认网关一定要设好。如果设成192.168.2.1的话,PC的IP、虚拟机linux的IP以及开发板linux的IP 就要设成192.168.2.xx)
<4>打开cmd,ping开发板IP,(我把开发板IP设成192.168.1.8),即ping 192.168.1.8。通了。
For ②:
<1>打开虚拟机linux。
<2>设置ip地址,即 ifconfig eth0 192.168.1.xxx netmask 255.255.255.0 (我将虚拟机地址设为192.168.1.96)
<3>ping 192.168.1.18 ——通了
<4>那么再ping 开发板的地址 192.168.1.8——也通了。
<5>没有第五步了吧。尝试着在串口终端用scp指令传输文件吧。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮