You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2 Ubuntu中insmod加载first.ko提示Invalid module format问题求助

解决WSL2驱动模块insmod报错“Invalid module format”问题

核心原因:模块与当前运行内核版本/配置不匹配,以下是逐一排查修复步骤

1. 确认当前运行内核版本

在WSL终端执行命令,记录输出的版本号:

uname -r

2. 核对内核源码与运行版本一致性

  • 进入你的WSL2-Linux-Kernel源码目录,执行:
    make kernelversion
    
    输出的版本必须和uname -r完全一致。若不一致:
    • 检查.wslconfig中的kernel路径是否正确(可改用正斜杠简化路径,比如C:/Users/Lenovo/bzimage)
    • 执行wsl --shutdown关闭所有WSL实例,重新启动后再次验证版本

3. 补全内核模块安装步骤

编译内核时仅生成bzImage是不够的,需要将模块文件安装到系统目录:
进入内核源码目录执行:

sudo make modules_install

该命令会将编译好的模块及依赖文件安装到/lib/modules/[内核版本]/目录下,这是模块正常加载的必要前提

4. 修正模块编译的Makefile

确保Makefile中的内核源码路径准确,避免相对路径引发的错误,示例:

obj-m:=first.o
# 替换为你的内核源码绝对路径
KERNEL_DIR := /home/你的用户名/WSL2-Linux-Kernel
all:
    make -C $(KERNEL_DIR) M=$(PWD) modules
clean:
    make -C $(KERNEL_DIR) M=$(PWD) clean

重新执行make编译模块

5. 检查内核配置的模块支持

进入内核源码目录,打开配置界面:

make menuconfig

确保以下选项已开启(空格键选择,*或m均可,需开启基础模块支持):

  • Loadable module support ---> → Enable loadable module support
  • Loadable module support ---> → Enable module unloading

保存配置后重新编译内核和模块:

make -j$(nproc)
sudo make modules_install

替换bzImage后重启WSL

6. 验证模块兼容性

编译完成后,查看模块信息核对版本:

modinfo first.ko

检查输出中的version字段是否与uname -r完全一致,不一致则说明编译时使用了错误的内核源码

内容的提问来源于stack exchange,提问作者OpOp_1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:15:58