Примеры команд Linux modprobe для просмотра, установки, удаления модулей

Утилита modprobe используется для добавления загружаемых модулей в ядро ​​Linux. Вы также можете просматривать и удалять модули с помощью команды modprobe.

Linux поддерживает каталог /lib/modules/$ (uname-r) для модулей и его файлов конфигурации (кроме /etc/modprobe.conf и /etc/modprobe.d).

В ядре Linux 2.6 вместо файлов .o используются модули .ko, поскольку в них содержится дополнительная информация, которую ядро ​​использует для загрузки модулей. Пример в этой статье сделан с использованием modprobe на Ubuntu.

1. Перечислите доступные модули ядра

modprobe -l отобразит все доступные модули, как показано ниже.

$ modprobe -l | less
kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko
kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko
kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko
kernel/arch/x86/kernel/msr.ko
kernel/arch/x86/kernel/cpuid.ko
kernel/arch/x86/kernel/apm.ko
kernel/arch/x86/kernel/scx200.ko
kernel/arch/x86/kernel/microcode.ko
kernel/arch/x86/crypto/aes-i586.ko
kernel/arch/x86/crypto/twofish-i586.ko

2. Список текущих загруженных модулей

Хотя приведенная выше команда modprobe отображает все доступные модули, команда lsmod отображает все модули, которые в данный момент загружены в ядро ​​Linux.

$ lsmod | less
soundcore          7264   1 snd
ppdev                6688   0
snd_page_alloc   9156    1 snd_pcm
psmouse            56180  0
lp                     8964    0

3. Установите новые модули в ядро ​​Linux

Чтобы вставить новый модуль в ядро, выполните команду modprobe с именем модуля.

Следующий пример загружает модуль vmhgfs в ядро ​​Linux на Ubuntu.

 

 

  $ sudo modprobe vmhgfs

После загрузки модуля проверьте его с помощью команды lsmod, как показано ниже.

  $ lsmod |  grep vmhgfs
 vmhgfs 50772 0

Файлы модуля имеют расширение .ko. Если вы хотите узнать полное местоположение файла определенного модуля ядра Linux, используйте команду modprobe и выполните grep имени модуля, как показано ниже.

$ modprobe | grep vmhgfs
misc/vmhgfs.ko

$ cd /lib/modules/2.6.31-14-generic/misc

$ ls vmhgfs*
vmhgfs.ko

Примечание: вы также можете использовать insmod для установки новых модулей в ядро ​​Linux.

4. Загрузите новые модули с другим именем, чтобы избежать конфликтов

Учтите, что в некоторых случаях вы должны загрузить новый модуль, но с тем же именем модуля другой модуль уже был загружен для других целей.

Если по каким-то странным причинам имя модуля, которое вы пытаетесь загрузить в ядро, используется (с тем же именем) другим модулем, то вы можете загрузить новый модуль под другим именем.

Чтобы загрузить модуль с другим именем, используйте опцию modprobe -o, как показано ниже.

  $ sudo modprobe vmhgfs -o vm_hgfs

 $ lsmod |  grep vm_hgfs
 vm_hgfs 50772 0

5. Удалить загруженный модуль

Если вы загрузили модуль в ядро ​​Linux для тестирования, вы можете выгрузить (удалить) его из ядра.

Используйте опцию modprobe -r для выгрузки модуля из ядра, как показано ниже.

  modprobe -r vmhgfs