我的问题是两方面的。
为什么内核更新会破坏我的 WIFI?我对细节感兴趣,正在工作的机制将其淘汰。
有什么办法可以防止这种情况发生吗?再次详细说明,我没有计算机技能,我不知道脚本等。
背景资料
我曾经历过三次内核更新导致同一台计算机上的 wifi 中断。20.04 LTS
- 我第一次在 AU 上找到解决方案时,通过 Tomaspinho github 驱动程序页面和#that 找不到链接了。我手动下载了驱动程序 zip 文件,解压缩并将文件夹从 RTL8821CE-Master 重命名为 RTL8821CE 然后 cd Downloads/rtl8821ce/ 或右键单击文件夹打开终端
sudo apt install bc module-assistant build-essential dkms
sudo m-a prepare
sudo ./dkms-install.sh
reboot
- 第二次发生这种情况,第一个解决方案不起作用。我使用以下命令通过 AU 找到了另一个解决方案:
sudo apt remove rtl8821ce-dkms && sudo apt install rtl8821ce-dkms
reboot
- 第三次内核更新破坏了我的 WIFI,我再次使用了第二个解决方案,但它失败了,#did not work。我再次尝试了第一个解决方案 - #that 也失败了。
经过几个小时的研究以找到解决方案,但没有找到解决方案,我决定将手机永远拴在电脑上,而不是处理未来的情况。考虑到这个想法,我最后一次使用以下命令删除了驱动程序:
sudo apt remove rtl8821ce-dkms
reboot
WIFI现在正在工作......这是 怎么发生的?我不知道。
5.13.0.39 刚刚通过软件更新程序作为定期更新安装,发生在 22 年 4 月 7 日
安全启动已关闭
我在 AU 上发现了 299 个有关 RTL8821CE 的问题,其中许多问题与安装驱动程序的问题相同,但没有人回答为什么内核更新会破坏我机器上的 wifi。
在我尝试过的答案中,没有一个对我有用。但不知何故,驱动程序在删除它后工作 - 我不明白,这导致我在上面提出这个问题。
当然,如果您需要我的机器上的任何信息,请告诉我什么以及如何以您想要的格式获取它,我将很乐意为您服务。
也许是我一遍又一遍地使用命令的日记,以准确显示发生了什么。索取即可,请注明日志命令和格式。
Ubuntu 20.04.4 LTS
惠普笔记本电脑 15-ef1082nr
FCC ID:TX2-rtl8821ce
集成电路:6317A-rtl8821ce
**sudo lshw -C network
[sudo] password for x:
*-network
description: Wireless interface
product: RTL8821CE 802.11ac PCIe Wireless Network Adapter
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlo1
version: 00
serial: UN:ID:EN:TI:FI:ED
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=rtw_8821ce driverversion=5.13.0-39-generic firmware=N/A ip=192.168.0.161 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:56 ioport:f000(size=256) memory:fce00000-fce0ffff
lspci -nnk | grep 0280 -A3
02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter [10ec:c821]
DeviceName: Realtek Chopard RTL8821CE 802.11ac 1x1 +BT 4.2 M.2 2230 PCI-e+USB WW
Subsystem: Hewlett-Packard Company RTL8821CE 802.11ac PCIe Wireless Network Adapter [103c:831a]
Kernel driver in use: rtw_8821ce
nmcli d
DEVICE TYPE STATE CONNECTION
wlo1 wifi connected my connection
lo loopback unmanaged --
sudo dmesg | grep 8821
[ 4.089669] Bluetooth: hci0: RTL: examining hci_ver=08 hci_rev=000c lmp_ver=08 lmp_subver=8821
[ 4.096760] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821c_fw.bin
[ 4.097817] Bluetooth: hci0: RTL: loading rtl_bt/rtl8821c_config.bin
[ 4.166208] rtw_8821ce 0000:02:00.0: enabling device (0000 -> 0003)
[ 4.167688] rtw_8821ce 0000:02:00.0: Firmware version 24.8.0, H2C version 12
[ 4.399449] 8821ce: loading out-of-tree module taints kernel.
[ 4.414707] 8821ce: module verification failed: signature and/or required key missing - tainting kernel
[ 4.519533] proc_dir_entry 'net/rtl8821ce' already registered
[ 4.519561] Modules linked in: rtl8821ce(OE+) snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec snd_hda_core 8821ce(OE) snd_hwdep snd_pcm snd_seq_midi snd_seq_midi_event amdgpu(+) intel_rapl_msr snd_rawmidi intel_rapl_common iommu_v2 rtw88_8821ce gpu_sched drm_ttm_helper rtw88_8821c ttm edac_mce_amd rtw88_pci btusb snd_seq drm_kms_helper btrtl btbcm snd_seq_device cec btintel snd_timer rtw88_core rc_core bluetooth kvm snd_rn_pci_acp3x i2c_algo_bit fb_sys_fops snd snd_pci_acp3x syscopyarea ecdh_generic sysfillrect ecc sysimgblt ccp joydev soundcore mac80211 crct10dif_pclmul ghash_clmulni_intel aesni_intel hp_wmi crypto_simd platform_profile sparse_keymap cryptd cfg80211 rapl input_leds uvcvideo libarc4 serio_raw hid_multitouch k10temp efi_pstore wmi_bmof videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev mc hp_wireless mac_hid acpi_tad sch_fq_codel ipmi_devintf ipmi_msghandler msr parport_pc ppdev lp parport drm ip_tables x_tables autofs4
[ 4.519748] rtw_drv_proc_init+0x3b/0xc8 [rtl8821ce]
[ 4.519884] rtw_drv_entry+0x28/0x1000 [rtl8821ce]
[ 4.520104] WARNING: CPU: 1 PID: 337 at /var/lib/dkms/rtl8821ce/5.5.2.1/build/os_dep/linux/rtw_proc.c:296 rtw_drv_proc_init+0x54/0xc8 [rtl8821ce]
[ 4.520220] Modules linked in: rtl8821ce(OE+) snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec snd_hda_core 8821ce(OE) snd_hwdep snd_pcm snd_seq_midi snd_seq_midi_event amdgpu(+) intel_rapl_msr snd_rawmidi intel_rapl_common iommu_v2 rtw88_8821ce gpu_sched drm_ttm_helper rtw88_8821c ttm edac_mce_amd rtw88_pci btusb snd_seq drm_kms_helper btrtl btbcm snd_seq_device cec btintel snd_timer rtw88_core rc_core bluetooth kvm snd_rn_pci_acp3x i2c_algo_bit fb_sys_fops snd snd_pci_acp3x syscopyarea ecdh_generic sysfillrect ecc sysimgblt ccp joydev soundcore mac80211 crct10dif_pclmul ghash_clmulni_intel aesni_intel hp_wmi crypto_simd platform_profile sparse_keymap cryptd cfg80211 rapl input_leds uvcvideo libarc4 serio_raw hid_multitouch k10temp efi_pstore wmi_bmof videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev mc hp_wireless mac_hid acpi_tad sch_fq_codel ipmi_devintf ipmi_msghandler msr parport_pc ppdev lp parport drm ip_tables x_tables autofs4
[ 4.520313] RIP: 0010:rtw_drv_proc_init+0x54/0xc8 [rtl8821ce]
[ 4.520453] rtw_drv_entry+0x28/0x1000 [rtl8821ce]
[ 4.520667] Error: Driver 'rtl8821ce' is already registered, aborting...
[ 4.608104] rtw_8821ce 0000:02:00.0 wlo1: renamed from wlan0
[ 6.682777] rtw_8821ce 0000:02:00.0: start vif UN:ID:EN:TI:FI:ED on port 0
[ 11.754652] rtw_8821ce 0000:02:00.0: sta UN:ID:EN:TI:FI:ED joined with macid 0
uname -r
5.13.0-39-generic**
lsmod | grep 8821
8821ce 1794048 0
rtw88_8821ce 16384 0
rtw88_8821c 94208 1 rtw88_8821ce
rtw88_pci 24576 1 rtw88_8821ce
rtw88_core 200704 2 rtw88_pci,rtw88_8821c
cfg80211 888832 3 rtw88_core,mac80211,8821ce
sudo dkms status
[sudo] password for x:
rtl8821ce, v5.5.2_34066.20200325, 5.13.0-39-generic, x86_64: built
编辑:我只是想填补一些导致我陷入这个不幸职位的难题,以便其他人可以从我的错误中吸取教训。
当这台计算机是开箱即用的新计算机时,我取出了带有 Windows 版本“n”的 SSD,并在打开设备电源之前用另一个空的新开箱即用 SSD 替换它。在安装 Ubuntu 20.04.3 LTS 之前,我从 USB Live 运行 Ubuntu 以确保它处于正常工作状态。在这次 Ubuntu Live 测试期间,WIFI 工作正常。
安装后WIFI不可用。我用手机连接起来,匆忙使用了满足明显条件的第一个答案。我安装了 rtl8821ce 驱动程序并重新启动。这让我的 WIFI 工作。但是,如上所述,这最终导致了后来的冲突。
在安装驱动程序之前请谨慎和耐心,寻求帮助并等待这个社区的好人来帮助你。:)
通过下面的步骤和答案,我有一个工作良好的 Wifi,包括最新的内核更新:5.15.0-41。
您的 wifi 在内核更新后不再工作,因为最新的内核包含一个不能很好工作的内置模块 rtw88_8821ce,此外,与您之前下载和安装的驱动程序冲突。让我们将其删除并将其列入黑名单:
您的 wifi 现在应该可以正常工作了,尽管它可能需要重新启动。
编辑:您可以通过列出正在使用的模块并过滤 8821 来验证正在使用的驱动程序:
您可以查看 dkms 安装了哪些驱动程序:
根据这些读数的结果,我将在另一个编辑中建议进一步的步骤。
您的 dmesg 中的这一行表明两个驱动程序存在冲突:
编辑 2:在我们的聊天中,我们发现存在三个冲突的驱动程序:8821ce、rtl8821ce 和本机内核驱动程序 rtw88_8821ce。
我们将其中两个列入黑名单,看看这三个中的哪一个可以正确驱动您的无线设备。我们继续列入黑名单并重新启动,直到我们发现最好的工作驱动程序是 rtw88_8821ce。我们将 blacklist.conf 文件保留在该状态。
然后我们从 dkms 中删除了其他驱动程序。最后,您的无线工作正常。