gpt4 book ai didi

c - 一个简单的linux设备驱动程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:59:26 25 4
gpt4 key购买 nike

包括

#include<linux/module.h>
#include<linux/init.h>

int my_init(void){
printk("<1> Angus : Module Insertion is successful!");
return 0;
}

void my_cleanup(void){
printk("<1> Angus : Module unloading successful!");
}

module_init(my_init);
module_cleanup(my_cleanup);

生成文件:

obj-m:=simple.o
aoll:
make -C /usr/src/linux-headers-3.2.0-25-generic-pae/ M=$(PWD) modules
clean:

make -C /usr/src/linux-headers-3.2.0-25-generic-pae/ M=$(PWD) clean

make -C => 将在执行 make 之前更改目录,在这个路径/usr/src/linux-headers-3.2.0-25-generic-pae/我有 Makefile ,为什么需要 M=$(PWD) ?它有什么作用,我可以在哪里检查 $PWD ?/usr/src/linux-headers-3.2.0-25-generic-pae/中的 Makefile 具有目标 all:modules 和目标模块,并且具有干净的目标。什么是 obj-m?

最佳答案

您最好阅读Linux 设备驱动程序,第 3 版(可在 http://oreilly.com/openbook/linuxdrive3/book/index.html 上免费获得)第 24 页的段落。

-C 选项可以将目录更改为提供的目录。在那里,它找到了内核的顶级 Makefile。然后,M= 选项会导致 Makefile 在尝试构建模块目标之前移回模块源目录($PWD 是一个包含当前模块路径的变量目录)。

obj-m 是一个包含要构建的内核模块列表的变量(参见 https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt )。

关于c - 一个简单的linux设备驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com