我已经下载了固件并复制到/lib/firmware
英特尔 ax201 固件文件夹中
如何在内核的 .config 上配置 CONFIG_FW_LOADER 定义。以在 iwlwifi 模块上启用 ax201?
操作系统:Ubuntu 20.04.3 LTS
内核版本:5.11.0-40-generic
答案1
所以我刚刚在 Ubuntu 23.10 上使用 Beelink S12 Pro 时遇到了一个相关问题。我无论如何都无法让 wifi 或蓝牙正常工作。在研究这个主题时,我尝试了所有日志记录命令,但我一直看到有关缺少固件的错误,我的设备看到的是 AX101 或通用英特尔适配器,具体取决于我检查的日志。(请注意,从后面看,似乎我确实有 AX101,从 Beelink 文档中确定这一点非常困难)
在为这个问题浪费了太多时间后,我终于明白了发生了什么,并找到了解决方案。我将其留在这个帖子中,以防其他人遇到类似情况。
本质上,你需要知道的是,这里有两个主要组件在工作——驱动程序和固件。驱动程序是iwlwifi
,固件是.ucode
你在/lib/firmware/
我的理解是,驱动程序有许多预定义的固件,它会根据检测到的适配器来查找这些固件。在这种情况下,驱动程序检测到一个相对较新的适配器,该适配器在与 Ubuntu 捆绑在一起的 linux-firmware 包中没有匹配的固件。您将会阅读大量关于确保您的内核高于 6.2 的内容,如果您在 2023 年使用一些旧的内核,情况可能就是这样,但这只是一种转移注意力的说法。
您需要做的是转到此页面:https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi并查找由 intel 维护的 linux-firmware 包 (iwlwifi/linux-firmware),然后将 git repo 克隆到您的计算机。为了我自己的测试,我还复制了尚未在 apt 上的常规 linux-firmware 的最新版本,但我相信这是可选的(这不在 intel 页面上,您必须在 google 上找到它)。那里有 4 个包,我相信只有 backports 包在较旧的内核上是必需的,而 fixes/next 与活跃的开发相关,对我们这里没有帮助。
从那里,您会在 Intel 页面上找到一个部分,其中包含命令:cp iwlwifi-*.{ucode,pnvm} /lib/firmware/
后面跟着指令“加载驱动程序”。具体该怎么做有点神秘和令人困惑,但基本上您需要做的就是 cd 进入您克隆的 git repo,并以 sudo 身份运行该命令,覆盖文件夹中的所有英特尔固件文件/lib/firmware/
。我首先执行了英特尔管理的那个,然后执行了官方包,因为它似乎是最近才维护的。然后重置您的计算机。
这将用好的固件替换所有英特尔固件,您的 wifi 现在应该可以正常工作了!遗憾的是,这并没有帮我修复蓝牙问题,但我想每次只能解决一个问题。
我希望这能帮助到未来一些失意的人。祝你好运!
编辑:事实证明,如果您在日志中看到以下内容,您也可以使用相同的解决方案来修复蓝牙。
首先运行此命令:sudo dmesg | grep -i blue
如果您在其中看到有关缺少固件文件intel/ibt-0040-1050.sfi
(或类似文件)的信息,您需要做的就是返回到您克隆的 linux-firmware 仓库(我只使用了最新的一个,而不是 iwlwifi 那个)并运行此命令:(sudo cp intel/ibt-* /lib/firmware/intel/
显然要仔细检查您的文件路径)。
第二次编辑:我又回来了,因为我前几天启动时我的 wifi 又坏了!事实证明,即使经过上述修复,英特尔在 Linux 上对 wifi 6 的支持仍然很糟糕。要确定您是否遇到同样的问题,请检查您的路由器是否是 wifi 6 路由器。如果是,请运行以下命令并查找此错误:Microde SW error detected. Restarting 0x0.
sudo dmesg | grep iwlwifi
如果看到它,解决方案是通过执行以下操作在设备上禁用 Wi-Fi 6:
- 以 root 身份使用您最喜欢的编辑器打开此文件:
/etc/modprobe.d/iwlwifi.conf
- 将其写入并保存到文件底部:
options iwlwifi disable_11ax=1
- 跑步
sudo update-initramfs -k all -u
- 重新启动计算机
这应该可以解决问题!
希望这是我最后一次编辑,我永远不必再回到这条评论。祝愿找到这条评论的人好运。
答案2
最后在 中找到配置路径/boot/{kernel name}
。
默认CONFIG_FW_LOADER
设置为 y。
所以这不是导致无法在 Ubuntu 20.04 上使用 ax201 的原因。我需要尝试其他方法来解决这个问题。