在5.3.0-45-generic內核上,使用5.3.0的源碼編譯kvm,在modprobe kvm時,出現了錯誤:
modprobe: ERROR: could not insert ‘kvm’: Exec format error
使用dmesg發現以下log:
kvm: version magic '5.3.0 SMP mod_unload ’ should be '5.3.0-45-generic SMP mod_unload
查閱資料后發現,只需要將源碼中的Makefile文件修改為當前運行內核的版本號即可:
VERSION = 5
PATCHLEVEL = 3
SUBLEVEL = 0
EXTRAVERSION = -45-generic
然后重新生成.config文件,編譯module並modprobe即可
不太確定這種方法在版本號相差很大的內核和源碼之間是否可行!