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),然后构建您的模块。
我正在使用 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),然后构建您的模块。