하드웨어에 Thunderbolt 포트가 있는지 표시할 수 있는 명령이 있습니까?

하드웨어에 Thunderbolt 포트가 있는지 표시할 수 있는 명령이 있습니까?

lspci가 이 작업을 수행하는 도구일 것이라고 추측하지만 식별 가능한 출력을 찾을 수 없는 것 같습니다. Thunderbolt 포트가 시스템에 존재하는지 명령줄에서 알 수 있는 방법이 있습니까?

Thunderbolt 포트가 있는 컴퓨터가 있고 lspci가 다음을 표시한다는 것을 알고 있습니다.

00:00.0 Host bridge: Intel Corporation Device 3ec2 (rev 07)
00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Device 3e92
00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Device a379 (rev 10)
00:14.0 USB controller: Intel Corporation Device a36d (rev 10)
00:14.2 RAM memory: Intel Corporation Device a36f (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Device a368 (rev 10)
00:16.0 Communication controller: Intel Corporation Device a360 (rev 10)
00:17.0 SATA controller: Intel Corporation Device a352 (rev 10)
00:1d.0 PCI bridge: Intel Corporation Device a330 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device a306 (rev 10)
00:1f.3 Audio device: Intel Corporation Device a348 (rev 10)
00:1f.4 SMBus: Intel Corporation Device a323 (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Device a324 (rev 10)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM (rev 10)
01:00.0 Multimedia video controller: Blackmagic Design DeckLink Mini Recorder
02:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)

다른 컴퓨터에 텔넷으로 연결했는데 Thunderbolt 포트가 있고 lspci가 다음을 표시하는지 궁금합니다.

00:00.0 Host bridge: Intel Corporation Device 191f (rev 07)
00:01.0 PCI bridge: Intel Corporation Device 1901 (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Device 1912 (rev 06)
00:14.0 USB controller: Intel Corporation Device a12f (rev 31)
00:14.2 Signal processing controller: Intel Corporation Device a131 (rev 31)
00:16.0 Communication controller: Intel Corporation Device a13a (rev 31)
00:16.3 Serial controller: Intel Corporation Device a13d (rev 31)
00:17.0 RAID bus controller: Intel Corporation 82801 SATA Controller [RAID mode] (rev 31)
00:1d.0 PCI bridge: Intel Corporation Device a118 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device a146 (rev 31)
00:1f.2 Memory controller: Intel Corporation Device a121 (rev 31)
00:1f.3 Audio device: Intel Corporation Device a170 (rev 31)
00:1f.4 SMBus: Intel Corporation Device a123 (rev 31)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
01:00.0 Multimedia video controller: Blackmagic Design DeckLink Mini Recorder
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express

답변1

적어도 내 시스템에서는 Thunderbolt 3, lshw 및 lsusb가 연결되어 있지 않으면 표시되지 않습니다(USB3 포트는 표시됩니다). 저는 System76 및 Tuxedo와 같은 공급업체에서 구입할 수 있는 Clevo N131WU 노트북을 가지고 있습니다.

즉, 모듈이 로드됩니다.

[tara@tuxmonster ~]$ lsmod grep Thunder |
intel_wmi_thunderbolt 16384 0
wmi 28672 1 intel_wmi_thunderbolt
[타라@tuxmonster ~]$

데스크탑 컴퓨터를 다시 확인했는데 Thunderbolt는 없지만 동일한 배포판과 커널(Arch, 4.18)을 실행하고 있으며 Thunderbolt 드라이버가 데스크탑에 로드되지 않습니다.

답변2

Mac 하드웨어에서 Thunderbolt 핫 플러그는 주로 운영 체제에 의해 관리되므로 Thunderbolt 컨트롤러가 항상 표시됩니다.

그러나 x86 PC 하드웨어에서 Thunderbolt(최소 Thunderbolt 1)는 ACPI 펌웨어로 관리되는 경향이 있으며 핫플러그는 표준 PCIe 핫플러그 이벤트와 유사하게 처리됩니다. 따라서 연결된 장치가 없으면 Thunderbolt 버스는 운영 체제에 완전히 표시되지 않습니다. 그러나 무언가를 연결하면 Linux 관점에서 브리지된 장치가 많이 나타납니다. dmesg리소스가 Thunderbolt 버스와 그 안에 있는 장치에 할당되기 때문에 많은 출력이 표시됩니다 .

Thunderbolt 3은 USB Type-C 커넥터와 공존하므로 감지될 수 있으며 따라서 Type-C 구성 데이터에 표시될 수 있습니다. 하지만 현재 Thunderbolt 3가 설치된 시스템에 액세스할 수 없으므로 지금은 이를 확인할 수 없습니다.

답변3

Thunderbolt 컨트롤러가 완전히 숨겨지지 않을 수도 있습니다. lspciThunderbolt 컨트롤러는 공급업체 및 장치 ID가 이므로 목록에 없습니다 FFFF:FFFF.내 포크pciutils이러한 숨겨진 PCI 장치는 다른 레지스터를 검사하여 감지됩니다.

장치가 Thunderbolt 컨트롤러인지 확인하려면 ID=1234인 공급업체별 PCIe 확장을 찾으세요. Intel이 아닌 Thunderbolt 또는 USB4 컨트롤러의 ID가 1234인지 확실하지 않습니다.

sudo lspci -nnvvv | perl -0777 -nE 'while (/^([^\t\n].*\n)(\t.*\n)*?(\tCapabilities.* Express .*\n)(\t.*\n)*?(\t.*ID=1234.*\n)/mg) { print $1 . $3 }'
03:00.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Upstream Port, MSI 00
04:00.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
04:01.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
04:02.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
04:04.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
05:00.0 System peripheral [0880]: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] [8086:15eb] (rev 06)    Capabilities: [c0] Express (v2) Endpoint, MSI 00
07:00.0 USB controller [0c03]: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] [8086:15ec] (rev 06) (prog-if 30 [XHCI])    Capabilities: [c0] Express (v2) Endpoint, MSI 00
09:00.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] [8086:1136] (rev 02) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Upstream Port, MSI 00
0a:00.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] [8086:1136] (rev 02) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
0a:01.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] [8086:1136] (rev 02) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
0a:02.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] [8086:1136] (rev 02) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
0a:03.0 PCI bridge [0604]: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] [8086:1136] (rev 02) (prog-if 00 [Normal decode])   Capabilities: [c0] Express (v2) Downstream Port (Slot+), MSI 00
0b:00.0 USB controller [0c03]: Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020] [8086:1137] (prog-if 40 [USB4 Host Interface])     Capabilities: [c0] Express (v2) Endpoint, MSI 00
10:00.0 PCI bridge [0604]: Illegal Vendor ID Device [ffff:ffff] (prog-if 00 [Normal decode])    Capabilities: [c0] Express (v2) Upstream Port, MSI 00

다운스트림 및 엔드포인트 장치를 제거하도록 명령을 변경할 수 있습니다. 위 결과에 나열된 마지막 장치는 숨겨진 GC-ALPINE RIDGE에서 나온 것입니다. 펌웨어에서 Thunderbolt를 지원하지 않는 PC의 Alpine Ridge 기반 Thunderbolt 3 추가 기능 카드의 경우 UEFI 셸에서 다음 명령을 사용하면 Thunderbolt 컨트롤러의 USB 컨트롤러 숨김을 해제할 수 있습니다. 이 명령은 Thunderbolt 컨트롤러에 PCI 버스 0x10이 있다고 가정합니다.

mm 0010000054C 00 -w 1 -PCIE -n
mm 0010000054C 0D -w 1 -PCIE -n
mm 00100000548 -w 1 -PCIE -n

물론 UEFI는 숨겨진 장치를 열거하지 않기 때문에 운영 체제는 PCI 장치를 다시 열거해야 합니다. Titan Ridge 기반 Thunderbolt 3 추가 카드의 경우 USB 컨트롤러는 기본적으로 숨겨지지 않습니다. 일반적으로 USB-C 장치가 연결된 경우 Thunderbolt 컨트롤러는 스스로 숨김을 해제해야 합니다.

관련 정보