Гид по технологиям

Как использовать lsmod: обзор, советы и чек-листы

• 6 min read • Системное администрирование • Обновлено 03 Dec 2025
lsmod: как посмотреть модули ядра Linux
lsmod: как посмотреть модули ядра Linux

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

Quick Links

  • What Is lsmod?

  • lsmod: First Looks

  • Diving Deeper With modinfo

  • Wrapping up

Что такое lsmod?

lsmod — это небольшая утилита, которая выводит список модулей, доступных и/или загруженных в ядро Linux. По сути она форматирует содержимое виртуального файла /proc/modules в удобочитаемый вид.

Определение: модуль ядра — это отдельный скомпилированный кусок кода, который можно динамически загружать и выгружать из ядра. Модули расширяют функциональность ядра без необходимости пересобирать или перезагружать всё ядро.

Аналогия: модуль ядра похож на плагин в приложении. Разница в том, что модули работают ближе к оборудованию и к низкоуровневым подсистемам ОС.

Примеры модулей: драйвер графики (например, проприетарный драйвер NVidia), контроллеры дисков (AHCI), сетевые драйверы.

Важно: модуль может быть доступен системе, но не использоваться. lsmod показывает и доступные, и загруженные модули, а столбец “Used by” помогает понять фактическое использование.

lsmod: первый взгляд

Утилита не имеет опций. Она просто читает /proc/modules и форматирует его.

Файл /proc/modules — виртуальный. Его можно увидеть через cat, less или любой текстовый редактор. Пример поиска модуля AHCI (контроллер SATA):

cat /proc/modules | grep ahci

Это выводит строки, где встречается ahci. Файл /proc/modules в большинстве систем содержит имена модулей в нижнем регистре, поэтому поиск без -i обычно работает.

Более удобный подход — использовать lsmod и фильтрацию через grep. Например:

lsmod | grep -E '^Module|ahci'

Здесь -E включает расширенные регулярные выражения, а ^Module находит строку заголовка, начинающуюся с “Module”. Так вы одновременно увидите заголовок и все строки с ahci.

Что означают столбцы в выводе lsmod:

  • Module — имя модуля.
  • Size — размер модуля в байтах.
  • Used by — количество ссылок на модуль со стороны других частей ядра (сколько объектов/модулей ссылаются на этот модуль).

Если в третьем столбце стоит 0, модуль не ссылается ни на что и, возможно, не используется прямо сейчас. Если вы видите -2 — это редкий случай, связанный с особенностями подсчета ссылок для некоторых модулей. В таких ситуациях полезно посмотреть обсуждения на ресурсах сообщества (Stackexchange и т. п.).

Важно: lsmod не сообщает, почему модуль загружен — он только отражает состояние.

Уточнение через modinfo

Чтобы узнать подробности о конкретном модуле, используется modinfo. Он показывает метаданные модуля: описание, автора, лицензию, параметры, зависимости и подписанные ключи.

Примеры:

modinfo ahci -F 'description'
modinfo ahci -F 'author'

Можно получить сразу несколько полей через grep:

modinfo ahci | grep -E 'description|author'

Или с якорями начала строки, чтобы избегать ложных совпадений:

modinfo ahci | grep -E '^description|^author'

Если запустить modinfo ahci без опций, вы получите полный набор полей, включая возможные данные о подписи модуля и параметры, которые можно передавать при загрузке.

Совет: man modinfo содержит полный список опций и формат вывода.

Частые приёмы и лайфхаки

  • Просмотр всех модулей и поиск по ключевому слову:
lsmod | grep keyword
  • Просмотр модулей с подробной информацией (комбинация):
for m in $(lsmod | awk 'NR>1 {print $1}'); do echo "--- $m"; modinfo $m | sed -n '1,6p'; done

Этот однострочник перечисляет имена модулей (пропуская заголовок), затем выводит первые строки modinfo для каждого модуля. Полезно для быстрого обзора.

  • Если модуль можно выгрузить, используйте rmmod или modprobe -r.
sudo modprobe -r modulename

modprobe -r учитывает зависимости и обычно безопаснее, чем rmmod.

Мини-методология: как быстро проверить модуль

  1. Посмотреть, загружен ли модуль:
lsmod | grep '^modulename\b'
  1. Посмотреть базовую информацию:
modinfo modulename
  1. Проверить связанные устройства или логи ядра:
dmesg | grep -i modulename
journalctl -k | grep -i modulename
  1. Попробовать аккуратно выгрузить, если нужно:
sudo modprobe -r modulename
  1. Если выгрузка не удаётся, искать зависимые модули и процессы, держащие ссылку.

Чек-листы по ролям

Системный администратор:

  • Проверить, загружен ли модуль.
  • Просмотреть описание и параметры через modinfo.
  • Проверить сообщения ядра через dmesg/journalctl.
  • Безопасно выгрузить через modprobe -r при необходимости.

Разработчик драйверов:

  • Убедиться, что модуль скомпилирован с отладочными флагами при необходимости.
  • Посмотреть параметры модуля через modinfo.
  • Логировать сообщения dmesg при загрузке/выгрузке.

Служба поддержки / Helpdesk:

  • Спросить, появились ли ошибки в dmesg.
  • Проверить, не обновлялось ли ПО/ядро недавно.
  • Собрать выводы lsmod и modinfo для инженера.

Быстрый шпаргалка команд

# Показать все модули
lsmod

# Фильтровать по имени
lsmod | grep -i nv

# Подробная информация по модулю
modinfo modulename

# Только определённое поле
modinfo modulename -F license

# Выгрузить модуль (с учётом зависимостей)
sudo modprobe -r modulename

# Просмотреть сообщения ядра, связанные с модулем
dmesg | grep -i modulename
journalctl -k | grep -i modulename

Когда lsmod или modinfo дают не ту картину — случаи и обходы

  • Модуль загружается поздно или динамически: некоторые модули загружаются по событию (например, подключение устройства). В этом случае в момент проверки их может не быть.

  • Модуль встроен в ядро: если функциональность скомпилирована в само ядро, имени модуля вы не увидите — оно не будет в lsmod.

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

  • Ограничения прав: lsmod можно запускать без sudo, но для получения логов и управления модулями нужны права администратора.

Советы по безопасности и приватности

  • Не загружайте сомнительные модули от непроверенных источников. Модуль имеет повышенные привилегии и может нарушить безопасность системы.

  • Проверяйте поле signature в modinfo, если ядро настроено на проверку подписей.

  • В корпоративной среде используйте политики контроля загрузки модулей (например, модульная белая/чёрная списки) и регулярно проверяйте целостность системных модулей.

Примечание: если вы работаете с устройствами пользователей, соблюдайте требования конфиденциальности при сборе логов — отбрасывайте персональные данные.

Диагностика: дерево решений

flowchart TD
  A[Нужна информация о модуле?] --> B{Модуль загружен?}
  B -- Да --> C[Используйте lsmod]
  B -- Нет --> D[Проверьте dmesg и подключение устройства]
  C --> E[Посмотреть modinfo для деталей]
  E --> F{Нужна выгрузка?}
  F -- Да --> G[modprobe -r modulename]
  F -- Нет --> H[Оставить в покое]
  D --> E

Сравнение подходов: lsmod vs /proc/modules vs modinfo

  • /proc/modules — сырые данные, виртуальный файл. Полезен для парсинга и автоматизации.
  • lsmod — форматированное представление /proc/modules, удобно для человека.
  • modinfo — детальная метаинформация о конкретном модуле.

Выбирайте инструмент в зависимости от цели: быстрый обзор — lsmod, детальная проверка — modinfo, автоматизация — /proc/modules.

Совместимость и миграция

  • При обновлении ядра проверяйте, что сторонние модули совместимы с новой версией. Частая стратегия — перекомпиляция модулей для нового ядра или поиск обновлённых пакетов от поставщика.

  • Для контейнеров: в большинстве случаев контейнеры используют модули хоста. Проверьте, какие модули нужны приложениям внутри контейнера.

  • Для встроенных систем: многие функции собираются в ядро монолитно. При необходимости переносить функциональность в виде модулей планируйте пересборку ядра.

Краткий глоссарий

  • Модуль — динамическая часть ядра, расширяющая функциональность.
  • /proc — виртуальная файловая система ядра, предоставляющая информацию о состоянии системы.
  • modinfo — утилита для чтения метаданных модуля.
  • modprobe — утилита для загрузки/выгрузки модулей с учётом зависимостей.

Критерии приёмки

  • Умеете показать, загружен ли модуль (lsmod или /proc/modules).
  • Умеете получить описание и параметры модуля (modinfo).
  • Можете безопасно выгрузить модуль с учётом зависимостей (modprobe -r).
  • Понимаете, когда модуль может быть встроен в ядро и незаметен через lsmod.

Итог

lsmod — простая и надёжная утилита для быстрого просмотра модулей ядра. В сочетании с modinfo и логами ядра вы получите полноценную картину. Для автоматизации используйте /proc/modules, а для управления — modprobe. Следуйте базовым правилам безопасности: проверяйте источники модулей и подписи.

Если вы хотите углубиться: попробуйте собрать небольшую тестовую систему с модульной конфигурацией и потренируйтесь загружать/выгружать модули в контролируемой среде.

Нравится статья? Посмотрите также материалы по трассировке библиотечных вызовов (ltrace) и работе с зависимостями разделяемых библиотек в Linux. Удачи!

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро