(保姆级)Ubuntu下的USB设备永久权限+设备起别名方法

一、Ubuntu下的USB设备权限问题解决方法

在Ubuntu中如果给一个USB设备赋予全部权限可以这么做

sudo chmod 777 /dev/ttyUSB0

但是这么做只是一次性的,拔掉再插就需要重新赋权限,下面介绍一个一劳永逸的方法

cd /etc/udev/rules.d

进入 /etc/udev/rules.d 后,ls 查看一下已有的文件,然后可以自己新建一个规则文件

sudo touch my_ttyusb.rules

或者直接

sudo gedit my_ttyusb.rules

打开并编辑,编辑内容如下,这样以后只要是ttyUSB设备,都会自动赋予777全部权限

KERNEL=="ttyUSB*", MODE:="0777", GROUP:="dialout

然后 ctrl+c 保存,ctrl+q退出
下一步将用户添加进dialout用户组

sudo usermod -a -G dialout $USER

接着使其立即生效

sudo udevadm trigger
--------------
运行下面两条命令也可以,重新加载udev,然后再重新运行
sudo service udev reload
sudo service udev restart

搞定!!!!

PS:udev规则当然也可以删除,使用 rm 命令即可,删除完在重新加载启动即可。

二、USB设备起别名方法

以我目前机载电脑连接的pixhawk6c飞控举例子
在上面新建的my_ttyusb.rules文件中写入

KERNEL=="ttyACM*", MODE:="0777", GROUP:="dialout"  
KERNELS=="1-1:1.0", SYMLINK+="Pixhawk6c"

说明:
KERNEL==“ttyACM*”, MODE:=“0777”, GROUP:=“dialout” 这行是对全部的ttyACM设备赋予777权限
KERNELS==“1-1:1.0”, SYMLINK+=“Pixhawk6c” 这个是对“1-1:1.0”设备重命名
1-1:1.0是哪里来的呢
首先插上你的设备,然后输入

ls /dev/tty*

得到你的设备是哪一个,比如我的是ttyACM7,接着输入

udevadm info --attribute-walk --name=/dev/ttyACM7

输出以下信息,回到最上面,注意第二个或第三个
“looking at” 的下面一行的"KERNEL==“xxx”
在这里插入图片描述

找到“KERNELS==1-1:1.0"(我这里是在第二个looking at就找到了,一般会在第二个和第三个里,看到这个形式的就复制下来a-b:c.d)


OK,到了这里回到你刚刚的my_ttyUSB.rules规则文件

KERNEL=="ttyACM*", MODE:="0777", GROUP:="dialout"  
KERNELS=="1-1:1.0", SYMLINK+="Pixhawk6c"

除了上面这种写法,你也可以这样写,这样写的话就是只给“1-1:1.0"这个设备赋权限并起别名,两种都可以

KERNEL=="1-1:1.0", MODE:="0777", GROUP:="dialout", SYMLINK+="Pixhawk6c"

别忘了让修改立即生效哦!!!

sudo udevadm trigger

最后输入以下命令,查看起别名结果

ls -l /dev |grep ttyACM

搞定!!!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/HuangChen666/article/details/125626570