내 Linux 시스템에는 USB 포트가 있지만 RS-232 포트는 없습니다. USB 케이블을 Linux 시스템에 연결하고 USB 케이블의 다른 쪽 끝을 Windows 11을 실행하고 PuTTY가 있는 내 PC에 연결할 수 있기를 원합니다.
한쪽 끝에는 FTDI USB 케이블이 있고 다른 쪽 끝에는 간단한 USB 커넥터만 있으면 필요한 케이블을 만들 수 있습니다. RS0-232 커넥터 대신 USB 커넥터를 사용했고, FTDI TX <> RX USB 커넥터, FTDI RX <> TX USB 커넥터, 물론 공통 GND도 사용했습니다. FTDI 칩이 처리할 수 있는 내용에 따라 3.3v 또는 5v 신호 전송을 보장해야 합니다. 널 모뎀과 같은 물리적 케이블 연결에 관계없이 이것이 문제입니다. 진짜 질문은 소프트웨어 구성입니다.
특정 USB 포트에 대한 getty 세션을 설정하도록 Linux 시스템을 어떻게 구성합니까? 내가 이것을 알아낼 수 있다고 가정하면 토론을 위해 /dev/ttyUSB0입니까?
Linux 시스템은 systemd를 기반으로 하기 때문에 이해합니다. UDEV 규칙/스크립트를 사용하여 터미널 세션을 설정할 수는 없습니다. 이는 수명이 긴 하위 프로세스 또는 손자 프로세스이기 때문입니다.
나는 이 터미널 세션이 시스템 콘솔을 실제로 모방한 것이 아니라는 것을 알고 있으며 괜찮습니다. 시스템이 시작된 후에 세션을 원합니다.
이 문제를 해결하는 데 오랜 시간이 걸릴 것이라는 점을 알고 있습니다. 양해해 주셔서 감사합니다. 제가 정말로 도움이 필요한 것은 Linux 시스템의 소프트웨어 구성입니다.
답변1
내가 이해한 바로는 USB 포트에서 직렬 콘솔 포트를 생성하는 것이 목적입니다.
먼저, 이러한 케이블을 만들려면 두 개의 변환기가 필요합니다. 각 컴퓨터의 USB 포트에는 USB-UART 변환기가 장착되어야 하며 변환기는 한 RX에서 다른 TX로 연속적으로 연결되어야 합니다. 가능한 접지 루프를 제거하기 위해 접지를 서로 연결하되 갈바닉 절연(광커플러 쌍, 각 방향에 하나의 TX→RX)을 사용하는 것이 좋습니다. 마지막으로 당신은USB - USB 널 모뎀 케이블, 양쪽 끝이 컴퓨터에 연결되면 직렬 포트처럼 보이고, 양쪽 끝이 연결되면 이러한 직렬 포트는 표준 널 모뎀 케이블로 연결된 것처럼 보입니다.
다음으로 이 USB 직렬 포트에서 systemd getty 서비스를 실행해야 합니다. Linux 컴퓨터에 케이블을 계속 연결해 둘 수 있는 경우 간단히 서비스를 활성화할 수 있습니다 serial-getty@ttyUSB0
.
systemctl enable [email protected]
부팅 후 시스템 연결 및 분리를 허용하려면 USB-직렬 장치가 연결될 때 서비스가 시작되고 당겨지면 서비스가 종료되도록 systemd와 udev를 함께 실행하도록 설정해야 합니다. 밖으로.
이렇게 하려면 장치를 활성화해야 합니다.의지하다서비스에 대해. 환경 변수를 udev
사용하여 SYSTEMD_WANTS
종속성을 동적으로 추가하는 규칙을 추가합니다 .
ACTION=="add", SUBSYSTEM=="tty", KERNEL=="ttyUSB*", ENV{SYSTEMD_WANTS}+="serial-getty@%k.service"
이 규칙은 /etc/udev/rules.d/99-ttyUSB.rules
" %k
커널 장치 이름 가져오기"를 의미하는 ttyUSB0
.
udev 도구를 사용하여 어떤 udev 규칙 필터가 가장 편리한지 알아보세요. 이 필터는 매우 광범위하며 USB 직렬처럼 보이는 모든 장치를 대신하여 getty를 실행할 수 있습니다. 실제로는 두 개의 ttyUSB로 나타나는 모뎀이지만! 예를 들면 다음과 같습니다.여기자세히 알아보십시오.지침.
이제 내 Debian 시스템에서는 다음에 기록됩니다 /var/log/daemon.log
.
(plugged)
Dec 6 16:31:39 uc-s4m75657 systemd[1]: Started Serial Getty on ttyUSB0.
Dec 6 16:31:41 uc-s4m75657 ModemManager[632]: <info> [base-manager] couldn't check support for device '/sys/devices/pci0000:00/0000:00:14.0/usb2/2-7': not supported by any plugin
(unplugged)
Dec 6 16:32:27 uc-s4m75657 systemd[1]: [email protected]: Succeeded.
Dec 6 16:32:27 uc-s4m75657 systemd[1]: Stopped Serial Getty on ttyUSB0.
물론 나타나고 사라지는 데에는 /bin/login
과정이 있다.ttyUSB0
당신은 또한 볼 수 있습니다이 답변.
동기화에 허용되는 가능한 직렬 속도 세트를 제한해야 하는 경우 오버레이 파일을 사용하여 이를 수행할 수 있습니다. 실행하고 다음을 추가하세요.systemctl edit [email protected]
[Service]
ExecStart=-/sbin/agetty 115200 %I $TERM
또는 사용하려는 속도에 관계없이 USB-직렬 어댑터가 이를 지원하는지 확인하세요.