setserial /dev/ttyS* UART 정의되지 않음

setserial /dev/ttyS* UART 정의되지 않음

저는 rs232 직렬 포트가 있는 nvidia jetson tk1 보드를 사용하고 있으며 핀 2와 핀 3을 단락시켜 루프백 테스트를 수행하려고 합니다. 직렬 통신 터미널 gtkterm을 사용하고 있는데 터미널에 쓰려고 하면 문자가 에코되지 않고 화면에도 문자가 나타나지 않습니다. 나는 우분투를 사용하고 있습니다. 명령을 사용하여 setserial -g /dev/ttyS*포트 setserial -g /dev/ttyTHS*에 대한 정보를 확인했지만 결과는 다음과 같습니다.

/dev/ttyS0, UART: undefined, Port: 0x0000, IRQ: 122
/dev/ttyS1, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS2, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS3, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyTHS0, UART: undefined, Port: 0x0000, IRQ: 68
/dev/ttyTHS1, UART: undefined, Port: 0x0000, IRQ: 69
/dev/ttyTHS2, UART: undefined, Port: 0x0000, IRQ: 78

그래서 여기에 몇 가지 질문이 있습니다.

  • 실제 포트는 무엇인지,
  • UART가 정의되지 않았다고 말하는 이유는 무엇입니까?
  • 물리적으로 전혀 매핑되지 않은 것처럼 보이는 이유는 무엇입니까?

나도 몇 가지 조사를 했는데 이 명령으로 UART를 변경할 수 있지만 sudo setserial /dev/ttyS1 uart 16550AUART 모델 유형을 모릅니다. 문서와 보드 부분을 확인했는데 UART 유형이 DB-9라는 것뿐입니다. UART 직렬 제어 타워.

답변1

IIRC Jetson TK1의 DB9는 /dev/ttyS0Linux 커널에 연결됩니다. 기본 Ubuntu 배포판에서는 이를 커널의 콘솔 장치(참고자료 참조 cat /proc/consoles)로 설정하고 여기에서 실행됩니다 getty. 애플리케이션에서 독점적으로 사용하려면 이를 중지해야 합니다 /dev/ttyS0.

중지하려면 getty실행할 수 있습니다 stop ttyS0. /dev/ttyS0커널 콘솔에서 장치를 분리하는 방법을 모르겠습니다 . console=ttyS0,...부팅 매개변수에서 장치를 제거해야 합니다. 그럼에도 불구하고 첫 번째 테스트에서는 크로스오버 케이블을 사용하여 DB9을 다른 PC에 연결하는 것이 좋습니다.

setserialTK1의 출력이 무의미하고 쓸모가 없어 걱정됩니다 . /dev/ttyS0시작할 준비가 되어 있으며 Linux termios API를 사용하여 구성할 수 있으므로 이나 stty와 같은 정교한 터미널 소프트웨어를 사용해 kermit본 적이 없지만 gtkterm작동합니다. 그러나 포트에서 getty 또는 쉘 프로세스를 제거하지 않으면 아무 것도 얻을 수 없습니다.

를 사용하려면 다음 내용이 포함된 파일을 kermit실행 apt-get install ckermit하고 생성합니다 .~/.kermrc

set modem type none
set line /dev/ttyS0
set speed 115200
set carrier-watch off
set flow none

그런 다음 kermit터미널에서 실행하십시오. connect프롬프트에 따라 직렬 포트 연결을 입력합니다 . 세션에 Ctrl+를 입력 \한 다음 c프롬프트로 돌아가서 qkermit을 종료하려면 입력하세요.

$ kermit
C-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, for Linux+SSL+KRB5 (64-bit)
 Copyright (C) 1985, 2011,
  Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/yaegashi/) C-Kermit>connect
Connecting to /dev/ttyS0, speed 115200
 Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------

Closing /dev/ttyS0...OK

답변2

정의되지 않은 UART 직렬 포트와 ARCHMI PC의 Linux에서 비슷한 문제가 발생했습니다. dmesg | grep 일련번호에 결과가 표시되지 않았습니다. 여러번 시도한 끝에 BIOS 문제라는 것을 알게 되었습니다. "빠른 시작" 옵션을 비활성화한 후 모든 것이 원활하게 실행되었고 직렬 포트가 UART를 올바르게 로드했으며 dmesg에 결과가 표시되었습니다. 혹시라도 도움이 된다면 말이죠.

관련 정보