ubuntu20解决intel wifi 驱动问题

ubuntu20解决intel wifi 驱动问题

产生问题条件

复制代码
1. 内核版本 5.15.0-139-generic
bash 复制代码
uname -a
Linux wj 5.15.0-139-generic #149~20.04.1-Ubuntu SMP Wed Apr 16 08:29:56 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
复制代码
2. wifi 硬件型号 Intel AX211
bash 复制代码
   lspci -nn | grep -i net
    00:14.3 Network controller [0280]: Intel Corporation Device [8086:51f1] (rev 01)
    02:00.0 Ethernet controller [0200]: Intel Corporation Device [8086:15f3] (rev 03)
    03:00.0 Ethernet controller [0200]: Intel Corporation Device [8086:15f3] (rev 03)

快速解决方法

1、 更新最新固件

bash 复制代码
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-so-a0-hr-b0-77.ucode
cd linux-firmware/

覆盖之前wifi 固件
sudo cp iwlwifi-* /lib/firmware/

2、 驱动安装

bash 复制代码
git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git
cd backport-iwlwifi

失败处理之 修改为本系统当前版本 API接口

将下面代码差异diff 到backport-iwlwifi/backport-include/linux/timer.h

c 复制代码
diff --git a/backport-include/linux/timer.h b/backport-include/linux/timer.h
index d4faec0a5..d8a661da9 100644
--- a/backport-include/linux/timer.h
+++ b/backport-include/linux/timer.h
@@ -3,6 +3,8 @@
 
 #include_next <linux/timer.h>
 
+
+
 #ifndef setup_deferrable_timer
 /*
  * The TIMER_DEFERRABLE flag has not been around since 3.0 so
@@ -67,6 +69,7 @@ static inline void timer_setup(struct timer_list *timer,
 		__TIMER_INITIALIZER(_function, 0, 0, 0)
 #endif
 
+#if 0
 #if LINUX_VERSION_IS_LESS(6,2,0)
 static inline int timer_shutdown(struct timer_list *t)
 {
@@ -79,6 +82,7 @@ static inline int timer_shutdown_sync(struct timer_list *t)
 }
 #endif
 
+#endif
 /* This was backported to 4.19.312 and 5,4,274, but we do not support such high minor numbers use 255 instead. */
 #if LINUX_VERSION_IS_LESS(6,1,84) &&			\
 	!LINUX_VERSION_IN_RANGE(4,19,255, 4,20,0) &&	\
@@ -91,6 +95,7 @@ static inline int timer_delete_sync(struct timer_list *timer)
 }
 #endif /* < 6.1.84 */
 
+#if 0
 #if LINUX_VERSION_IS_LESS(6,2,0)
 static inline int timer_delete(struct timer_list *timer)
 {
@@ -98,6 +103,33 @@ static inline int timer_delete(struct timer_list *timer)
 }
 #endif
 
+
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
+
+static inline int timer_shutdown(struct timer_list *t)
+{
+    del_timer(t);
+    return 0;
+}
+
+static inline int timer_shutdown_sync(struct timer_list *t)
+{
+    del_timer_sync(t);
+    return 0;
+}
+
+static inline int timer_delete(struct timer_list *timer)
+{
+    del_timer(timer);
+    return 0;
+}
+
+#endif /* < 5.15 */
+
+
+
 #ifndef timer_container_of
 #define timer_container_of from_timer
 #endif

安装驱动

bash 复制代码
make defconfig-iwlwifi-public
sudo make install
bash 复制代码
重启电脑
reboot

重启电脑大工搞成

相关推荐
wuyk5557 小时前
第2章:六步换相原理全解+STM32工程实战
c语言·开发语言·stm32·单片机·嵌入式硬件
数智工坊7 小时前
Zotero自建Ubuntu WebDAV附件同步方案(完美解决存储空间不足)
linux·运维·ubuntu
ltl8 小时前
HTTP/3 实战:从 QUIC 到 H3 的完整请求链路
linux
ltl8 小时前
POSIX 文件锁:flock、fcntl 与 NFS 上的工程陷阱
linux
ltl9 小时前
CUDA 生态:cuBLAS、cuDNN、NCCL、Triton、CUTLASS
linux
饺子大魔王的男人9 小时前
CentOS部署Cockpit:图形化查看系统、日志与服务状态
linux·运维·centos
不会就选b9 小时前
Linux之信号(二)
linux·运维·服务器
我是小灰灰吖10 小时前
QT在线安装器使用指南:从下载到配置完整教程
linux·qt·ubuntu
GlueNa2SiO310 小时前
第十八章 Linux故障排查与恢复
linux·服务器·笔记·学习
小僧景贤11 小时前
单片机全方位调试实战指南:串口/RTT/逻辑分析仪/示波器/内核排错分层避坑教程
单片机·嵌入式硬件·物联网