Где лежат модули устройств?

Аватар пользователя KAS

В Линуксе есть файлы устройств, которые описываются типом устройства, старшим и младшим номером устройства. По своей сути когда идёт обращение, для примера к флеш-драйву или к жёсткому диску, через файл данного устройства(который является интерфейсом к драйверу (модулю) устройства) ядру передаётся не само имя файла устройства а его описание, то есть тип устройства, мажор, минор... если ядро находит соответствующий драйвер, то он начинает использоваться, если нет, то ядро дальше передаёт это описание программе modprobe, которая ориентируясь на свой конфиг либо загрузит драйвер(модуль) для данного устройства или нет... modprobe понимает как описание устройств, так и их имена, для примера eth0 у которого нет файла в /dev и нет описания.
Вот кусок содержимого конфигуряционного файла modprobe:

alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

alias eth0 8139too

из этого следует, что 8139too является модулем устройства eth0 и подгружается этот модуль программой modprobe. Вроде бы всё очевидно... Начинаю искать этот модуль, и получаю следубщее:
[root@localhost ~]# find / -name 8139too -print
/sys/module/8139too
/sys/bus/pci/drivers/8139too
/usr/src/kernels/2.6.14-1.1653.1asp-i686/include/config/8139too
[root@localhost ~]#

Вроде бы всё нормально, находит модуль 8139too... Но это не бинарные файлы, а дериктории со следующем содержимом:
[root@localhost ~]# ls -la /sys/module/8139too/
итого 0
drwxr-xr-x 3 root root 0 Сен 10 15:47 .
drwxr-xr-x 75 root root 0 Сен 10 12:53 ..
-r--r--r-- 1 root root 4096 Сен 10 15:47 refcnt
drwxr-xr-x 2 root root 0 Сен 10 2006 sections
-r--r--r-- 1 root root 4096 Сен 10 15:47 srcversion
-r--r--r-- 1 root root 4096 Сен 10 15:47 version
[root@localhost ~]# ls -la /sys/bus/pci/drivers/8139too/
итого 0
drwxr-xr-x 2 root root 0 Сен 10 15:46 .
drwxr-xr-x 46 root root 0 Сен 10 12:53 ..
lrwxrwxrwx 1 root root 0 Сен 10 15:46 0000:00:0b.0 -> ../../../../devices/pci0000:00/0000:00:0b.0
--w------- 1 root root 4096 Сен 10 15:46 bind
--w------- 1 root root 4096 Сен 10 15:46 new_id
--w------- 1 root root 4096 Сен 10 15:46 unbind
[root@localhost ~]# ls -la /usr/src/kernels/2.6.14-1.1653.1asp-i686/include/config/8139/
итого 20
drwxr-xr-x 3 root root 4096 Янв 23 2006 .
drwxr-xr-x 433 root root 12288 Апр 1 02:03 ..
drwxr-xr-x 3 root root 4096 Янв 23 2006 old
[root@localhost ~]#

Так где находится модуль 8139too?

Аватар пользователя wildsin

Где лежат модули устройств?

KAS писал(а):
Так где находится модуль 8139too?

в RH и его клонах все модули ядра находятся по пути:
/lib/modules/`uname -r`/
в частности модуль сетевой карты лежит:
/lib/modules/`uname -r`/kernel/drivers/net/8139too.ko

и вообще много интересного можно узнать из вывода команды modinfo
у меня на тестовом ASP11:
---
[root@test ~]# modinfo 8139too
filename: /lib/modules/2.6.17-1.2142.1asp/kernel/drivers/net/8139too.ko
---
это не весь вывод, там его много полезного...

Аватар пользователя KAS

Re: Где лежат модули устройств?

wildsin писал(а):
в RH и его клонах все модули ядра находятся по пути:
/lib/modules/`uname -r`/
в частности модуль сетевой карты лежит:
/lib/modules/`uname -r`/kernel/drivers/net/8139too.ko

find / -name 8139too* -print - вот так нужно было искать...

RSS-материал