lspci 中不存在 PCI 设备

lspci 中不存在 PCI 设备

我刚刚更新了我不常见的笔记本电脑(小米笔记本 Pro X),将预装的 ax201 wi-fi 卡替换为 be200 兄弟产品。问题是,lspci仍然看到 ax201:

00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20)

我可以找到一些保存的信息journald

# journalctl  --since '30m ago' | grep 00:14

kernel: pci 0000:00:14.0: [8086:a0ed] type 00 class 0x0c0330 conventional PCI endpoint
kernel: pci 0000:00:14.0: BAR 0 [mem 0x82480000-0x8248ffff 64bit]
kernel: pci 0000:00:14.0: PME# supported from D3hot D3cold
kernel: pci 0000:00:14.2: [8086:a0ef] type 00 class 0x050000 conventional PCI endpoint
kernel: pci 0000:00:14.2: BAR 0 [mem 0x6103188000-0x610318bfff 64bit]
kernel: pci 0000:00:14.2: BAR 2 [mem 0x6103191000-0x6103191fff 64bit]
kernel: pci 0000:00:14.3: [8086:a0f0] type 00 class 0x028000 PCIe Root Complex Integrated Endpoint
kernel: pci 0000:00:14.3: BAR 0 [mem 0x6103184000-0x6103187fff 64bit]
kernel: pci 0000:00:14.3: PME# supported from D0 D3hot D3cold
kernel: pci 0000:00:14.0: Adding to iommu group 7
kernel: pci 0000:00:14.2: Adding to iommu group 7
kernel: pci 0000:00:14.3: Adding to iommu group 8
kernel: xhci_hcd 0000:00:14.0: xHCI Host Controller
kernel: xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
kernel: xhci_hcd 0000:00:14.0: hcc params 0x20007fc1 hci version 0x120 quirks 0x0000000200009810
kernel: xhci_hcd 0000:00:14.0: xHCI Host Controller
kernel: xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4
kernel: xhci_hcd 0000:00:14.0: Host supports USB 3.1 Enhanced SuperSpeed
kernel: usb usb3: SerialNumber: 0000:00:14.0
kernel: usb usb4: SerialNumber: 0000:00:14.0
mtp-probe[401]: checking bus 3, device 2: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-5"
mtp-probe[402]: checking bus 3, device 3: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-7"
kernel: iwlwifi 0000:00:14.3: CSR_RESET = 0x11
kernel: iwlwifi 0000:00:14.3: Host monitor block 0x0 vector 0x0
kernel: iwlwifi 0000:00:14.3:     value [iter 0]: 0x3f190030
kernel: iwlwifi 0000:00:14.3:     value [iter 1]: 0x3f190030
kernel: iwlwifi 0000:00:14.3:     value [iter 2]: 0x3f190430
kernel: iwlwifi 0000:00:14.3:     value [iter 3]: 0x3f190430
kernel: iwlwifi 0000:00:14.3:     value [iter 4]: 0x3f190430
kernel: iwlwifi 0000:00:14.3:     value [iter 5]: 0x3f190430
kernel: iwlwifi 0000:00:14.3:     value [iter 6]: 0x3f190030
kernel: iwlwifi 0000:00:14.3:     value [iter 7]: 0x3f190030
kernel: iwlwifi 0000:00:14.3:     value [iter 8]: 0x3f190030
kernel: iwlwifi 0000:00:14.3:     value [iter 9]: 0x3f190430
kernel: iwlwifi 0000:00:14.3:     value [iter 10]: 0x3f190430
kernel: iwlwifi 0000:00:14.3:     value [iter 11]: 0x3f190030
kernel: iwlwifi 0000:00:14.3:     value [iter 12]: 0x3f190030
kernel: iwlwifi 0000:00:14.3:     value [iter 13]: 0x3f190030
kernel: iwlwifi 0000:00:14.3:     value [iter 14]: 0x3f190030
kernel: iwlwifi 0000:00:14.3: Host monitor block 0x0 vector 0x1
kernel: iwlwifi 0000:00:14.3:     value [iter 0]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 1]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 2]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 3]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 4]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 5]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 6]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 7]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 8]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 9]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 10]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 11]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 12]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 13]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3:     value [iter 14]: 0x04006ec2
kernel: iwlwifi 0000:00:14.3: Host monitor block 0x0 vector 0x6
kernel: iwlwifi 0000:00:14.3:     value [iter 0]: 0xb8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 1]: 0xb8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 2]: 0xa8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 3]: 0xa8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 4]: 0xa8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 5]: 0xa8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 6]: 0xa8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 7]: 0xb8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 8]: 0xe8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 9]: 0xe8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 10]: 0xe8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 11]: 0xe8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 12]: 0xe8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 13]: 0xf8047c60
kernel: iwlwifi 0000:00:14.3:     value [iter 14]: 0xf8047c60
kernel: iwlwifi 0000:00:14.3: Host monitor block 0x22 vector 0x0
kernel: iwlwifi 0000:00:14.3:     value [iter 0]: 0x89cec019
kernel: iwlwifi: probe of 0000:00:14.3 failed with error -110

我正在运行最新的内核之一:

6.8.4-1-MANJARO #1 SMP PREEMPT_DYNAMIC Thu Apr  4 20:38:32 UTC 2024 x86_64 GNU/Linux

它看起来非常相似这个问题这个解决方案,但是那里提到的平台是Windows,而不是Linux。

这怎么可能?我很确定以前只有一个设备。主板上没有焊接第二个 ax201,但它仍然在那里并且看起来没有响应(iwlwifi没有拿起它,而内核已经支持它很长一段时间了)。是否有“完全”删除它的选项?最后,它会影响新安装的蓝牙功能吗be200(目前我的机器没有任何可发现的蓝牙适配器)?

的输出be200(我认为地址的差异可能很重要):

kernel: pci 0000:66:00.0: [8086:272b] type 00 class 0x028000 PCIe Endpoint
kernel: pci 0000:66:00.0: BAR 0 [mem 0x82300000-0x82303fff 64bit]
kernel: pci 0000:66:00.0: PME# supported from D0 D3hot D3cold
kernel: pci 0000:66:00.0: 7.876 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x1 link at 0000:00:1c.0 (capable of 15.753 Gb/s with 16.0 GT/s PCIe x1 link)
kernel: pci 0000:66:00.0: Adding to iommu group 16
kernel: iwlwifi 0000:66:00.0: enabling device (0000 -> 0002)
kernel: iwlwifi 0000:66:00.0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000
kernel: iwlwifi 0000:66:00.0: PCI dev 272b/00f4, rev=0x472, rfid=0x112200
kernel: iwlwifi 0000:66:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.4.125
kernel: iwlwifi 0000:66:00.0: loaded firmware version 86.fb5c9aeb.0 gl-c0-fm-c0-86.ucode op_mode iwlmvm
kernel: iwlwifi 0000:66:00.0: Detected Intel(R) TBD Bz device, REV=0x472
kernel: iwlwifi 0000:66:00.0: WRT: Invalid buffer destination
kernel: iwlwifi 0000:66:00.0: loaded PNVM version 8443a58d
kernel: iwlwifi 0000:66:00.0: Detected RF FM, rfid=0x112200
kernel: iwlwifi 0000:66:00.0: base HW address: a0:02:a5:e0:88:14
kernel: iwlwifi 0000:66:00.0 wlp102s0f0: renamed from wlan0
NetworkManager[550]: <info>  [1712335056.4552] rfkill0: found Wi-Fi radio killswitch (at /sys/devices/pci0000:00/0000:00:1c.0/0000:66:00.0/ieee80211/phy0/rfkill0) (driver iwlwifi)
kernel: iwlwifi 0000:66:00.0: WRT: Invalid buffer destination
kernel: iwlwifi 0000:66:00.0: Registered PHC clock: iwlwifi-PTP, with index: 0
kernel: iwlwifi 0000:66:00.0: WRT: Invalid buffer destination
ModemManager[586]: <msg> [base-manager] couldn't check support for device '/sys/devices/pci0000:00/0000:00:1c.0/0000:66:00.0': not supported by any plugin

答案1

诚然,我在这里进行了一些猜测,因为我不太熟悉该级别的设备如何工作。

但是,请注意初始化行

kernel: pci 0000:00:14.3: [8086:a0f0] type 00 class 0x028000 PCIe Root Complex Integrated Endpoint

kernel: pci 0000:66:00.0: [8086:272b] type 00 class 0x028000 PCIe Endpoint

同样,我对此知之甚少,但似乎很明显它们被初始化为两种不同类型的设备。

深入挖掘(直接复制自这里):

PCI Express (PCIe) 中的根复合体是系统中央处理单元 (CPU)、内存和包含一个或多个 PCIe 或 PCI 设备的 PCIe 交换结构之间的中介。它使用链路训练和状态机 (LTSSM) 来管理连接的 PCIe 设备。 LTSSM 在操作期间根据需要检测、轮询、配置、恢复、重置和禁用设备。

所以我的理解是,您的设备的 PCIe 根复合体(其用途已在上面进行了解释)是以该卡的用途命名的(推测更多:可能是因为它是为该特定卡定制设计的 - *请不要引用我的话*)。但事实上,它是一个完全独立的设备,与 WiFi 卡本身无关。

答案2

事实证明,这是相当搞笑的。似乎在重新启动甚至 BIOS 重置之间存在某种状态 - 我将其归咎于硬件,尽管我没有 100% 的信心(我认为也可能是 uefi)。当我重新安装ax201时,安装的系统和实时USB都看不到最初安装在那里的卡,这是相当意外的。然而,经典的举动,从笔记本电脑中拔出电池,成功了 - 一切都恢复正常,笔记本电脑现在似乎可以与新的 Wi-Fi 卡正确交互(尽管现在是 ax210,而不是 be200), Wi-Fi 和之前丢失的蓝牙都存在,并且 lspci 没有显示 ax201 的痕迹(安装新卡时存在,但尚未拔出电池)。

相关内容