偶然间,采用tx2进行can的配置中,每次开机启动中都需要将canbus模块进行配置安装。但是在进行配置过程中出现一个问题,即需要sudo权限才能进行can驱动的挂载。按照csdn上教程,设置了启动,但是reboot后未挂载。经分析后是权限问题,导致挂载失败。
具体如何挂载可以参考他的文章:链接: link.
在第一步中进行更改,采用sudo进行can模块的挂载
#!/bin/sh
#命令
sudo modprobe can
sudo modprobe can-raw
sudo modprobe can-bcm
sudo modprobe can-gw
sudo modprobe can_dev
sudo modprobe mttcan
exit 0
挂载中含有sudo命令,则需要密码,那么,我们我们采用一些方法来绕过输入密码过程。
可以参考这篇文章的操作过程:链接: https://linux.cn/article-10641-1.html.
基于某些原因,假如你想允许一个用户运行特定命令而无需提供 sudo 密码,则你需要在 sudoers 文件中添加上这个命令。
假如我想让名为 nvidia 的用户去执行 modprobe 而无需提供 sudo 密码
首先我们需要得到 modprobe 命令的位置
which modprobe
得到相应位置
使用下面的命令来编辑 sudoers 文件:
sudo visudo
将下面的命令添加到这个文件的最后:
nvidia ALL=NOPASSWD:/sbin/modprobe
其中 sk 是用户名。根据上面一行的内容,用户 sk 可以从任意终端执行 mkdir 命令而不必输入 sudo 密码。
你可以用逗号分隔的值来添加额外的命令(例如 chmod),正如下面展示的那样。
nvidia ALL=NOPASSWD:/sbin/modprobe,/bin/chmod