MCS9904 직렬 PCI 카드가 있는데 데비안 10에서 사용하고 싶습니다. 내가 실행할 때 :
dmesg | grep tty
다음을 반환합니다.
00:05: I/O 0x3f*(irq = 4)의 ttyS0은 16550A입니다.
0000:02:00:0: I/O 0xd030(irq = 18)의 ttyS1은 ST16650V2입니다.
0000:02:00:1: I/O 0xd020(irq = 19)의 ttyS2는 ST16650V2입니다.
0000:02:00:2: I/O 0xd010(irq = 16)의 ttyS3은 ST16650V2입니다.
4개의 포트만 반환됩니다. 하나의 직렬 포트가 내장되어 있고 나머지 3개는 PCI 카드에서 가져온 것입니다. 마지막 포트를 사용할 수 없습니다. 드라이버를 다음에서 다운로드했습니다.여기 드라이버를 설치하기 위해 다음 명령을 실행했습니다.
- 만들다
- 설치하기 위해서
누구든지 이 문제에 대해 안내해 줄 수 있나요?
답변1
초기 PC에는 8250 UART 칩을 기반으로 최대 4개의 직렬 포트가 있었습니다. 이 제한을 초과할 수 있지만 일반적으로 다른 하드웨어 구현이나 최소한 특수 드라이버를 사용하여 더 많은 수의 포트를 활성화할 수 있습니다. 최신 16550A는 실제로 프로그래밍 가능하며 이전 8250 칩과 역호환됩니다.그리고 몸수준.
(1980년대 후반/1990년대 초반, 구형/저렴한 컴퓨터를 사용하여 더 새롭고 빠른 전화 접속 모뎀으로 업그레이드할 때 일관된 오류 방지를 위해 실제 8250 칩을 소켓에서 꺼내 16550A로 교체해야 할 수도 있었습니다. 다운로드).
빠른 Google 검색을 통해 ST16650V2는 PCI(e) 버스 호환성을 위해 현대화된 버전으로 보이지만 가능한 한 이전 프로그래밍 인터페이스와도 호환됩니다.
Linux 커널에는 컴파일 시간 매개변수 "런타임에 등록된 8250/16550 직렬 포트 수"( CONFIG_SERIAL_8250_RUNTIME_UARTS
)가 있으며 기본적으로 4로 설정됩니다. Debian 10은 표준 커널 패키지에서 이 기본값을 변경하지 않습니다.
하지만 이 값은 커널 부팅 매개변수에 의해 무시될 수 있습니다 8250.nr_uarts
(또는 nr_uarts
이전 커널 버전일 수도 있지만 데비안 10에 적용하기에는 너무 오래되었다고 생각합니다).
8250 호환 직렬 포트 드라이버가 총 5개의 포트를 처리하는 것으로 나타나므로 에 추가해야 합니다 8250.nr_uarts=5
. 결과 구성 줄은 다음과 같습니다.GRUB_CMDLINE_LINUX_DEFAULT=
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash 8250.nr_uarts=5"
변경한 후 update-grub
GRUB에 변경 사항을 적용하려면 루트로 실행해야 합니다. 재부팅한 후 시스템은 5개의 8250 호환 직렬 포트를 모두 사용할 수 있어야 합니다.