从PC传输文件给树莓派是我们通信的重要意义,这样才能将我们需要的交叉编译好的可执行文件传送给树莓派,让它执行任务,达到我们的目的要求。这一节我们就传输的各种方式进行比较,看看哪种是我们所需要的高效的方法。
硬件
自备器材:
软件
我们开始对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文件夹)。
下面我尝试各种与树莓派传递文件的方式,并且做比较。采用的传递文件方式有:
经测试他们的对比如下:
传递方式 | 速度 | 可靠性 | 易用性 |
---|---|---|---|
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,调出命令介绍界面。
我们选择xmodem,然后会提示让你输入文件名。输入我们要传输的文件名,然后此时我们可以看到minicom已经在串口不断地尝试去接收文件了。
在PC端,我们在windows使用超级终端去发送文件:
选择文件发送即可(经测试实际上根本无法发送成功=。=)。
另,在SSH终端下也是可以直接传输文件的,通过scp命令即可:
从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)
例如scp [email protected]:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)
上传本地文件到服务器
scp /path/filename username@servername:/path
经实践,个人认为除了串口其他都是可以参照传输文件的方法。