четверг, 21 июля 2011 г.

Как добавлять и удалять драйверы и модули ядра в ОС Linux

Вопрос: как мне добавить или удалить драйвер устройства в запущенное ядро Linux?

Ответ:
Для добавления и удаления модулей из ядра, в Linux существует команда modprobe.
В MS Windows используется термин драйвер устройства.
В Linux используется термин модули.
Ядро Linux имеет модульную архитектуру.
Во время загрузки, в память загружается только минимально необходимая часть ядра.
Если вы установили новое устройство, вам нужно установить драйвер которым является соответствующий модуль ядра.
Командой modprobe можно добавить или удалить модуль из ядра Linux.
Обычно модули находятся в специальной директории /lib/modules/$(uname -r)



Вывод:

boot   initrd  misc           modules.ccwmap  modules.ieee1394map  modules.isapnpmap  modules.symbols  source
build  kernel  modules.alias  modules.dep     modules.inputmap     modules.pcimap     modules.usbmap

Задача: добавление модуля foo
Введите от имени root следующую команду:
# modprobe foo

Задача: список всех загруженных модулей
Используйте команду lsmod, чтобы посмотреть статус модулей ядра Linux:
# lsmod

Вывод:
Module                  Size  Used by
smbfs                  75465  0
md5                     5953  1
ipv6                  284193  10
ipt_TOS                 4033  2
iptable_mangle          4545  1
ip_conntrack_ftp       74801  0
ip_conntrack_irc       74033  0
ipt_REJECT              8897  43
ipt_LOG                 8513  2
ipt_limit               4033  6
iptable_filter          4673  1
ipt_multiport           3521  4
ipt_state               3393  16
ip_conntrack           54297  3 ip_conntrack_ftp,ip_conntrack_irc,ipt_state
ip_tables              21825  8 ipt_TOS,iptable_mangle,ipt_REJECT,ipt_LOG,ipt_limit,iptable_filter,ipt_multiport,ipt_state
i2c_dev                13889  0
i2c_core               28865  1 i2c_dev
dm_mirror              32721  0
dm_mod                 68609  1 dm_mirror
button                  9313  0
battery                11465  0
ac                      6985  0
ohci_hcd               24529  0
ehci_hcd               33989  0
tg3                   109381  0
floppy                 66065  0
ext3                  137937  2
jbd                    69105  1 ext3
sata_svw               10053  3
libata                 78345  1 sata_svw
sd_mod                 19393  4
scsi_mod              141457  2 libata,sd_mod

Задача: удаление модуля foo
Добавьте опцию -r к команде modprob, чтобы удалить модуль
# modprobe -r foo

Так же можно использовать команду rmmod, которая является простой программой для удаления модуля из ядра Linux
# rmmod foo
Взято тут

Комментариев нет:

Отправить комментарий