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

重启电脑大工搞成

相关推荐
坂田民工2 小时前
RK3566 AB升级功能
linux·rk3566·buildroot·ab升级
余生皆假期-2 小时前
硬件基础知识补全【四】通用、整流和肖特基二极管
单片机·嵌入式硬件
SakitamaX2 小时前
LVS(Linux virual server)介绍与实验
linux·运维·lvs
小义_2 小时前
【Docker】知识八
linux·docker·云原生
开开心心_Every3 小时前
CDR版本转换工具,支持多版本互转免升级软件
linux·运维·服务器·云原生·edge·pdf·serverless
czhaii3 小时前
双直流电机BTS7960模块正反转程序
单片机·嵌入式硬件
czxyvX3 小时前
009-Linux程序地址空间
linux
苏宸啊3 小时前
进程的概念
linux
yuezhilangniao3 小时前
程序人生-杂谈-简单对比一下 学霸和linux科学设计
linux·程序人生·职场和发展
只想恰口饭3 小时前
程序人生-Hello’s P2P
linux·c语言·ubuntu