基本都是摘抄正点原子的文章:<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf,因初次学习,仅作学习摘录之用,有不懂之处后续会继续更新~
FTP:File Transfer Protocol,文件传输协议
TFTP:Trivial File Transfer Protocol,简单文件传输协议
trivial
英/ˈtrɪviəl/
adj:琐碎的,不重要的;容易解决的,不费吹灰之力的;浅薄的;(数学)平凡的
一、Ubuntu 和 Windows 文件互传
1.1、开启 Ubuntu 下的 FTP 服务
打开 Ubuntu 的终端窗口,然后执行如下命令来安装 FTP 服务:
sudo apt-get install vsftpd
等待软件自动安装。
安装完成以后使用如下 VI 命令打开/etc/vsftpd.conf,命令如下:
sudo vi /etc/vsftpd.conf
打开以后 vsftpd.conf 文件找到如下两行:
local_enable=YES
write_enable=YES
确保上面两行前面没有“#”,有的话就取消掉,完成以后如下图所示:
修改完 vsftpd.conf 以后保存退出,使用如下命令重启 FTP 服务:
sudo /etc/init.d/vsftpd restart
1.2、Windows下FTP客户端安装
Windows 下 FTP 客户端正点原子建议使用 FileZilla,这是个免费的 FTP 客户端软件,可以在 FileZilla官网下载:下载 - FileZilla中文网
双击安装后,打开如下图:
由上图可知,只有左边的windows目录,右边为空。
1.3、FileZilla 软件设置
Ubuntu作为FTP服务器,FileZilla 作为FTP客户端,客户端肯定要连接到服务器上,打开站点管理器,点击:文件->站点管理器,打开以后如下图所示:
点击MySites后,新建站点,并设置站点名称、服务器IP地址、服务器上的用户名与密码等,如下图:
上图中主机 ip 地址可以在 Ubuntu 系统中的设置界面查询,如下图所示:
按照上图中设置好以后,点击“连接”按钮,第一次连接可能会弹出“不安全的 FTP 连接”,点击确定即可。
连接成功以后如下图所示,其中左边就是 Windows 文件目录,右边是 Ubuntu 文件目录(默认进入用户根目录下:比如我电脑的“/home/gbxluo”)。
观察发现上图中Ubuntu 文件目录下的中文目录都是乱码的,这是因为编码方式没有选对,先断开连接【点击:服务器(S)->断开连接或直接点击取消连接】,然后打开站点管理器,选中要设置的站点“Ubuntu”,选择“字符集”,如下两图所示:
最后点击Connect后,效果如下图所示:
- 要将 Windows 下的文件或文件夹拷贝到 Ubuntu 中,只需要在上图中左侧的 Windows 区域选中要拷贝的文件或者文件夹,然后直接拖到右侧的 Ubuntu 中指定的目录即可。
- 将 Ubuntu 中的文件或者文件夹拷贝到 Windows 中也是直接拖放。
二、Ubuntu 和 Windows 文件本地共享
2.1 Vmware 设置共享文件夹
注:需先完成安装 Vmware Tools。对于在 Windows上安装虚拟机软件,在虚拟机软件中运行 Ubuntu系统这类场景, Ubuntu和 Windows 文件互传可以使用本地共享的方式。这种共享的方式极大的免除了不同系统文件之间的文件复制和磁盘空间的双重占用。
首先在Vmware中启动Ubuntu系统,然后在 Vmware 的菜单栏中,选择“Settings”,如下图所示:
在弹出的菜单中,选择“Options”,在该界面中,单击“Shared Folders”,在右边界面中选择“Always enabled”,如下图所示:
可以根据自己的实际情况选择需要共享的文件夹,可随意选择文件夹。
这里选择在G盘新建了一个Ubuntu_windows_share/share文件夹,
现在单击图中的“Add(A)…”按钮,弹出下图所示界面:
默认勾选“启用此共享”,如果不想该文件夹内的内容被修改,可以勾选只读。
需要向 Ubuntu 系统传文件,就可以直接将该文件复制到 share 目录就可以了。以后需要向 Ubuntu 系统传递的文件就都放在 share 文件夹下。
2.2 Ubuntu 如何访问共享文件夹呢?
该文件夹在 Ubuntu 系统中对应的是/mnt/hgfs/share/目录,在终端中输入命令:
ll /mnt/hgfs/share/
注意:l是小写的L,不是大写的i
如下图所示:
windows中share路径下的文件:
如果需要从 Ubuntu 系统向 Windows 传递文件,可以用 cp 命令或 mv 命令文件到该目录。
三、Ubuntu 系统搭建 tftp 服务器
3.1 安装tftp-hpa和 tftpd-hpa 软件包
TFTP 作为一种简单的文件传输协议,在嵌入式开发中会经常使用到,而且后面在安装 Petalinux工具时也会提示需要 tftp 服务,所以需要在Ubuntu上搭建TFTP服务器。需要安装 tftp-hpa(客户端软件包,如果不用可不装)和 tftpd-hpa 软件包,命令如下:
sudo apt install tftp-hpa tftpd-hpa
3.2 创建/tftpboot 目录
TFTP 需要一个文件夹来存放文件,在根目录下新建一个/tftpboot 目录做为 TFTP 文件存储目录,之所以使用该目录是因为 Petalinux 工具默认使用该目录,避免每次建 Petalinux 工程的时候手动修改。
创建/tftpboot 目录命令如下:
sudo mkdir -p /tftpboot
sudo chmod 777 /tftpboot
这样就在电脑上创建了一个名为 tftpboot的目录(文件夹),路径为/tftpboot。需要注意的是要给 tftpboot 文件夹权限,否则的话后面在使用过程中会遇到问题,所以使用了chmod 777 命令。
3.3 配置 tftp
使用 chmod 666 命令将/etc/default/tftpd-hpa 文件属性改为可读可写,打开 /etc/default/tftpd-hpa 文件,参考如下命令:
sudo chmod 666 /etc/default/tftpd-hpa
vi /etc/default/tftpd-hpa
将其内容修改如下:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
TFTP_DIRECTORY 就是上面创建的/tftpboot 文件夹目录,以后就将所有需要通过 TFTP 传输的文件都放到该文件夹里面。
3.4 重启 tftp 服务器
最后输入如下命令,重启 tftp 服务器:
sudo service tftpd-hpa restart
至此,tftp 服务器就已经搭建好了。
四、Ubuntu 下 NFS 和 SSH 服务开启
4.1 NFS服务
4.1.1 安装 NFS 服务
进行 Linux 驱动开发的时候需要 NFS 启动,因此要先安装并开启 Ubuntu 中的 NFS 服 务,使用如下命令安装 NFS 服务:
sudo apt install nfs-kernel-server
等待安装完成。安装完成以后在用户根目录下创建一个名为“workspace/nfs”的文件夹,命令如下:
cd ~
mkdir -p workspace/nfs
cd workspace/nfs
pwd
以后所有需要使用 nfs 的东西都放到这个“nfs”文件夹里面。 上面创建的 nfs 文件夹供 nfs 服务器使用,以后可以在开发板上通过网络文件系统来访问 nfs 文件夹。
4.1.2 配置 nfs
NFS 允许挂载的目录及权限在文件/etc/exports 中进行定义,使用如下命令打开 nfs 配置文件/etc/exports:
sudo vi /etc/exports
打开/etc/exports 以后在后面添加如下所示内容:
/home/gbxluo/workspace/nfs *(rw,sync,no_root_squash)
参数解析如下:
- /home/sqd/workspace/nfs 是要刚才创建的 nfs 的目录,也就是上面命令 pwd 输出的内容
- *代表允许所有的网络段访问
- rw是可读写权限
- sync 是文件同步写入存储器
- no_root_squash是nfs客户端分享目录使用者的权限
如果客户端使用的是 root 用户,那么对于该共享目录而言,该客户端就具有 root 权限。
添加完成以后的/etc/exports 如下图所示:
?4.1.3 重启 NFS 服务
重启 NFS 服务,使用如下命令:
sudo systemctl start nfs-kernel-server.service
此时可以运行以下命令来显示共享的目录:
showmount -e
在 nfs 运行的过程中,修改了/etc/exports 配置文件,可以使用 exportfs 命令使改动生效, 具体命令:
sudo exportfs -rv
4.2 SSH 服务开启
开启 Ubuntu 的 SSH 服务以后用户就可以在 Windwos 下使用终端软件登陆到 Ubuntu,比如使用 MobaXterm,Ubuntu 下使用如下命令开启 SSH 服务:
sudo apt install openssh-server
上述命令安装 ssh 服务,ssh 的配置文件为/etc/ssh/sshd_config,使用默认配置即可。