无法在 WSL 2 中插入自定义 Linux 内核模块

无法在 WSL 2 中插入自定义 Linux 内核模块

操作系统:Windows 11,WSL2(Ubuntu 22.04)

在 WSL2 内部,命令uname -r返回:5.15.90.1-microsoft-standard-WSL2

首先,我从 Github 下载了正确版本的 Linux 内核:WSL2-Linux 内核然后我编译并安装了它,并使用以下命令从 /lib/modules 创建到 /usr/src 的软链接:

sudo ln -s /lib/modules/5.15.90.1-microsoft-standard-WSL2 /usr/src/5.15.90.1-microsoft-standard-WSL2

我使用 C: 编写了一个自定义内核模块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

然后hello.ko文件就成功生成了。但是当我运行命令时,insmod hello.ko它抛出了如下错误:

insmod: ERROR: could not insert module hello.ko: Invalid module format

如何修复?

相关内容