Команда lsmod

Команда lsmod позволяет использовать утилиту с соответствующим именем для получения информации о загруженных модулях ядра Linux. Ядро Linux является монолитным, но поддерживает модули, в рамках которых содержится код для реализации ряда его функций и драйверов устройств. В процессе компиляции ядра определенный машинный код может либо включаться в состав самого ядра, либо включаться в состав модулей, которые подгружаются ядром при необходимости без перезагрузки системы. Пользователь также может загрузить любой модуль с помощью команды insmod или modprobe или получить информацию о нем с помощью команды modinfo. Сами файлы модулей обычно расположены в директории /lib/modules/<версия ядра>. Что касается списка загруженных модулей, то он экспортируется ядром посредством виртуального файла /proc/modules, а утилита lsmod просто форматирует содержимое этого файла и не выполняет каких-либо сложных манипуляций. Тем не менее, она полезна для диагностики проблем с оборудованием.

Базовый синтаксис команды выглядит следующим образом:

$ lsmod

Утилита не поддерживает каких-либо параметров и выводит информацию в формате таблицы с тремя столбцами:

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

Примеры использования

Вывод информации обо всех загруженных модулях ядра

Для вывода информации обо всех загруженных модулях ядра достаточно использовать утилиту lsmod без каких-либо параметров:

$ lsmod
Module                  Size  Used by
xfs                  1277952  0
cpuid                  16384  0
nls_iso8859_1          16384  1
option                 61440  0
usb_wwan               24576  1 option
cdc_ether              20480  0
usbserial              53248  2 usb_wwan,option
usbnet                 45056  1 cdc_ether
mii                    20480  1 usbnet
binfmt_misc            24576  1
mt7601u               110592  0
mac80211              843776  1 mt7601u
cx24116                24576  1
cfg80211              704512  2 mt7601u,mac80211
...

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

Вывод информации об определенных модулях ядра

Для вывода информации об определенных модулях ядра следует использовать утилиту grep по отношению к выводу утилиты lsmod:

$ lsmod | grep dvb_core
dvb_core              139264  2 cx88_dvb,videobuf2_dvb
mc                     53248  4 videodev,videobuf2_v4l2,dvb_core,videobuf2_common

Очевидно, что в данном случае была выведена информация лишь об интересующем нас модуле dvb_core: этот модуль как использует модули cx88_dvb и videobuf2_dvb, так и используется модулем mc.