其实我是初学者,我正在尝试学习低级驱动程序和高级驱动程序的概念。我想知道模块如何依赖其他模块进行操作。
我已完成lsmod
命令。我在输出中找到了这些行。
parport_pc 25962 1
lp 7028 0
parport 32635 3 ppdev,parport_pc,lp
从以上几行来看,我明白存在类似的模块,
- parport_pc
- LP
- parport
我在目录parport_pc.c
中找到了源代码lp.c
,/usr/src/drivers/parport
。但我在整个文件系统中找不到parport
的源代码。即使我在parpot.ko
内找到了/lib/modules/linux2.6.32-37-generic/kernel/parport
。
同样在目录/usr/src/drivers/parport
中,我在Makefile中看到了一行,如
obj-$(CONFIG_PARPORT) += parport.o
那我在哪里可以找到parport.c
文件?我使用命令
find / -name parport.c
但没有结果。为什么文件parport.c
丢失了?
答案 0 :(得分:2)
parport.o
文件是根据多个.c
文件编制的,包括share.c
,ieee1284.c
,ieee1284_ops.c
和procfs.c
,可能还包括daisy.c
和probe.c
,全部位于Linux源的drivers/parport/
目录下。 (此信息来自Linux 3.5-rc3-00203-g8874e81,它比您正在查看的内核稍微新一点,但并行端口驱动程序不再发生太大变化)。
要查找此信息,我查看了相同的Makefile
,并注意到parport-objs
变量最初设置为share.o ieee1284.o ieee1284_ops.o procfs.o
,daisy.o probe.o
已添加CONFIG_PARPORT_1284
}设置为y
。