内核源码树
COPYING文件是内核许可证,CREDITS是开发了很多内核代码的开发者列表,MAINTAINERS是维护者列表,它们负责维护内核子系统和驱动程序,makefile是基本内核的makefile
向内核插入驱动模块
命令:insmod xxx.ko
ko文件由.c文件编译得来,该.c没有main函数
向内核删除驱动模块
rmmod xxx.ko
查看内核驱动模块
lsmod
插入到内核中的驱动在哪里
在/dev/xxx里,这个是由mknod /dev/xxx创建的,然后插入驱动就会自动进入这里,为什么呢
因为xxx.c文件里会定义一个主设备号,/dev/xxx文件也有一个主设备号,一一对应的,查看文件的这设备号可以用 ls -l /dev/xxx来查看,crw-r--r-- 1 root root 96,0 jul ....,其中96,0就是主设备号和次设备号
简单来说就是:/dev/xxx与xxx.ko的联系就是由主设备号联系,可以互相找到
使用驱动模块
如果是对驱动文件进行读写打开关闭操作,操作的函数都是执行xxx.c里的函数,比如read驱动文件,就是调用xxx.c里的read函数,"file_operations" 通常是指 Linux 内核中的一个结构体,用于定义文件操作的函数指针集合。这个结构体通常用于设备驱动程序中,其中的函数指针会指向设备驱动程序实现的特定功能,比如读取文件、写入文件、定位文件指针等等