You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

WSL2环境下自定义Linux内核模块无法插入的问题求助

WSL2环境下自定义Linux内核模块无法插入的问题求助

各位好,我最近在WSL2环境里尝试编译并加载自己写的Linux内核模块时遇到了问题,想请大家帮忙分析解决一下。

先说明一下我的环境:

  • 主机系统:Windows 11,子系统是WSL2(Ubuntu 22.04)
  • WSL2当前内核版本:执行uname -r返回 5.15.90.1-microsoft-standard-WSL2

我做的操作步骤如下:

  1. 首先获取了对应版本的WSL2 Linux内核源码,完成编译和安装后,创建了一个软链接,命令是:
    sudo ln -s /lib/modules/5.15.90.1-microsoft-standard-WSL2 /usr/src/5.15.90.1-microsoft-standard-WSL2
    
  2. 接着我写了一个简单的内核模块源码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
    
  3. 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

火山引擎 最新活动