저는 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 16550A
UART 모델 유형을 모릅니다. 문서와 보드 부분을 확인했는데 UART 유형이 DB-9라는 것뿐입니다. UART 직렬 제어 타워.
답변1
IIRC Jetson TK1의 DB9는 /dev/ttyS0
Linux 커널에 연결됩니다. 기본 Ubuntu 배포판에서는 이를 커널의 콘솔 장치(참고자료 참조 cat /proc/consoles
)로 설정하고 여기에서 실행됩니다 getty
. 애플리케이션에서 독점적으로 사용하려면 이를 중지해야 합니다 /dev/ttyS0
.
중지하려면 getty
실행할 수 있습니다 stop ttyS0
. /dev/ttyS0
커널 콘솔에서 장치를 분리하는 방법을 모르겠습니다 . console=ttyS0,...
부팅 매개변수에서 장치를 제거해야 합니다. 그럼에도 불구하고 첫 번째 테스트에서는 크로스오버 케이블을 사용하여 DB9을 다른 PC에 연결하는 것이 좋습니다.
setserial
TK1의 출력이 무의미하고 쓸모가 없어 걱정됩니다 . /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에 결과가 표시되었습니다. 혹시라도 도움이 된다면 말이죠.