Как добавлять и удалять драйверы и модули ядра в ОС 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
free-templates.ru