实际上,我是一个初学者,我正在努力学习低级别和高级别的概念。我想知道一个模块如何依赖于其他模块进行操作。
我已经完成了lsmod命令。我在输出中找到这些行。

parport_pc             25962  1
lp                      7028  0
parport                32635  3 ppdev,parport_pc,lp

从上面的几行中,我了解到存在如下模块:
帕波特
有限合伙人
帕尔波特
我在parport_pc.c目录中找到了源代码lp.c/usr/src/drivers/parport。但在我的整个文件系统中找不到parport的源代码。即使我在里面找到了parpot.ko
同样在目录/lib/modules/linux2.6.32-37-generic/kernel/parport中,我在makefile中看到了一行,
obj-$(CONFIG_PARPORT)       += parport.o

那么在哪里可以找到/usr/src/drivers/parport文件?我用命令搜索了整个文件系统
find / -name parport.c

但没有结果。为什么文件parport.c丢失?

最佳答案

parport.o文件是从多个.c文件编译而来的,包括share.cieee1284.cieee1284_ops.cprocfs.c,可能还包括daisy.cprobe.c,所有这些文件都位于Linux源代码的drivers/parport/目录下。(此信息取自Linux3.5-rc3-00203-g8874e81,它比您正在查看的内核稍新,但并行端口驱动程序没有太大变化)。
为了找到这些信息,我查看了相同的Makefile,注意到parport-objs变量最初设置为share.o ieee1284.o ieee1284_ops.o procfs.o,如果daisy.o probe.o设置为CONFIG_PARPORT_1284,则添加y

08-27 21:23