itas109 / CSerialPort

CSerialPort - lightweight cross-platform serial port library for C++/C/C#/Java/Python/Node.js/Electron
https://blog.csdn.net/itas109/article/details/84282860
Other
730 stars 339 forks source link

有没有可能在Linux使用时无需修改设备文件的权限 #90

Closed shekmun closed 2 months ago

shekmun commented 2 months ago

我的一个串口设备在Linux系统上挂载为/dev/ttyACM0(crw-rw----),用户和组是root:dialout,因为源码中使用的是标准C的open函数打开这个文件然后进行操作的,所以每次拔插设备都需要root修改文件读写权限或者所属用户和组才能打开

但是测试过一些其他串口软件比如cutecom,或者自己用Qt(Qt6SerialPort)开发的程序,都可以直接打开

不清楚其他库和软件打开文件的逻辑,想了解这个库有没有可能实现类似的效果

itas109 commented 2 months ago

配置用户组和udev规则的方式,只需要配置一次即可,后续打开不需要每次配置权限的。

  1. 添加用户到dialout组 将用户添加到dialout组,可以直接访问设备文件。

    sudo usermod -a -G dialout <your-username>

    重启系统

  2. udev规则 使用udev规则自动设置设备文件的权限。 创建一个新的udev规则文件/etc/udev/rules.d/99-usb-serial.rules

    KERNEL=="ttyACM[0-9]*", MODE="0666"

    重启系统

shekmun commented 2 months ago

好的,谢谢,只是奇怪Qt的serial库可以直接访问