Ubuntu의 COM(직렬 포트) 복제/분할

Ubuntu의 COM(직렬 포트) 복제/분할

내 직렬 포트에는 모든 것이 정상입니다. FTDI 변환기를 컴퓨터에 연결하고 COM 포트를 설정했습니다...
ln -s /dev/ttyUSB0 ~/wine/dosdevices/COM1

하지만 이제 이 포트를 "복제"하고 싶습니다.

u-center GPS 시각화 도구를 실행하기 위해 와인을 사용하고 있고 Ubuntu를 실행하는 Linux 컴퓨터가 있습니다.
누구든지 도와줄 수 있나요?

답변1

이전 답변에서는 공유할 수 없다고 했지만 그 부분이 잘못되었습니다.

Linux TTY 포트는 다른 응용 프로그램으로 열 수 있지만(잠금을 사용하지 않거나 확인하지 않는 경우) 버퍼가 하나뿐이므로 데이터를 처음 읽는 응용 프로그램에서 소비하므로 데이터를 사용할 수 없습니다. 두 프로세스 모두. 어떤 경우에는 이것이 괜찮고 어떤 경우에는 그렇지 않습니다. 그러나 일반적으로 사람들은 이것을 원하지 않습니다.

TTY는 사용자 공간에서 생성될 수 있으므로 누구나 사용자 공간 애플리케이션을 생성하여 2개의 가상/가짜 직렬 포트를 생성하고 이를 하나의 물리적 직렬 포트에 연결하는 것을 막을 수 없습니다.

터미널 버스수행 방법은 다음과 같습니다(readme에 있음).

Use case 1: Multiplexing serial input only or output only device attached to /dev/ttyS0, for use with multiple applications.
- step 1: create a new tty bus called /tmp/ttyS0mux:

    tty_bus -s /tmp/ttyS0mux &
    sleep 1


- step 2: connect the real device to the bus using tty_attach:

    tty_attach -s /tmp/ttyS0mux /dev/ttyS0 &
    sleep 1

- step 3: create 2 fake ttyS0 devices, attached to the bus:

    tty_fake -s /tmp/ttyS0mux /dev/ttyS0fake0 &
    tty_fake -s /tmp/ttyS0mux /dev/ttyS0fake1 &
    sleep 1

- step 4: start your application and force it to use the new serial device for input or output

    /bin/foo /dev/ttyS0fake0 &
    /bin/bar /dev/ttyS0fake1 &

&참고: 바이너리가 차단 중이고 바이너리가 서로 간섭하는 것을 방지하기 위해 약간의 절전 모드가 필요했기 때문에 kill 명령을 통해 모든 tty_* 바이너리를 백그라운드로 포크해야 했습니다 .

행운을 빌어요!

답변2

직렬 포트 통신은 항상 두 장치 간에 이루어집니다.공유할 수 없습니다. 한 번에 하나의 애플리케이션만 장치를 수용할 수 있습니다. 그러나 통신을 스누핑하는 것은 가능합니다(예: 데이터 전송 모니터링).

관련 정보