저는 여러 ttyUSB 포트(구체적으로는 16개)와 인터페이스하는 장치를 개발하는 프로젝트를 진행 중입니다.
Linux는 Windows와 다르게 ttyUSB 포트를 처리한다는 점에 유의하는 것이 중요합니다. Linux에서는 일반적으로 ttyUSB 포트에 연결된 순서대로 레이블이 지정됩니다. Windows와 달리 각 USB 장치는 항상 특정하고 변경되지 않는 COM 포트 번호를 수신합니다(예를 들어 COM7은 재연결 또는 연결 여부에 관계없이 항상 동일한 USB 장치에 해당합니다). 컴퓨터 다시 시작)).
나의 주요 목표는 장치를 재부팅한 후에도 Linux의 ttyUSB 포트 번호가 일관되게 유지되도록 하는 것입니다. 그러나 내 실험에 따르면 Linux는 USB 연결에 따라 특정 순서로 ttyUSB 포트를 할당하지 않습니다.
예를 들어, 출력을 검토할 때 dmesg | grep tty
usb 1-2는 ttyUSB0에 해당하고 usb 1-1은 ttyUSB1에서 시작되는 것을 확인할 수 있습니다. usb 1-1과 usb 1-3은 여러 직렬 포트가 있는 USB-직렬 어댑터를 나타낸다는 점을 언급할 가치가 있습니다.
Linux에서 일관된 ttyUSB 포트 번호 지정을 구현하는 방법에 대한 통찰력이나 제안 사항이 있는 경우 귀하의 의견에 매우 감사하겠습니다.
dmesg | grep tty
- [ 0.241124] printk: console [tty0] enabled
- [ 98.575723] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
- [ 107.645192] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0
- [ 107.647738] usb 1-1: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB1
- [ 107.703274] usb 1-4: FTDI USB Serial Device converter now attached to ttyUSB5
- [ 107.718566] usb 1-1: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB2
- [ 107.734340] usb 1-1: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB3
- [ 107.736637] usb 1-1: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB4
- [ 107.778240] usb 1-3: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB6
- [ 107.831044] usb 1-3: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB7
- [ 107.832354] usb 1-3: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB8
- [ 107.850976] usb 1-3: Moschip 7840/7820 USB Serial Driver converter now attached to ttyUSB9
답변1
udev 규칙을 만드는 것 같은데... 시리얼 번호로 USB를 지정할 수 없어서 아직 구현하지 못했습니다...
이것은 훌륭한 튜토리얼입니다.
https://www.youtube.com/watch?v=BOxWrMNXKpU
편집: 연결된 포트에서 식별할 수 있었습니다.
KERNEL=="ttyUSB*", KERNELS=="1-4.1", MODE:="0666", SYMLINK+="aUSB1"