WSL2环境下自定义Linux内核模块无法插入的问题求助
WSL2环境下自定义Linux内核模块无法插入的问题求助
各位好,我最近在WSL2环境里尝试编译并加载自己写的Linux内核模块时遇到了问题,想请大家帮忙分析解决一下。
先说明一下我的环境:
- 主机系统:Windows 11,子系统是WSL2(Ubuntu 22.04)
- WSL2当前内核版本:执行
uname -r返回5.15.90.1-microsoft-standard-WSL2
我做的操作步骤如下:
- 首先获取了对应版本的WSL2 Linux内核源码,完成编译和安装后,创建了一个软链接,命令是:
sudo ln -s /lib/modules/5.15.90.1-microsoft-standard-WSL2 /usr/src/5.15.90.1-microsoft-standard-WSL2 - 接着我写了一个简单的内核模块源码
hello.c,并配套了Makefile,内容如下:obj-m := hello.o all:make -C /usr/src/`uname -r` M=$PWD modules clean:make -C /usr/src/`uname -r` M=$PWD clean - 在
hello.c所在的目录下,我执行了编译命令,成功生成了hello.ko文件,命令是:make -C /usr/src/`uname -r`/build M=$PWD
但当我尝试用insmod hello.ko命令加载这个模块时,却弹出了错误:
insmod: ERROR: could not insert module hello.ko: Invalid module format
有没有朋友遇到过类似的问题?或者能指点一下我哪里操作错了,该怎么修复这个问题呢?
备注:内容来源于stack exchange,提问作者EdmondSong




