之前一直用VMware虚拟机或者Docker容器进行嵌入式Linux学习,最近想试试Win10的Linux子系统WSL2。相较于虚拟机和Docker容器来说,WSL2应该还是有不少坑的,不过在最近的实践中,搭建百问网的IMX6ULL开发板编译环境算是比较顺利,u-boot和kernel都能顺利编译、运行。
驱动开发过程中,NFS功能可以算得上是利器了,但是WSL2不支持(或者是我不会弄…),所以退而求其次,直接用Win10搭建NFS server。
haneWIN是Win10下搭建NFS server的常用工具,官网是https://www.hanewin.net/imprint-e.htm
,当然,也可以搜索一些和谐版来用。
使用管理员权限运行haneWIN后,大家就能看到一个非常简朴的界面,具体的配置就不详细解释了,直接给大家截图看看我的配置:
比较关键的配置是Exports
,点击Edit export file
,按照格式配置要共享的目录:
D:\share -public -name:nfs
我现在是把D:\share
文件夹共享,权限设置为pubic
,定义了一个别名nfs
。
配置完成后,点击Restart Server
重启服务,使新的配置生效。
从PortMapper
界面中可以看出,haneWIN使用的端口如下:
因此,需要对Win10的防火墙进行配置,开放这些端口才能实现NFS挂载。(当然,更简单的办法是直接把防火墙关掉…)
TCP
->特定本地端口
,添加111,1058,2049
允许连接
域
、专用
、共用
完成
启动开发板Linux系统,执行命令挂载目录:
mount -t nfs -o nolock 192.168.100.200:/nfs /mnt
192.168.100.200是Win10系统的IP地址;
nfs是之前
Edit export file
时为目录创建的别名/mnt是指定将远程目录挂载到本地的/mnt目录下。
我手上有两个开发板,一个百问网的IMX6ULL开发板,一个是Xilinx ZYNQ 7100开发板,比较奇怪的是,IMX6ULL只有在Win10关闭防火墙的时候才能挂载上,而ZYNQ7100开发板只需要添加入栈规则就可以,这个问题以后再深究。