树莓派设备端口号绑定
1、查看USB设备信息
使用lsusb
bruce@bruce - desktop: ~ $
bruce@bruce - desktop: ~ $ lsusb
Bus 001 Device 006 : ID 067 b: 2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 004 : ID 0513 : 0318 digital- X, Inc.
Bus 001 Device 007 : ID 067 b: 2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 005 : ID 1 a86: 7523 QinHeng Electronics HL- 340 USB- Serial adapter
Bus 001 Device 008 : ID 0424 : 7800 Standard Microsystems Corp.
Bus 001 Device 003 : ID 0424 : 2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002 : ID 0424 : 2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001 : ID 1d 6 b: 0002 Linux Foundation 2.0 root hub
bruce@bruce - desktop: ~ $
会看到这三个我插入的USB设备,PL2302设备的 ID 是相同的,340 设备又是 另一个 ID。
Bus 001 Device 006 : ID 067 b: 2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 007 : ID 067 b: 2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 005 : ID 1 a86: 7523 QinHeng Electronics HL- 340 USB- Serial adapter
2、无论是ID相同的设备,还是ID不同的设备,都在下面这个文件中进行配置
打开文件:
sudo nano / etc/ udev/ rules. d/ 99 - com. rules
3、固定 相同ID设备的 端口号
3.1 查询具体信息
ls - l / sys/ class / tty
通过热插拔,来确定那个设备 对应哪个 USB端口
lrwxrwxrwx 1 root root 0 8 月 18 08 : 52 ttyUSB0 - > . . /. . /devices/ platform/ soc/ 3f 980000. usb/ usb1/ 1 - 1 / 1 - 1.1 / 1 - 1.1 .2 / 1 - 1.1 .2 : 1.0 / ttyUSB0/ tty/ ttyUSB0
lrwxrwxrwx 1 root root 0 8 月 18 08 : 52 ttyUSB1 - > . . /. . /devices/ platform/ soc/ 3f 980000. usb/ usb1/ 1 - 1 / 1 - 1.3 / 1 - 1.3 : 1.0 / ttyUSB1/ tty/ ttyUSB1
bruce@bruce - desktop: ~ $
3.2 将下面设置,写到 / etc/ udev/ rules. d/ 99 - com. rules 文件中
KERNEL== "ttyUSB*" , KERNELS== "1-1.1" , MODE: = "0777" , SYMLINK+= "serial_one"
KERNEL== "ttyUSB*" , KERNELS== "1-1.3" , MODE: = "0777" , SYMLINK+= "serial_zero"
3.3 然后可以通过命令查看是否配置完成:ls - l / dev/ serial*
其中 serial 是自己定义的。
bruce@bruce - desktop: ~ $
bruce@bruce - desktop: ~ $ ls - l / dev/ serial*
lrwxrwxrwx 1 root root 7 1 月 28 2018 / dev/ serial_one - > ttyUSB0
lrwxrwxrwx 1 root root 7 1 月 28 2018 / dev/ serial_zero - > ttyUSB1
4、固定不同ID设备的端口号(其实,ID无论同与不同,都可以用下面这个方法)
4.1 首先通过 热插拔 确定是哪个 USB*
然后通过命令:udevadm info / dev/ ttyUSB2
找到这个地址:E: ID_PATH= platform- 3f 980000. usb- usb- 0 : 1.1 .3 : 1.0
bruce@bruce - desktop: ~ $
bruce@bruce - desktop: ~ $
bruce@bruce - desktop: ~ $ udevadm info / dev/ ttyUSB2
P: / devices/ platform/ soc/ 3f 980000. usb/ usb1/ 1 - 1 / 1 - 1.1 / 1 - 1.1 .3 / 1 - 1.1 .3 : 1.0 / ttyUSB2/ tty/ ttyUSB2
N: ttyUSB2
S: serial/ by- id/ usb- Prolific_Technology_Inc. _USB- Serial_Controller- if00- port0
S: serial/ by- path/ platform- 3f 980000. usb- usb- 0 : 1.1 .3 : 1.0 - port0
S: serial_one
E: DEVLINKS= / dev/ serial/ by- id/ usb- Prolific_Technology_Inc. _USB- Serial_Controller- if00- port0 / dev/ serial_one / dev/ serial/ by- path/ platform- 3f 980000. usb- usb- 0 : 1.1 .3 : 1.0 - port0
E: DEVNAME= / dev/ ttyUSB2
E: DEVPATH= / devices/ platform/ soc/ 3f 980000. usb/ usb1/ 1 - 1 / 1 - 1.1 / 1 - 1.1 .3 / 1 - 1.1 .3 : 1.0 / ttyUSB2/ tty/ ttyUSB2
E: ID_BUS= usb
E: ID_MM_CANDIDATE= 1
E: ID_MODEL= USB- Serial_Controller
E: ID_MODEL_ENC= USB- Serial\x20Controller
E: ID_MODEL_FROM_DATABASE= PL2303 Serial Port
E: ID_MODEL_ID= 2303
E: ID_PATH= platform- 3f 980000. usb- usb- 0 : 1.1 .3 : 1.0
E: ID_PATH_TAG= platform- 3f 980000 _usb- usb- 0 _1_1_3_1_0
E: ID_REVISION= 0300
E: ID_SERIAL= Prolific_Technology_Inc. _USB- Serial_Controller
E: ID_TYPE= generic
E: ID_USB_DRIVER= pl2303
E: ID_USB_INTERFACES= : ff0000:
E: ID_USB_INTERFACE_NUM= 00
E: ID_VENDOR= Prolific_Technology_Inc.
E: ID_VENDOR_ENC= Prolific\x20Technology\x20Inc.
E: ID_VENDOR_FROM_DATABASE= Prolific Technology, Inc.
E: ID_VENDOR_ID= 067 b
E: MAJOR= 188
E: MINOR= 2
E: SUBSYSTEM= tty
E: TAGS= : systemd:
E: USEC_INITIALIZED= 13043364
E: net. ifnames= 0
bruce@bruce - desktop: ~ $
4.2 根据:E: ID_PATH= platform- 3f 980000. usb- usb- 0 : 1.1 .2 : 1.0
在 / etc/ udev/ rules. d/ 99 - com. rules 文件中写入:
SUBSYSTEM== "tty" , ENV{ ID_PATH} == "platform-3f980000.usb-usb-0:1.1.2:1.0" , MODE: = "0777" , SYMLINK+= "serial_two"
4.3 然后可以通过命令查看是否配置完成:ls - l / dev/ serial*
其中 serial 是自己定义的。
bruce@bruce - desktop: ~ $
bruce@bruce - desktop: ~ $ ls - l / dev/ serial*
lrwxrwxrwx 1 root root 7 1 月 28 2018 / dev/ serial_two - > ttyUSB2
5、总结:
使用到的命令:
1 、lsusb
2 、sudo nano / etc/ udev/ rules. d/ 99 - com. rules
3 、ls - l / sys/ class / tty
4 、udevadm info / dev/ ttyUSB0
5 、ls - l / dev/ serial*