最近我的 wifi 适配器出现了问题,解决办法是blacklist ideapad_laptop
在文件中/etc/modprobe.d/blacklist.conf
。
这让我很想知道模块是如何分配的。我的笔记本电脑不是 Ideapad,而 wifi 适配器是 Realtek Semiconductor Co., Ltd. RTL8111/8168/8411。我怎么会猜到呢?除此之外,假设我猜到了lsmod
并获取我的驱动程序(模块)列表。
...
coretemp 16384 0
joydev 24576 0
kvm_intel 204800 0
snd_seq_midi 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 32768 1 snd_seq_midi
kvm 593920 1 kvm_intel
bnep 20480 2
hid_multitouch 20480 0
8250_dw 16384 0
irqbypass 16384 1 kvm
snd_seq 65536 2 snd_seq_midi_event,snd_seq_midi
crct10dif_pclmul 16384 0
crc32_pclmul 16384 0
snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi
ghash_clmulni_intel 16384 0
intel_wmi_thunderbolt 16384 0
wmi_bmof 16384 0
arc4 16384 2
snd_timer 32768 2 snd_seq,snd_pcm
pcbc 16384 0
uvcvideo 86016 0
...
我的一个朋友有一台 HP 笔记本电脑,带有与我相同的 Realtek 无线适配器,但他的 wifi 也无法使用。他能blacklist ideapad_lenovo
得到同样的结果吗?我猜不会。
如何找到导致问题的内核模块?
答案1
我认为它应该可以正常工作。
我的理解是,硬件有一些标识符(如型号名称),而内核维护一个查找数据库来查找潜在模块。这必然会产生几个相对兼容的模块,内核会选择第一个(直到失败),然后尝试下一个,等等。
黑名单会告诉它跳过特定模块。但除非有不想使用它的理由(例如:问题、性能等),否则你不需要这样做。
是的,它应该可以正常工作。