Учебное пособие по Debian modprobe

Модули — это фрагменты кода, расширяющие функциональные возможности ядра Linux. Модуль в Linux также известен как модуль ядра Linux. Самое лучшее в модулях в Linux — это то, что их можно добавлять или удалять «на лету». Это означает, что вы можете добавлять или удалять модули в Linux без перезагрузки компьютера.

Существуют модули для вашего графического оборудования (GPU), различных файловых систем (таких как ext4, zfs, btrfs), сетевого оборудования, дисплей, клавиатура, различные устройства ввода и многое другое.

В этой статье я покажу вам, как использовать modprobe для управления модулями ядра в Debian GNU /Дистрибутив Linux. Я собираюсь использовать Debian 9 Stretch для демонстрации. Но он должен работать с любой версией Debian GNU/Linux. Итак, приступим.

Все модули в Debian хранятся в каталоге /lib/modules/$ (uname -r) .

Модули ядра хранятся в подкаталоге kernel/. Модули ядра хранятся в модульном иерархическом порядке, как вы можете видеть на снимке экрана ниже.

$ ls/lib/modules/$ (uname -r)/kernel

Список всех доступных модулей ядра:

Вы можете перечислить все модули ядра в красиво отформатированной древовидной структуре с помощью следующей команды:

$ tree/lib/modules/$ (uname — r)/ядро ​​

ПРИМЕЧАНИЕ. Команда tree не установлена ​​по умолчанию. Вам придется установить его вручную с помощью sudo apt install tree

Как видите, каталоги и модули ядра перечислены в виде дерева.

Это очень длинный список. Вы также можете передать его на пейджер, например less, чтобы упростить навигацию по списку:

$ tree/lib/modules/$ (uname -r)/kernel | меньше

Теперь вы можете нажать и клавиши со стрелками для перемещения по списку.

Вы можете искать модули в пейджере less. Просто нажмите / и введите ключевое слово для поиска.

Теперь нажмите , и ваш результат поиска должен отобразиться, как вы можете видеть в отмеченном разделе на скриншоте ниже.

Вы также можете нажать n и p , чтобы перейти к следующему или предыдущему результату соответственно.

Чтобы выйти из пейджера, нажмите q .

Список всех загруженных модулей ядра:

Вы можете перечислить все модули ядра, которые используются в вашей операционной системе Debian, с помощью следующей команды:

$ lsmod

Это длинный список. В столбце Module (1) вы можете увидеть имя модуля ядра, в столбце Size (2) вы можете увидеть размер модуля ядра в байтов.

Используется столбец (3) интересен. Этот столбец начинается с номера и, возможно, списка имен модулей, разделенных запятыми.

Число определяет, сколько модулей зависит от этого модуля. Если он равен 0, это означает, что никакие другие модули не зависят от этого модуля. Например, модуль pppdev не используется ни одним другим модулем. Таким образом, вы можете безопасно удалить или добавить модуль ядра pppdev в любое время.

Если это значение отличное от 0, то многие другие модули зависят от этого модуля. Например, 2 других модуля зависят от модуля snd_pcm , как вы можете видеть в отмеченном разделе на скриншоте ниже. Таким образом, вы не сможете удалить модуль snd_pcm , если не удалите модули, зависящие от этого модуля. В этом случае необходимо удалить модули snd_ac97_codec и snd_ens1371 , чтобы удалить модуль snd_pcm .

Получение информации о конкретном модуле ядра:

Теперь, когда вы знаете, как составить список всех доступных модулей ядра и загруженных модулей ядра. В этом разделе я покажу вам, как получить информацию о любом модуле ядра.

В Debian вы можете использовать команду modinfo для получения информации о любой модуль.

Например, чтобы получить информацию о модуле snd_pcm , который мы видели ранее, выполните следующую команду:

$ sudo modinfo snd_pcm

Как видите, путь к файлу модуля, лицензия, краткое описание модуля snd_pcm , модули snd_pcm зависят от и некоторая другая информация указана .

Это важные фрагменты информации, которые вам необходимо знать для работы с модулями в Deban. Например, если вы хотите включить модуль snd_pcm , вы также должны включить модули snd и snd-timer . прежде чем вы это сделаете. Поскольку snd_pcm зависит от snd и snd-timer . В противном случае ничего не получится.

Загрузка нового модуля ядра с помощью modprobe:

Вы можете загрузить новые модули ядра с помощью команды modprobe . Например, , скажем, вы хотите включить модуль ядра файловой системы btrfs .

Сначала проверьте, от каких модулей зависят модули ядра btrfs включите с помощью modinfo следующим образом:

$ sudo modinfo btrfs

Как видите модуль ядра btrfs зависит от модулей ядра raid6_pg и xor .

Давайте проверим, включены ли они, следующим образом:

$ lsmod | grep raid6
$ lsmod | grep xor

Как видите, ни один из модулей не загружен.

Теперь выполните следующие команды, чтобы загрузить raid6_pq и xor модули ядра:

$ sudo m odprobe raid6_pq
$ sudo modprobe xor

Теперь проверим, загружены ли снова модули ядра зависимостей:

$ lsmod | grep raid6
$ lsmod | grep xor

Как видите, модули ядра загружены.

Теперь вы можете загрузить модуль ядра btrfs с помощью следующей команды:

$ sudo modprobe btrfs

Теперь давайте проверьте, загружен ли модуль ядра btrfs , с помощью следующей команды:

$ lsmod | grep btrfs

Как видите, модуль ядра btrfs загружен и зависит от модулей ядра raid6_pq и xor .

В большинстве случаев команда modprobe будет автоматически разрешать зависимости. Но я показал вам, как сделать это вручную, потому что иногда вам может понадобиться сделать это таким образом. Лучше всего знать, как решить проблему, поскольку однажды вам, возможно, придется с ней справиться.

Удаление модулей с помощью modprobe:

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

Например, чтобы удалить модуль btrfs , который я загружал ранее, выполните следующую команду:

$ sudo modprobe -r btrfs

Модуль следует удалить.

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

Это практически все, что вам нужно знать об управлении модулями ядра в Debian. Спасибо за чтение этой статьи.

Оцените статью
nanomode.ru
Добавить комментарий