首页 > 解决方案 > YOCTO:无法将 linux 模块插入内核:版本不同

问题描述

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

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

但是出现了一个错误:

uleds:版本魔法“4.14.88-01445-g234c56a01768-dirty mod_unload ARMv7 p2v8”应该是“4.14.73-linux4sam-6.0-dirty mod_unload ARMv7 p2v8”

uleds:版本魔法“4.14.88-01445-g234c56a01768-dirty mod_unload ARMv7 p2v8”应该是“4.14.73-linux4sam-6.0-dirty mod_unload ARMv7 p2v8”

insmod:无法插入'/lib/modules/4.14.73-linux4sam-6.0-dirty/kernel/drivers/leds/uleds.ko':无效模块

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

标签: embedded-linuxyoctokernel-module

解决方案


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

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

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


推荐阅读