强制修改.ko文件中的内核版本号与内核对应

当需要一个ko在一个内核下编译,insmod到另一个内核时,

1、include/config/kernel.release文件中为内核版本号,将其改为所需版本。

 
2、include/generated/utsrelease.h文件中 #define UTS_RELEASE “XXX” 将xxx改为自己所需内核版本号 。


3、include/linux/vermagic.h文件改为与另一内核相同。

注意:这样修改并保存后,编译出来的.ko文件里面的版本信息就更改了,但是重新编译内核时会变回与makefile中的一样得内核版本信息。

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要生成不同版本的 Linux 内核通用的 .ko 模块,可以按照以下步骤进行: 1. 安装内核源代码和译工具链 在 Linux 系统,可以通过包管理器安装内核源代码和译工具链。例如,在 Ubuntu 系统,可以使用以下命令来安装: ``` sudo apt-get install linux-source build-essential ``` 2. 解压内核源代码 在安装完内核源代码后,需要解压到本地,解压后会生成一个源代码目录。可以使用以下命令来解压: ``` tar xvf linux-source-版本号.tar.xz ``` 3. 进入内核源代码目录,并译模块 进入解压后的内核源代码目录,使用以下命令进行译: ``` make modules ``` 译完成后,会在内核源代码目录的 /lib/modules/版本号 目录下生成 .ko 模块文件。 4. 使用生成的 .ko 模块 生成的 .ko 模块可以在不同版本的 Linux 内核使用。如果要使用该模块,需要将该模块文件放到系统的 /lib/modules/版本号/kernel/drivers 目录下,并执行以下命令更新模块依赖关系: ``` depmod -a ``` 然后,可以通过 modprobe 命令加载该模块: ``` modprobe 模块名 ``` 加载成功后,可以通过 lsmod 命令查看已加载的模块信息: ``` lsmod ``` 如果要卸载该模块,可以使用以下命令: ``` rmmod 模块名 ``` 卸载成功后,可以通过 lsmod 命令查看已加载的模块信息,确认该模块已被卸载。 总之,要生成通用的 .ko 模块,需要在相同的内核版本下进行译,然后将生成的模块文件放到不同版本内核使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值