【Raspberry Pi系列】2. 多种传输方式的比较

从PC传输文件给树莓派是我们通信的重要意义,这样才能将我们需要的交叉编译好的可执行文件传送给树莓派,让它执行任务,达到我们的目的要求。这一节我们就传输的各种方式进行比较,看看哪种是我们所需要的高效的方法。

器材

硬件

  • 实验主板一块,raspberrypi(树莓派);
  • 5V/1A电源一个;
  • microUSB线一根;
  • USB-TTL串口线一根(FT232RL芯片或PL2303芯片)。

自备器材:

  • PC(Windows 10)一台;
  • ENDUP无线USB网卡;
  • 迷你无线路由器;

软件

  • PC上的sftp访问软件,windows下使用FileZilla
  • PC上串口传输文件的工具,使用超级终端HyperTRM

步骤


1. 配置SAMBA客户端

我们开始对samba进行最基本的配置,即利用samba来实现电脑读写树莓派间上指定文件夹内的文件,我们先使用下面命令在树莓派上安装SAMBA

sudo apt-get install samba
sudo apt-get install samba-common-bin

安装完成后,我们在/etc/samba/文件夹中找到SAMBA的配置文件smb.conf,我们只需要一个简单smb.conf。可以输入下面的内容:

#设置全局的SAMBA日志存放的地方
[global]
        log file = /var/log/samba/log.%m
#设置共享的临时文件夹的物理路径和各种属性
[tmp]
        comment = Temporary file space
        path = /tmp
        read only = no
        public = yes

保存完毕后输入命令sudo /etc/init.d/samba restart重启samba服务,此时由于还没创建samba用户,我们还需要设置SAMBA支持的用户。在/etc/samba/文件夹下建立smbpasswd文件,使用命令sudo touch /etc/samba/smbpasswd

再给samba添加用户名为pi的用户,使用命令sudo smbpasswd -a pi,设置好登陆密码,然后此时会显示添加成功。

此时再PC端打开网上邻居(win10是网络),可以看到raspberry:
这里写图片描述

输入设置好的用户名与密码:
这里写图片描述

这时可以进去了,会发现我们设置好的共享文件夹(这里为主目录下的tmp文件夹)。
这里写图片描述

我们可以传输一个txt文件进去:
这里写图片描述

然后在SSH终端查看,发现已经文件已经传输到了树莓派上:
这里写图片描述

2. 不同文件传输方式的比较

下面我尝试各种与树莓派传递文件的方式,并且做比较。采用的传递文件方式有:

  • 通过SAMBA共享;
  • 通过sftp传递;
  • 通过串口XModem协议传递;

经测试他们的对比如下:

传递方式速度可靠性易用性
SAMBA安全性一般,传输稳定需要一定的配置工作
sftp中等经过加密,安全可靠非常易用(windows下)
串口XModem安全,传输非常不稳定难以使用

下面是它们传输文件的过程:

(1)SAMBA
前面已经做了示范,这里就不再重复了。

(2)sftp
windows下直接使用FileZilla进行传输,打开FileZilla,输入树莓派的IP地址和密码:
这里写图片描述

连接后即可看到里面的文件架构,传输一个文件进去:
这里写图片描述

(3)串口XModem
首先我们需要禁止树莓派本身的串口命令行界面,让它先把这个控制台释放开,让系统不占用串口。使用命令sudo vi /etc/inittab打开并注释掉这一行:

#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

然后sudo reboot重启。随即开机后立即安装串口工具minicom。使用指令sudo apt-get install minicom,然后用指令minicom -D /dev/ttyAMA0打开minicom。先按Ctrl+A,再按Z,调出命令介绍界面。

这里写图片描述

接收文件是R,按提示按R。此时会让你选接收文件的协议

我们选择xmodem,然后会提示让你输入文件名。输入我们要传输的文件名,然后此时我们可以看到minicom已经在串口不断地尝试去接收文件了。

这里写图片描述

在PC端,我们在windows使用超级终端去发送文件:

这里写图片描述

选择文件发送即可(经测试实际上根本无法发送成功=。=)。

另,在SSH终端下也是可以直接传输文件的,通过scp命令即可:

  • 从服务器上下载文件
    scp username@servername:/path/filename /var/www/local_dir(本地目录)

    例如scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)

  • 上传本地文件到服务器
    scp /path/filename username@servername:/path

经实践,个人认为除了串口其他都是可以参照传输文件的方法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值