ベアボーンLinuxデバイスドライバモジュールをロードしようとしていますが、この問題はdmesgで引き続き発生します。
module dummydriver: .gnu.linkonce.this_module section size must match the kernel's built struct module size at run time
モジュールをロードしようとすると、次のメッセージが表示されます。
insmod: ERROR: could not insert module dummydriver.ko: Invalid module format
私が知っている限り、私のカーネルバージョンはモジュールのビルドに使用したバージョンと一致し、以下のようにPop OS 22.04を実行していますuname -r
。
6.5.6-76060506-generic
- ドライバーコード:
#include <linux/module.h> #include <linux/version.h> #include <linux/kernel.h> static int __init driver_init(void) { printk(KERN_INFO "bababooey :D"); return 0; } static void __exit driver_exit(void) { printk(KERN_INFO "bababooey :("); } module_init(driver_init); module_exit(driver_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("dude"); MODULE_DESCRIPTION("driver");
- ファイル生成:
obj-m = dummydriver.o KVERSION = $(shell uname -r) all: make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) modules clean: make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) clean
- 出力の場合:
make -C /lib/modules/6.5.6-76060506-generic/build M=/home/david/Programming/dummydriver modules make[1]: Entering directory '/usr/src/linux-headers-6.5.6-76060506-generic' CC [M] /home/david/Programming/dummydriver/dummydriver.o MODPOST /home/david/Programming/dummydriver/Module.symvers CC [M] /home/david/Programming/dummydriver/dummydriver.mod.o LD [M] /home/david/Programming/dummydriver/dummydriver.ko make[1]: Leaving directory '/usr/src/linux-headers-6.5.6-76060506-generic'
モジュールに署名し、セキュアブートをオフにしようとしましたが、まだdmesgで初期エラーが発生します。誰でも提案があればありがとうございます。