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

()

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

Ответ: Для добавления и удаления модулей из ядра, в Linux существует команда modprobe.

  • В MS Windows используется термин драйвер устройства.

  • В Linux используется термин модули.

  • Ядро Linux имеет модульную архитектуру.

  • Во время загрузки, в память загружается только минимально необходимая часть ядра.

  • Если вы установили новое устройство, вам нужно установить драйвер которым является соответствующий модуль ядра.

  • Командой modprobe можно добавить или удалить модуль из ядра Linux.

  • Обычно модули находятся в специальной директории /lib/modules/$(uname -r)

$ ls /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

Источник

Ключевые слова: linux, kernel, modprobe, rmmod.

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

Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE