如何修复明显缺失的内核模块依赖声明?

Ale*_*xey 7 drivers usb configuration kernel-modules dependencies

我遇到了 ASIX AX88179 USB 3.0 千兆位以太网适配器的一个相对常见的问题,它根本无法工作,或者偶尔工作,并且dmesg显示如下错误

[23552.344134] ax88179_178a 2-1:2.1 eth1: Failed to read reg index 0x0000: -32
Run Code Online (Sandbox Code Playgroud)

在网上搜索时,我发现了有关此问题或类似问题的报告,但没有令人满意的解决方案或解释。

经过一番调试,发现如果cdc_mbim之前加载了模块,问题就解决了ax88179_178a。以下解决了该问题,直到下次重新启动为止:

# rmmod ax88179_178a
# modprobe cdc_mbim
# modprobe ax88179_178a  # optional
Run Code Online (Sandbox Code Playgroud)

我已经检查过没有直接或间接cdc_mbim声明为 的依赖项。ax88179_178a

我怎样才能使ax88179_178a依赖cdc_mbim,以便cdc_mbim始终自动加载ax88179_178a


更新。

我的问题似乎与Create Linux module dependency for autoloading module重复。

lig*_*123 6

一个类似但稍微简洁的策略也涉及文件 in modprobe.d/,即使用该softdep功能告诉在 之前modprobe加载。在:cdc_mbimax88179_178a/etc/modprobe.d/ax88179.conf

softdep ax88179_178a pre: cdc_mbim
Run Code Online (Sandbox Code Playgroud)