데비안이 내 ​​ttyS0을 인식하지 못합니다/콘솔 리디렉션이 작동하지 않습니다

데비안이 내 ​​ttyS0을 인식하지 못합니다/콘솔 리디렉션이 작동하지 않습니다

나는 fitlet2를 가지고 있습니다 (https://fit-iot.com/web/products/fitlet2/)에는 직렬 포트가 있습니다. BIOS에서 "직렬 포트 콘솔 리디렉션"을 활성화한 후 내 컴퓨터의 화면(screen /dev/ttyUSB0 115200)을 사용하여 fitlet2의 직렬 포트에 연결하고 BIOS에 액세스할 수 있습니다.

또한 GRUB 부트 로더에 대한 직렬 액세스 권한도 있습니다. 다양한 GRUB 부트로더에 대한 직렬 액세스(debian/ubuntu 설치 프로그램, debian 설치) 하지만 시스템이 로드될 때마다 사용하고 있는 직렬 포트에 더 이상 액세스할 수 없습니다.

시스템 GRUB에서 콘솔 리디렉션을 활성화하기 위해 이 기사에 따라 부팅 매개변수를 편집해 보았습니다.https://www.cyberciti.biz/faq/howto-setup-serial-console-on-debian-linux/. 곧 나는 내 ttyS0이 제대로 작동하지 않는다는 것을 깨달았습니다. 물리적 직렬 인터페이스 디버깅을 시작했을 때 이를 작동시키는 방법을 찾을 수 없었습니다.

Seterial은 다음을 알려줍니다.

/dev/ttyS0, UART: 16550A,  Port: 0x0000, IRQ: 4
/dev/ttyS1, UART: 16550A,  Port: 0x0000, IRQ: 5
/dev/ttyS2, UART: 16550A,  Port: 0x0000, IRQ: 7
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3

dmesg | grep tty:

[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.9.0-8-amd64 root=/dev/mapper/pen--01--vg-root ro console=ttyS0,115200n8 console=tty0,115200n8
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.9.0-8-amd64 root=/dev/mapper/pen--01--vg-root ro console=ttyS0,115200n8 console=tty0,115200n8
[    0.000000] console [tty0] enabled
[    0.000000] console [ttyS0] enabled
[   49.308213] console [ttyS0] disabled
[   49.312635] dw-apb-uart.0: ttyS0 at MMIO 0x81424000 (irq = 4, base_baud = 115200) is a 16550A
[   49.407713] usb 1-8.2: Qualcomm USB modem converter now attached to ttyUSB0
[   49.410489] usb 1-8.2: Qualcomm USB modem converter now attached to ttyUSB1
[   49.411349] usb 1-8.2: Qualcomm USB modem converter now attached to ttyUSB2
[   53.577143] console [ttyS0] enabled
[   54.744793] dw-apb-uart.1: ttyS1 at MMIO 0x81422000 (irq = 5, base_baud = 115200) is a 16550A
[   54.755771] dw-apb-uart.2: ttyS2 at MMIO 0x81420000 (irq = 7, base_baud = 115200) is a 16550A
[  115.902885] ttyS2 - failed to request DMA

ttyS0이 비활성화되었다가 다시 활성화되는 이유는 무엇입니까? 어떻게 활성화하거나 올바르게 사용할 수 있나요?

직렬 포트에서 로그인 셸을 얻는 방법은 무엇입니까? 내가 무엇을 놓치고 있나요?

답변1

곧 나는 내 ttyS0이 제대로 작동하지 않는다는 것을 깨달았습니다. 물리적 직렬 인터페이스 디버깅을 시작했을 때 이를 작동시키는 방법을 찾을 수 없었습니다.

제 경우에는 Atom E3950 CPU를 사용하는 fitlet2에서터미널 S2기기 뒷면의 직렬 포트에 해당하는 장치 노드입니다. console=ttyS2,115200일반적인 커널 명령줄 옵션을 사용하여 콘솔 로 사용할 수 있었습니다 . 현재 Debian 안정 커널(4.19.152-1)과 불안정 커널(5.9.11-1)을 사용하여 테스트했습니다.

ttyS2 - failed to request DMA안정 버전을 사용할 때도 이 메시지가 표시되지만 여전히 작동합니다.

내 컴퓨터에는 다음이 있습니다.

# cat /proc/tty/driver/serial                                         
serinfo:1.0 driver revision:                                                    
0: uart:16550A mmio:0x7FFFF0E000 irq:4 tx:0 rx:0                                
1: uart:16550A mmio:0x7FFFF0C000 irq:5 tx:0 rx:0 CTS                            
2: uart:16550A mmio:0x480000000 irq:6 tx:1067 rx:38 RTS|CTS|DTR                 
3: uart:16550A mmio:0x7FFFF0A000 irq:7 tx:0 rx:0 CTS

아무리 시도해도 grub이 기본적으로 직렬 포트를 사용하도록 할 수 없습니다. 말씀하신 대로 펌웨어에서 직렬 콘솔 리디렉션을 활성화하면 직렬 포트를 통해 grub 인터페이스에 액세스할 수 있지만 이는 직렬 포트를 구동하는 펌웨어 에이전트를 통해 수행된다고 생각합니다. 이 모드에서는 grub을 구성하면 terminal console직렬 포트로 출력하기에 충분합니다. 어쨌든 잘 작동합니다.

관련 정보