linux-kernel - 在启动时自动加载修改后的 'nvme' 设备驱动程序,而不是默认的 'nvme' 设备驱动程序

标签 linux-kernel linux-device-driver kernel-module device-driver

我已经修改了默认的“nvme”设备驱动程序以适合我的项目,并且我尝试在启动时自动加载修改后的 nvme 驱动程序 (mnvme),但我没有成功。

我已编辑/lib/modules/{kernel-version}/modules.alias 文件以包含“mnvme”而不是“nvme”,但默认的“nvme”不断加载。

我还看到 mnvme:模块验证失败:签名和/或所需 key 丢失 - 内核消息上的内核污染。

注意:我可以分别使用 rmmod 和 insmod 命令手动删除“nvme”并加载“mnvme”。我更喜欢在启动时自动执行

谢谢, 巴拉。

最佳答案

自动加载模块:

  1. 将与模块相关的所有 .ko 文件复制到 /lib/modules/{kernel-version}/kernel/ 下的相应位置,例如在 /lib/modules/4.1.19-v7+/kernel/drivers/nvme/ 下用于 nvme 驱动程序。

  2. 运行depmod -a。这应该会更新 modprobe 所需的信息,该信息用于自动加载修改后的模块。有关如何加载内核模块的有用资源是第 1.2 节“模块如何进入内核?”本指南的内容 http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf .

  3. 如果您修改了用户空间中所需的任何 header ,请确保更新 /usr/include 下的相关 header 文件。

为了避免污染消息,请提交您所做的更改,例如git commit -sam "....".

关于linux-kernel - 在启动时自动加载修改后的 'nvme' 设备驱动程序,而不是默认的 'nvme' 设备驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39878145/

相关文章:

c - 实现文件描述符

linux - 在 yocto 中使用 bitbake menuconfig 进行内核配置?

java - 使用屏幕驱动程序注入(inject)触摸事件

linux - 在 linux 中调用中断处理程序的下半部分的函数

linux - select() api 返回正值但从串口读取时触发错误

linux - 为什么 call_usermodehelper 大多数时候都失败了?

使用 Linux netfilter 将源 IP 地址从 struct iphdr* 转换为等效字符串

linux - 如何通过 Bus、Device、Function 和 Offset 获取物理地址

linux - Linux 内核中的 DECLARE_COMPLETION_ONSTACK 功能

ubuntu - kubernetes pod 中的核心转储大小为 0