把ko文件转化为.o

把ko文件转化为.o,第1张

不可转化。我们知道,Linux下文件的类型并不像windows一般依赖于其后缀名,在linux下后缀名是可有可无的,但是为了区分,有些文件还是加了后缀名,.ko是kernelobject的缩写,是Linux2.6内核使用的动态连接文件,在Linux系统启动时加载内核模块,.o是相当于windows中的.obj文件,注意:.ko与.o的区别在于,.ko是linux2.6内核编译之后生成的,多了一些module信息,如author,license之类的。.o文件则是linux2.4内核编译生成的。

假设模块的源文件为hello.c,源码如下:

使用该文件编译内核模块。

正常情况下,Makefile文件内容如下:

执行 make 命令,生成hello.ko文件。

执行 sudo insmod hello.ko 命令,安装该模块。

执行 lsmod 命令,查看安装的模块。就会看到第一行的就是hello模块。

但是,如果想自定义模块名称为 xmodule ,而不是默认的 hello ,如何实现呢?方法如下:

在Makefile中重命名obj-m并将obj-m的依赖关系设置为原始模块(hello)

修改后的Makefile文件内容如下:

将obj-m设置为 xmodule .o,并使 xmodule .o依赖于 hello .o.

执行 make 命令后,生成 xmodule .ko, 而不是 hello .ko,

安装命令: sudo insmod xmodule.ko

查看命令: lsmod ,就会看到被安装名为 xmodule 的模块。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8546452.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存