Вопрос: как мне добавить или удалить драйвер устройства в запущенное ядро 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
Источник
|