最近工作上需要在嵌入式linux上进行部署web服务,需要在嵌入式环境上直接修改一些代码或者文件,以前用vi慢慢修改,发现效率太低,还是习惯windows上可视化开发。
所以想到的思路是这样的:
首选准备一台linux服务器,这里选用ubuntu16.04,ubuntu上安装nfs,指定一个文件夹,然后嵌入式linux挂载这个文件夹。其次,在ubuntu上把这个文件夹用samba共享,此时在windows上添加修改删除共享文件,相应的ubuntu和嵌入式linux都会跟着变化。
说下步骤:
1.在ubuntu上安装nfs
sudo apt-get install nfs-kernel-server nfs-common
按照提示操作。
2.开启portmap服务
sudo service portmap start
3.设置需要共享的文件文件夹\\10.1.56.100
sudo gedit /etc/exports
在这个文件夹中添加一行,这一行的意思就是把/home/nfs这个文件夹共享,能让局域网中的其它设备挂载上。
/home/nfs *(rw,sync,no_root_squash)
/home/nfs意思是需要共享的文件夹,自己根据情况随便指定。
*代表所有的IP地址,就是局域网里面所有IP都可以挂载这个文件夹
括号中的以逗号分割的参数,每个都有其含义,下面列一下:
rw:可读写的权限;
ro:只读的权限;
no_root_squash:登入到NFS主机的用户如果是root,该用户即拥有root权限;
root_squash:登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者nobody;
all_squash:不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者nobody。
anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。
anongid:同anonuid,但是变成group ID就是了!
sync:资料同步写入存储器中。
async:资料会先暂时存放在内存中,不会直接写入硬盘。
insecure:允许从这台机器过来的非授权访问。
4.让exports文件生效
sudo exportfs -arv
到这里,ubuntu nfs建立完毕,这是需要到嵌入式linux上挂在这个文件夹试试
5.客户端挂载nfs文件夹
mount -t nfs 10.1.56.100:/home/nfs /root/nfs/
解释一下, -t nfs指定挂在协议是nfs 10.1.56.100是我那台ubuntu的ip地址 /home/nfs就是我要挂载的文件夹 /root/nfs 就是我要挂载的目的地
到目前为止,ubuntu与嵌入式linux就连通成功了,当你在ubuntu上往/home/nfs中添加一个文件,相应的,嵌入式linux中的/root/nfs中也会看到。
6.做一个事前准备,给nfs文件夹改权限
sudo chmod 777 /home/nfs -R 这条命令生效后,nfs文件夹就是任何人都能修改了
7.在ubuntu上安装samba
目的是跟windows产生关系,这里我们采用一种纯靠鼠标点的方式实现samba共享。
打开ubuntu,通过文件夹浏览器找到/home/nfs这个文件夹,然后鼠标移到nfs文件夹上,右击鼠标,选择“本地网络共享”,这时蹦出来一个对话框,勾选“共享此目录”“允许其他人来创建和删除这个文件夹里的文件”“允许匿名登陆” 然后点击“修改共享” 然后会蹦出来输入密码框,授权。这时候,该文件夹samba就被建立好了。就是这么简单。
8.到windows上登陆这个共享文件夹
在windows运行中或者文件管理器中,输入\\10.1.56.100这里还是我ubuntu的IP,这时候,被samba共享的nfs文件夹就出现在眼前,自己可以随便像操作本地文件一样的操作共享文件夹了,最终结果就是嵌入式linux上也会跟着修改,我们的目的达成。