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

重启电脑大工搞成

相关推荐
wj3055853784 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
abigriver5 小时前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
wangqiaowq5 小时前
windows下nginx的安装
linux·服务器·前端
YYRAN_ZZU6 小时前
Petalinux新建自动脚本启动
linux
charlie1145141916 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
于小猿Sup6 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y7 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
chao1898448 小时前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
不仙5208 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
AI视觉网奇9 小时前
linux 检索库 判断库是否支持
java·linux·服务器