공유 직렬 장치

공유 직렬 장치

저는 Ubuntu를 실행 중이고 공유 직렬 장치() 또는 이와 유사한 장치를 사용해야 합니다 /dev/ttyUSB0.socat

내 그래프는 다음과 같습니다.

                              /--</dev/ttyUSB01>--[Process A]
[serial device]-/dev/ttyUSB0--
                              \--</dev/ttyUSB02>--[Process B]

프로세스 A와 B 모두 읽고 써야 하며 동시성에는 문제가 없습니다.

/dev/ttyUSB01및 와 같은 두 개의 "가상" 장치를 만드는 방법은 무엇입니까 /dev/ttyUSB02?

답변1

다음과StackExchange 제안, 두 프로세스 모두에 동일한 장치 이름을 사용해 보셨나요?

또는 프로세스가 가상의 "다른" 직렬 포트에 액세스할 수 있도록 두 개의 의사 장치를 만들어야 하는 특별한 필요성이 있습니까? 그렇다면 3gModem을 사용하여 이 udev 심볼릭 링크 트릭을 수행하지만 다른 장치에도 적용할 수 있습니다. 기억하세요. 그들은 여전히 ​​동일한 장치에 연결되어 있습니다. dmesg내가 찾은 모뎀을 사용하는 방법 은 다음과 같습니다 /dev/ttyUSB0.

[  224.777566] usbcore: registered new interface driver option
[  224.778326] usbserial: USB Serial support registered for GSM modem (1-port)
[  224.779065] option 1-1:1.0: GSM modem (1-port) converter detected
[  224.780923] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0

전체 장치 경로(잘못된 이름)를 확인합니다.

[root@localhost ~]# udevadm info -q path -n /dev/ttyUSB0
/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1:1.0/ttyUSB0/tty/ttyUSB0

전체 장치 경로를 통해 모든 정보를 얻으세요. 화면에는 긴 정보 목록이 표시되므로 관련 정보만 붙여넣겠습니다.

[root@localhost ~]# udevadm info -a -p /devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1:1.0/ttyUSB0/tty/ttyUSB0

  looking at device '/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1:1.0/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="option1"
    ATTRS{port_number}=="0"

이제 이전 명령에서 추출한 정보를 사용하여 Udev에 2개의 별칭을 만듭니다. 50-modem.rules이라는 파일을 만들겠습니다 /etc/udev/rules.d. ".rules"로 끝나는 한 원하는 이름을 지정할 수 있지만 시작 번호는 50으로 시작하는 것이 좋습니다.

SUBSYSTEMS=="usb-serial",DRIVERS=="option1",ATTRS{port_number}=="0",SYMLINK+="3gmodem0"
SUBSYSTEMS=="usb-serial",DRIVERS=="option1",ATTRS{port_number}=="0",SYMLINK+="3gmodem1"

udev 규칙을 트리거하면 됩니다.

[root@localhost rules.d]# udevadm trigger 
[root@localhost rules.d]# ls -l /dev/3g*
lrwxrwxrwx. 1 root root 7 Mar 25 19:55 /dev/3gmodem0 -> ttyUSB1
lrwxrwxrwx. 1 root root 7 Mar 25 19:55 /dev/3gmodem1 -> ttyUSB1

관련 정보