如何修复启动后无法检测到 USB WiFi 设备的问题,除非重新插入并手动加载驱动程序模块?

如何修复启动后无法检测到 USB WiFi 设备的问题,除非重新插入并手动加载驱动程序模块?

前言

在搜索网络并尝试了几个故障排除步骤后,我现在需要您的帮助来解决我的 USB WiFi 设备的非常具体的问题:

# lsusb
Bus 001 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

该芯片应该受支持rtl8192cu,但实际上似乎并不支持,因为操作系统根本没有检测到它。我继续编译了一个自定义内核,包括(实验性)rtl8xxxu驱动程序模块。

# uname -r
6.1.57+rtl8xxxu

(与默认的 6.1.57 内核相比,唯一的变化是包含相应的驱动程序)。

我也将替代驱动程序列入黑名单

# cat /etc/modprobe.d/rtl8192cu.conf 
blacklist rtl8192cu

重新启动(并重新插入 USB 设备,见下文)后,现在终于lsusb检测到了它。

在故障排除过程中,我还设置了 DMA 聚合和双频 2.4 GHz 选项(实际上我并不能 100% 确定这会做什么)。

# cat /etc/modprobe.d/rtl8xxxu.conf 
options rtl8xxxu ht40_2g=1 dma_aggregation=1

我使用 KDE Plasma DE 运行 Debian 12。

问题

现在我面临的问题有两个:

  • a) 仅当我在每次系统启动后拔下并重新插入 USB 加密狗时,才会检测到 USB 加密狗dmesg在我拔下并重新插入它之前,也不会 显示lsusb有关该棒的任何信息。 (请注意,我之前在 Ubuntu 20.04 + MATE DE 中遇到过完全相同的行为)
  • b) 驱动程序模块似乎只有在启动后手动加载时才能工作 我希望驱动程序模块在启动时自动加载,因此我将相应的条目添加到modules.conf
# cat /etc/modules-load.d/modules.conf 
rtl8xxxu

它根据正在加载的模块起作用。然而,同样,根本没有检测到 WiFi dongle,两者都不拔掉并重新插入后也不modprobe使用(-r分别)卸载并重新加载驱动程序模块后

关于A)我假设加密狗具有某种能量设置,因为这可以解释需要重新插入已启动的系统。请注意,我检查了 UEFI(“BIOS”)的能源选项,但我无法确定任何重要性(但是,我对这些也不太了解)。

关于b)我只是感到痛苦和沮丧,因为这对我来说根本没有意义。

问题

  1. 如何强制从软件启动后检测到 USB 加密狗? (我应该使用模块化编译内核usbcore/usb_common modules以在启动后重新加载它们吗?)
  2. 存在哪些可能的 UEFI(“BIOS”)设置可能导致 USB 加密狗在启动后未被检测到?
  3. 为什么驱动程序在启动时加载时无法工作,如何排除故障并修复此问题?
  4. 我怎样才能继续解决这两个问题?

请注意,我尚未包含任何日志,但试图解释我所取得的进展。但是,如果您需要特定的日志,请毫不犹豫地命名它们。

非常感谢您的帮助!充满爱和快乐的黑客

相关内容