(保姆级)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

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

### PyCharm 打开文件显示不全的解决方案 当遇到PyCharm打开文件显示不全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure里的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值