实际上,我是一个初学者,我正在努力学习低级别和高级别的概念。我想知道一个模块如何依赖于其他模块进行操作。
我已经完成了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.c
、ieee1284.c
、ieee1284_ops.c
和procfs.c
,可能还包括daisy.c
和probe.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
。