2012-06-28 2 views
1

На самом деле я новичок, и я пытаюсь изучить концепцию драйвера низкого уровня и драйвера высокого уровня. Я хочу знать, как модуль зависит от других модулей для их работы.Файл модуля Linux отсутствует

Я сделал 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, я видел строку в файл сборки, как,

obj-$(CONFIG_PARPORT)  += parport.o 

Так где я могу найти файл parport.c? Я искал всю файловую систему, используя команду

find/-name parport.c 

но нет результатов. Почему файл parport.c отсутствует?

+2

Файл '.c', как правило, является файлом нескомпилированного c. У вас, вероятно, нет нескомпилированного исходного кода для вашей ОС на вашем компьютере. – nickgroenke

ответ

2

Файл parport.o составлен из нескольких .c файлов, в том числе share.c, ieee1284.c, ieee1284_ops.c и procfs.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.o был добавлен, если CONFIG_PARPORT_1284 был установлен в y.