大家都知道,任何内核模块都可以通过 GRUB 行列入黑名单:
$ module_name.blacklist=yes
然而,并不是每个人都知道要列入黑名单的模块的确切名称。是真正的问题!如何识别它?
例如,在加载 GRUB 期间我看到:
rtlwifi firmware not available
这对身份识别毫无用处。
rtlwifi.blacklist=yes
也没有任何其他变体起作用。我该如何找出名字?
蓝牙适配器也会出现同样的问题。它会抛出:
[ 9.366503] Bluethooth: hci0: Failed to load rtl_bt/rtl8821a_fw.bin
当然,rtl_bt/rt18821a_fw.blacklist=yes
没用。
$ lsmod | grep rtl
rtl8821ae 233472 0
btcoexist 131072 1 rtl8821ae
rtl_pci 32768 1 rtl8821ae
btrtl 16384 1 btusb
bluetooth 548864 5 btrtl,btintel,btbcm,btusb
rtlwifi 77824 3 rtl_pci,btcoexist,rtl8821ae
mac80211 778240 3 rtl_pci,rtlwifi,rtl8821ae
cfg80211 622592 2 mac80211,rtlwifi
有什么建议么?
更新:值得关注的是rtlwifi 错误 lspci -v
仅列出以下
Network controller: Realtek Semiconductor Co., Ltd. RTL8821AE 802.11ac PCIe Wireless Network Adapter
Subsystem: ASUSTeK Computer Inc. RTL8821AE 802.11ac PCIe Wireless Network Adapter
Flags: bus master, fast devsel, latency 0, IRQ 29
I/O ports at e000 [size=256]
Memory at f7d00000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number 00-e0-4c-ff-fe-87-2b-01
Capabilities: [150] Latency Tolerance Reporting
Capabilities: [158] L1 PM Substates
Kernel driver in use: rtl8821ae
Kernel modules: rtl8821ae
和名字rtl8821ae
已经在我的黑名单中却没有任何结果,所以似乎行不通。
值得关注的是蓝牙:hci0 错误,lspci
上市没有蓝牙模块或没有类似的东西rtl_bt
,可能是因为蓝牙适配器不是 PCI 设备。
答案1
您可以在不将驱动程序列入黑名单的情况下启动,然后使用它lspci -v
来显示有关硬件以及与其关联的内核驱动程序和模块的信息。该Kernel Modules:
部分应显示您需要列入黑名单的模块名称(最有可能)
示例输出:
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
Subsystem: Red Hat, Inc Qemu virtual machine
Flags: medium devsel, IRQ 9
Kernel driver in use: piix4_smbus
Kernel modules: i2c_piix4
上例中的模块名称是i2c_piix4
如果有效请告诉我。此信息来源是https://askubuntu.com/a/110343/142100