编辑和编译内核模块

问题描述

我正在尝试从内核源代码编辑一个模块,并将其编译为内核5.4.0-40-generic #44-Ubuntu

这是我的方法

    git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal
    git checkout -b temp Ubuntu-5.4.0-40.44
    nano drivers/media/usb/siano/smsusb.c
    make oldconfig
    make prepare
    make modules_prepare
    make SUBDirs=scripts/mod
    make SUBDirs=drivers/media/usb/siano modules
    cd drivers/media/usb/siano/
    insmod smsusb.ko
    

我收到此错误

insmod:错误:无法插入模块 drivers / media / usb / siano / smsusb.ko:无效的模块格式

我的问题是:

  1. “无效的模块格式”建议该模块已编译为其他版本,尽管我签出了正确的版本,这是什么问题?
  2. 为什么我需要编译整个内核,这会花费很多时间,是否有更好的方法来仅编译一个模块?

更新

我将.ko复制到/ lib / modules / ... 之后,我插入了与内核模块相对应的设备,这导致dmesg中出现以下错误

version magic'5.4.44+ SMP mod_unload'应该是'5.4.0-40-generic SMP mod_unload'

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)