我们都知道在与从机进行通信的时候,可以采用SSH进行通信,但是,运行的环境却是从机的配置。比如,我们的从机是树莓派这种小型的嵌入式设备,在安装ROS的时候并不能像笔记本那样高性能的设备安装全部配置,如一些gazebo、rviz仿真就不太支持!因此将树莓派的文件挂载到我们笔记本上,不仅采用主机的性能,而且编写的代码可以同步到树莓派的文件中,这就是我接下来要介绍的NFS文件系统!
目录
一、安装SSH
1、安装openssh-server
sudo apt-get install openssh-server
2、检查ssh服务是否开启
sudo ps -e | grep ssh
3、启动ssh服务
sudo service ssh start
二、配置NFS
1、配置服务端(树莓派)
①安装NFS
sudo apt-get install nfs-kernel-server
②编写配置文件
(注:没安装vim的话记得sudo apt install vim 即可哦!)
sudo vim /etc/exports
配置内容:
/home/qsx/robot_ws *(rw,sync,no_root_squash,no_subtree_check)
前面是你要挂载的文件夹路径,后面你就跟着一样就行!*号表示可以任何IP访问该文件夹
③修改挂载目录的权限
(注:“-R”表示包含该文件夹及其子文件夹)
sudo chmod -R 777 /home/qsx/robot_ws
④启动NFS
sudo /etc/init.d/nfs-kernel-server start
⑤挂载NFS
(注:192.168.31.23是树莓派的IP地址,后面是挂载的文件夹路径,/mnt 的挂载的路径名,可以写成别的!)
sudo mount -t nfs -o nolock 192.168.31.23:/home/qsx/robot_ws /mnt
(注意:如果出现mount.nfs: access denied by server while mounting 解决办法如下:)
重新打开/etc/exports,加入insecure选项,并重启nfs服务
/home/qsx/robot_ws *(insecure,rw,sync,no_root_squash,no_subtree_check)
然后在重启:
sudo service rpcbind restart
sudo service nfs-kernel-server restart
⑥查看是否挂载成功
df -h
(我们可以看到最后一行已经成功挂载!)
也可以通过cd进入
(注:每次重启树莓派记得重新挂载文件哦!)
2、配置客户端(笔记本主机)
1、安装NFS客户端
sudo apt-get install nfs-common
2、挂载服务端的文件到本地主机
sudo mount -t nfs 192.168.31.23:/home/qsx/robot_ws /mnt
3、查看是否挂载成功
df -h
也同样可以通过cd进入该路径
cd /mnt
这样就大功告成啦!
————————————————————————————————————————
每次开机需要:
1、远程连接树莓派
sudo ssh qsx@192.168.31.23
输入密码
2、重启树莓派的nfs服务
sudo /etc/init.d/nfs-kernel-server restart
3、主机(笔记本)重新挂载nfs
sudo mount -t nfs 192.168.31.23:/home/qsx/robot_ws /mnt
设置开机自启动:
1、制作脚本
sudo vim startup.sh
2、在startup.sh中加入(ip地址为树莓派的ip地址,后面的路径是nfs共享的文件夹路径)
#! /bin/sh
sudo mount -t nfs 192.168.0.100:/home/robotcar/robotcar_ws /mnt
3、给脚本添加权限
sudo chmod 777 startup.sh
4、将脚本添加到rc.local文件中(一开始可能没有存在需要创建一个新的)
sudo vim /etc/rc.local
#! /bin/bash
/home/robotcar/robotcar_ws
5、给rc.local赋予权限
sudo chmod 777 /etc/rc.local
重启即可!