您的位置:首页 > 编程语言 > ASP

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

2016-03-29 20:10 309 查看
从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


经实践,个人认为除了串口其他都是可以参照传输文件的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息