1

实际上我是一个初学者,我正在尝试学习低级驱动程序和高级驱动程序的概念。我想知道一个模块是如何依赖其他模块来运行的。

我已经完成了lsmod命令。我在输出中找到了这些行。

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

从以上几行,我了解到存在这样的模块,

  • parport_pc
  • LP
  • 看台

我在目录中找到了源代码parport_pc.c, 。但是我在整个文件系统中找不到源代码。尽管我在里面找到了。同样在目录中,我在 Makefile 中看到了一行,例如,lp.c/usr/src/drivers/parportparportparpot.ko/lib/modules/linux2.6.32-37-generic/kernel/parport/usr/src/drivers/parport

obj-$(CONFIG_PARPORT)       += parport.o

那么我在哪里可以找到该parport.c文件?我已经使用命令搜索了整个文件系统

find / -name parport.c

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

4

1 回答 1

2

parport.o文件由多个.c文件编译而成,包括share.cieee1284.cieee1284_ops.cprocfs.c,可能还包括daisy.cprobe.c,所有drivers/parport/文件都位于 Linux 源代码的目录下。(此信息取自 Linux 3.5-rc3-00203-g8874e81,它比您正在查看的内核要新一些,但并行端口驱动程序不再有太大变化)。

为了找到此信息,我查看了相同的信息Makefile并注意到该parport-objs变量最初设置为,如果设置为share.o ieee1284.o ieee1284_ops.o procfs.o,则添加。daisy.o probe.oCONFIG_PARPORT_1284y

于 2012-06-28T04:23:14.573 回答