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

重启电脑大工搞成

相关推荐
AI的探索之旅3 小时前
AI辅助原理图评审:电源去耦、BOOT引脚、VCAP——19项逐一核查,遗漏?不存在的
人工智能·vscode·嵌入式硬件
茯苓gao3 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
GeekArch3 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
groundhappy3 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕4 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
Freedom_my4 小时前
STM32项目3
stm32·单片机·嵌入式硬件
张小姐的猫5 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
国科安芯5 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
栩栩云生5 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
小李不困还能学6 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器