本文将介绍与演示如何在Xillinux 系统上搭建 CIFS服务(samba),并实现与Windows之间的文件共享
上一节介绍了,Xillinux 使用CIFS 挂载 Windows共享文件夹,其实除了这种方式外,CIFS 还可以让Windows 客户端访问 Xillinux的共享文件夹,本节将对这种方式进行演示
本操作存在网络安全隐患,请一定要看本文最后的注意事项
以下是简单的演示操作
一、在Xillinux 端安装和部署Samba
将安装有xillinux 系统的主板通电(将主板通过网线接入网络,需要和windows电脑在同一网络环境下),并用putty调试工具查看串口命令行(波特率115200)
先用ifconfig 命令查看Xillinux 系统的当前 IP ,后面将会用到 本文的IP 是 192.168.1.113
1)在命令行中输入下列命令 安装samba服务,并在提示是否继续的时候按下键盘下的”Y”和回车(需要等待数分钟)
apt install samba
2)对Samba 配置文件进行修改
2.1)用vi 来对/etc/smb.conf进行编辑
vi /etc/samba/smb.conf
2.2 )通过键盘上下键将光标移动到文本的末尾,并按下键盘上的 INSERT 按键 或者键盘上的 ” i ” 按键 对内容进行添加,加入下列内容
(配置内容是对整个文件系统的根目录进行共享 如果需要修改成其他的目录 请修改path = 后面的内容)
[root] comment = root at Xillinux path = / guest ok = yes force user = root force group = root read only = no browsable = yes oplocks = False level2 oplocks = False
2.3 ) 按下键盘上的 ESC 键,并按下 “:wq!” 对修改进行保存并退出
3) 重启 Samba 服务
systemctl restart smbd
二、在Windows 上访问 Xillinux 共享的目录
方式一、 直接在我的电脑或者资源管理器的地方输入 \\IP 地址,并按下回车
\\IP ADDRESS 例 本文的设备地址是 192.168.1.113 \\192.168.1.113
之后我们可以看到 我们已经进入板子的根目录了,root文件夹就是我们的根目录(这里的root只是根目录的意思,并不是我们文件系统中的\root文件夹, 文件系统中的\root文件 实际在这里应该是\\192.168.1.113\root\root),并且我们可以像访问本地磁盘资源一样 对目录进行操作和修改了
方式二、 通过映射网络驱动器的方式 将Xillinux 的共享目录映射到本地硬盘
1 ) 在我的电脑中 点选左上角的映射网络驱动器
2) 在弹出的对话框中添加 \\IP ADDRESS\共享的目录名 并按下完成按钮
\\IP ADDRESS\root 例 本文的设备地址是 192.168.1.113 备注 这里的\root不是真的\root文件夹,而是代表根目录的意思 ,即使我的共享文件夹是\ABC\ 那这里依旧是 192.168.1.113\root \\192.168.1.113\root
3)之后在我的电脑里就可以看到新添加映射的网络磁盘 (root)
双击可以打开 root 文件夹,之后就可以像访问本地磁盘那样对目录进行操作了
三、通过CIFS 共享我们可以做什么
这里只是举个例子,还记得之前章节中,当我们修改了vivado 编译出新的bitstream,当我们需要更替新的bitstream文件时,我们需要将TF卡拔出,并在电脑上完成复制和替换。而经过本章节的设置,这种方式将变得更佳简单,这里只是简单演示:
1) 将TF卡第一分区中 通过mount 方式挂载到/mnt/card/文件夹 (该文件夹事先已经存在,不需要通过mkdir进行创建)
mount /dev/mmcblk0p1 /mnt/card/
2) 在windows 下访问 \root\mnt\card 就能看到我们 TF镜像第一分区中的内容,之后直接对bit 文件进行操作替换即可(备注因为TF镜像第一分区容量有限,所以这里可能需要先将原先的bit文件删除,才能放上新的bitstream 文件)
备注,这里每次重启后都需要对TF卡进行重新mount , 你也可以参考下一章节内容Xillinux 章节十三 在Xillinux 系统中自动挂载(mount) TF卡分区 来实现TF卡的开机自动挂载
注意事项:(重要)
值得注意的是,上文中对系统根目录进行共享了,这种方式可以大大方便我们对系统的调试与修改,但是同样会带来很大的安全隐患,因为整个共享过程不需要任何密钥以及任何权限,任何具有网络访问权限的人都可以随意修改uImage 即linux kernel,也可以任意删除添加里面的内容。所以当你使用此种方式来共享目录,你必须要知道这其中的风险。
1. 请在安全受保护的网络环境中使用这种方式调试。 2. 当你使用此种方式对产品进行开发调试的话,如果忘记对共享方式进行关闭,最终消费者得到的产品会存在一个巨大的安全缺陷。切记。
一种折中的方式就是,将共享的目录局限在某一个文件夹或者目录之下,例如我们将共享 文件夹修改成 /mnt/card ,这样就可以只将隐患局限在 /mnt/card,但是隐患只是缩小了,并没有消除 /mnt/card文件夹下的文件依旧可以被他人修改。
[card] path = /mnt/card guest ok = yes force user = root force group = root read only = no browsable = yes oplocks = False level2 oplocks = False