YOCTO:无法将 linux 模块插入内核:版本不同

YOCTO : can't insert linux module to the kernel : versions are different

我正在使用 YOCTO PROJECT 为我的嵌入式板构建 linux os。 我有一个名为 uleds 的模块,我想将其插入我的内核,所以我录制了这个 insmod 命令:

insmod /lib/modules/4.14.73-linux4sam-6.0-dirty/kernel/drivers/leds/uleds.ko

但是出现错误:

uleds: version magic '4.14.88-01445-g234c56a01768-dirty mod_unload ARMv7 p2v8 ' should be '4.14.73-linux4sam-6.0-dirty mod_unload ARMv7 p2v8 '

uleds: version magic '4.14.88-01445-g234c56a01768-dirty mod_unload ARMv7 p2v8 ' should be '4.14.73-linux4sam-6.0-dirty mod_unload ARMv7 p2v8 '

insmod: can't insert '/lib/modules/4.14.73-linux4sam-6.0-dirty/kernel/drivers/leds/uleds.ko': invalid module

我看到我的 linux 内核版本和模块版本不一样。我的问题是如何解决这个问题,以便将模块插入内核?

该模块未使用与您的内核(在嵌入式设备上)相同的版本编译。

您只需使用正确的内核编译模块即可。

您需要在 Yocto 的 meta 中找到您的内核配方,下载它(将下载的内核的存储库重置为配方的 SRCREV),然后构建您的模块。