zl程序教程

您现在的位置是:首页 >  其他

当前栏目

如何在linux中设置,使得/dev/ttyUSB*他产生的时候就拥有可执行权限?

2023-04-18 14:26:41 时间

可以通过udev规则来实现这个功能。具体步骤如下:

  • 打开终端,输入以下命令创建udev规则文件:
sudo gedit /etc/udev/rules.d/99-usb-permissions.rules
  • 在打开的文件中添加以下内容:
SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", MODE="0666"

其中,xxxx和yyyy分别代表你的USB设备的Vendor ID和Product ID。你可以通过运行lsusb命令来查看这些信息。

  • 保存文件并退出编辑器。

  • 重新加载udev规则:

sudo udevadm control --reload-rules

现在,当你插入USB设备时,它应该会自动拥有可执行权限了。

举个例子说明一下

好的,假设你插入了一个名为"Arduino Uno"的USB设备,它的Vendor ID是"2341",Product ID是"0043"。你可以按照上面的步骤创建udev规则文件,并将以下内容添加到文件中:

SUBSYSTEM=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", MODE="0666"

保存文件并退出编辑器,然后重新加载udev规则:

sudo udevadm control --reload-rules

现在,当你插入Arduino Uno设备时,它应该会自动拥有可执行权限了。

如何指定某个usb插口对应到/dev/ttyUSB的序号

通过udev规则来指定USB设备对应的/dev/ttyUSB序号。具体步骤如下:

1,打开终端,输入以下命令创建udev规则文件:

sudo nano /etc/udev/rules.d/99-usb-serial.rules

2,在打开的文件中添加以下内容:

SUBSYSTEM=="tty", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", SYMLINK+="ttyUSBx"

其中,xxxx和yyyy分别代表你的USB设备的Vendor ID和Product ID。x代表你想要指定的/dev/ttyUSB序号,可以根据你的需要进行更改。

  1. 保存文件并退出编辑器。

  2. 重新加载udev规则:

sudo udevadm control --reload-rules

现在,当你插入符合规则的USB设备时,它应该会自动创建一个符号链接到指定的/dev/ttyUSB序号。例如,如果你将x设置为0,则设备将被映射到/dev/ttyUSB0。

lsusb命令使用后,打印的内容中,哪个是USB设备的Vendor ID和Product ID?

在lsusb命令的输出中,USB设备的Vendor ID和Product ID通常显示在以下格式的字段中:

Bus <bus_number> Device <device_number>: ID <vendor_id>:<product_id> <device_description>

其中,<vendor_id><product_id>分别代表USB设备的Vendor ID和Product ID,以16进制表示。

例如,假设你的USB设备是一款名为"Arduino Uno"的开发板,它的Vendor ID是"2341",Product ID是"0043",那么在lsusb命令的输出中,你应该能够看到类似以下的内容:

Bus 001 Device 005: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)

其中,"2341"就是设备的Vendor ID,"0043"就是设备的Product ID。