FreeBSD에서 직렬 통신 장치를 나열하는 방법을 찾고 있습니다.
컴퓨터에는 온보드 직렬 콘솔( ttyS0
)과 내부 아날로그 모뎀이라는 두 가지가 설치되어 있습니다.
다음을 통해 내부 모뎀에 대한 정보를 찾을 수 있습니다 pciconf
.
# pciconf -lbcevV pci0:5:8:0
none0@pci0:5:8:0: class=0x078000 card=0x8d881043 chip=0x270214f1 rev=0x01 hdr=0x00
vendor = 'Conexant Systems, Inc.'
class = simple comms
bar [10] = type Memory, range 32, base 0xd1000000, size 65536, enabled
bar [14] = type I/O Port, range 32, base 0xa800, size 8, enabled
cap 01[40] = powerspec 2 supports D0 D3 current D0
따라서 이것은 분명히 모뎀이며 공급업체 ID를 통해 Conexant RD01-D270 내부 아날로그 모뎀의 칩과 일치한다는 것을 알 수 있습니다.
dmidecode -t connector
이것을 찾아보겠습니다:
Handle 0x000F, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: COM1
Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
External Reference Designator:
External Connector Type: DB-9 male
Port Type: Serial Port 16450 Compatible
따라서 이것은 분명히 온보드 직렬 인터페이스입니다.
문제는 어떤 장치입니까? 온보드 직렬 인터페이스가 이라고 상당히 안전하게 가정할 수 있지만 /dev/ttyS0
이는 단지 추측일 뿐입니다. 사실 이것은 FreeBSD이므로 아마도 /dev/console
. 그런데 어떤 모뎀인가요? 시리얼 콘솔이나 다이얼러일 줄 알았는데, 그건 /dev/cuau0
추측일 뿐입니다.
추측 등을 하지 않고 이를 알아낼 수 있는 믿을 수 있는 방법이 있습니까?
답변1
사용pstat(8)
. 모든 터미널이 표시되며 여기서 가상 터미널(ttyv*)과 ptys를 빼고 직렬 터미널(이 경우 ttyu0 및 ttyu1)은 남깁니다.uart(4)
:
% pstat -t
LINE INQ CAN LIN LOW OUTQ USE LOW COL SESS PGID STATE
ttyu0 0 0 0 0 0 0 0 0 0 0 IC
ttyu1 0 0 0 0 0 0 0 0 0 0 IC
ttyv0 1920 0 0 192 1984 0 199 37695 87297 87297 Oicl
ttyv1 1920 0 0 192 1984 0 199 7 852 852 Oil
ttyv2 1920 0 0 192 1984 0 199 7 853 853 Oil
ttyv3 1920 0 0 192 1984 0 199 7 854 854 Oil
ttyv4 1920 0 0 192 1984 0 199 7 855 855 Oil
ttyv5 1920 0 0 192 1984 0 199 7 856 856 Oil
ttyv6 1920 0 0 192 1984 0 199 7 857 857 Oil
ttyv7 1920 0 0 192 1984 0 199 7 858 858 Oil
ttyv8 0 0 0 0 0 0 0 0 0 0 -
ttyv9 0 0 0 0 0 0 0 0 0 0 -
ttyva 0 0 0 0 0 0 0 0 0 0 -
ttyvb 0 0 0 0 0 0 0 0 0 0 -
pts/1 1920 0 0 192 1984 0 199 99999 874 882 Oi
pts/3 1920 0 0 192 1984 0 199 104 79048 79048 Oi
pts/2 1920 0 0 192 1984 0 199 3 19896 32414 Oi
pts/4 1920 0 0 192 1984 0 199 38 46538 46538 Oi
pts/0 1920 0 0 192 1984 0 199 65737 50951 50956 Oil
pts/5 1920 0 0 192 1984 0 199 0 50987 50993 Oi
답변2
드라이버가 로드되지 않았기 때문에 dmesg에서 이 모뎀의 드라이버를 볼 수 없습니다. 이는 아마도 FreeBSD에 해당 드라이버가 없다는 의미일 것입니다. 이는 모뎀이 CX11252-15 칩셋을 사용하고 하드웨어 모뎀이 아니라 폐쇄 소스 드라이버가 포함된 "소프트 모뎀" 또는 "winmodem"이기 때문입니다. FreeBSD에는 WinModem에 대한 기본 지원이 포함되어 있지 않습니다.
또한 "isa" 비트는 생각만큼 이상하지 않습니다. 많은(대부분? 모두?) PC에는 여전히 레거시 장치를 지원하기 위한 내부 PCI-ISA 브리지가 있습니다. 온보드 모뎀과 직렬 포트, PS2 kb/마우스, RTC 등이 모두 이 범주에 속합니다.