Введение
В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, загружен ли определенный драйвер в системе Linux. Драйверы, часто реализуемые в виде модулей ядра, являются важными компонентами для взаимодействия с аппаратным обеспечением. Вы изучите три способа для этого: перечисление всех загруженных модулей с помощью команды lsmod, анализ файла /proc/modules для получения подробной информации о статусе, и проверка информации о конкретном драйвере с помощью команды modinfo.
Выполнив эти шаги, вы получите практические навыки по идентификации и пониманию статуса драйверов в своей системе Linux, что является важным аспектом при устранении неполадок с аппаратным обеспечением и системным администрированием.
Вывести список драйверов с помощью lsmod
На этом этапе вы узнаете, как перечислить текущие загруженные модули ядра, которые в контексте работы с аппаратным обеспечением часто называются драйверами. Модули ядра - это фрагменты кода, которые могут быть загружены и выгружены из ядра по мере необходимости, расширяя функциональность ядра без необходимости перезагрузки системы.
Для этого мы будем использовать команду lsmod. Эта команда используется для отображения статуса модулей в ядре Linux.
Если терминал еще не открыт, откройте его. Вы можете найти значок Xfce Terminal слева на рабочем столе.
Введите следующую команду и нажмите Enter:
lsmod
Вы увидите вывод, похожий на следующий:
Module Size Used by
...
snd_hda_codec_generic ... ...
ledtrig_audio ... ...
snd_hda_codec_hdmi ... ...
snd_hda_intel ... ...
snd_intel_dspcfg ... ...
snd_hda_codec ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_hwdep ... ... snd_hda_codec
snd_pcm ... ... snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hwdep
snd_seq_midi ... ...
snd_seq_midi_event ... ... snd_seq_midi
snd_rawmidi ... ... snd_seq_midi,snd_seq_midi_event
snd_seq ... ... snd_seq_midi,snd_seq_midi_event
snd_seq_device ... ... snd_seq_midi,snd_rawmidi,snd_seq
snd_timer ... ... snd_pcm,snd_seq
snd ... ... snd_hda_codec_generic,ledtrig_audio,snd_hda_codec_hdmi,snd_hda_intel,snd_intel_dspcfg,snd_hda_codec,snd_hda_core,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer
soundcore ... ... snd
...
Вывод команды lsmod состоит из трех столбцов:
- Module: Название модуля ядра.
- Size: Размер модуля в байтах.
- Used by: Список других модулей, которые используют этот модуль, и количество раз, когда он используется.
Эта команда очень полезна для определения, какие драйверы в настоящее время активны в вашей системе.
Нажмите Continue (Продолжить), чтобы перейти к следующему шагу.
Проверить статус драйвера с помощью команды cat /proc/modules
На этом этапе вы рассмотрите другой способ просмотра информации о загруженных модулях ядра, изучив файл /proc/modules. Файловая система /proc представляет собой виртуальную файловую систему, которая предоставляет информацию о процессах и другой системной информации.
Файл /proc/modules содержит информацию, аналогичную выводу команды lsmod, но в несколько другом формате. Мы будем использовать команду cat для отображения содержимого этого файла.
Введите следующую команду в терминале и нажмите Enter:
cat /proc/modules
Вы увидите вывод, похожий на следующий:
snd_hda_codec_generic ... ... - Live 0xffffffff...
ledtrig_audio ... ... - Live 0xffffffff...
snd_hda_codec_hdmi ... ... - Live 0xffffffff...
snd_hda_intel ... ... - Live 0xffffffff...
snd_intel_dspcfg ... ... - Live 0xffffffff...
snd_hda_codec ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel, Live 0xffffffff...
snd_hda_core ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec, Live 0xffffffff...
snd_hwdep ... ... snd_hda_codec, Live 0xffffffff...
snd_pcm ... ... snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hwdep, Live 0xffffffff...
snd_seq_midi ... ... - Live 0xffffffff...
snd_seq_midi_event ... ... snd_seq_midi, Live 0xffffffff...
snd_rawmidi ... ... snd_seq_midi,snd_seq_midi_event, Live 0xffffffff...
snd_seq ... ... snd_seq_midi,snd_seq_midi_event, Live 0xffffffff...
snd_seq_device ... ... snd_seq_midi,snd_rawmidi,snd_seq, Live 0xffffffff...
snd_timer ... ... snd_pcm,snd_seq, Live 0xffffffff...
snd ... ... snd_hda_codec_generic,ledtrig_audio,snd_hda_codec_hdmi,snd_hda_intel,snd_intel_dspcfg,snd_hda_codec,snd_hda_core,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer, Live 0xffffffff...
soundcore ... ... snd, Live 0xffffffff...
...
Столбцы в файле /proc/modules представляют собой:
- Имя модуля
- Размер модуля
- Количество раз, когда модуль используется
- Состояние модуля (загружен -
Live, загружается -Loadingили выгружается -Unloading) - Смещение памяти модуля (это часть
0xffffffff...) - Зависимые модули (аналогично столбцу "Used by" в выводе команды
lsmod)
Хотя команда lsmod обычно является предпочтительным способом просмотра загруженных модулей, понимание того, что эта информация также доступна в файловой системе /proc, имеет важное значение для более глубокого анализа системы.
Нажмите Continue (Продолжить), чтобы перейти к следующему этапу.
Проверить детали драйвера с помощью modinfo
На этом этапе вы узнаете, как получить подробную информацию о конкретном модуле ядра с использованием команды modinfo. Эта команда может предоставить такие детали, как имя файла модуля, автор, описание, лицензия и параметры.
Давайте получим информацию о модуле snd_hda_intel, который связан с аудиодрайверами.
Введите следующую команду в терминале и нажмите Enter:
modinfo snd_hda_intel
Вы увидите вывод, похожий на следующий:
filename: /lib/modules/.../kernel/sound/hda/snd-hda-intel.ko
description: Intel HDA driver
license: GPL v2
srcversion: ...
alias: pci:v00008086d0000...sv*sd*bc04sc03i00*
alias: pci:v00008086d0000...sv*sd*bc04sc01i00*
alias: pci:v00008086d0000...sv*sd*bc04sc03i00*
...
depends: snd-hda-codec,snd-pcm,snd-hda-core,snd-hwdep,snd-timer,snd
retpoline: Y
intree: Y
name: snd_hda_intel
vermagic: ... SMP mod_unload
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: ...
sig_hashalgo: sha512
signature: ...
parm: bdl_pos_adj:Adjust the BDL position (int)
parm: probe_mask:Bitmask of codec probe options.
bit 0: force codec probe
bit 1: allow probing codecs with basic capabilities
bit 2: allow probing codecs with no capabilities
(int)
parm: enable_msi:Enable MSI (int)
parm: enable_msix:Enable MSI-X (int)
parm: model:Use the specified codec model.
See Documentation/sound/kernel-modules-aliases.txt for details. (charp)
parm: patch:Load the specified patch file. (charp)
parm: power_save:Automatic power-saving timeout (in ms, 0 to disable). (int)
parm: power_save_controller:Controller power-saving timeout (in ms, 0 to disable). (int)
parm: pm_blacklist:Force non-power-save mode (D0) (bool)
parm: position_fix:DMA pointer position fix (0, 1, 2) (int)
parm: probe_only_force:Only probe codecs with force option (bool)
parm: single_cmd:Use single command to communicate with codecs (bool)
parm: snoop:Enable/disable snoop mode (bool)
parm: jackpoll_ms:Polling interval for jack events (in ms, 0 to disable). (int)
Этот вывод предоставляет обширную информацию о модуле snd_hda_intel, включая его расположение в файловой системе (filename), краткое описание, лицензию, по которой он распространяется, и различные параметры, которые можно использовать для настройки его поведения.
Понимание того, как использовать команду modinfo, является важным для устранения проблем с драйверами или для более глубокого изучения конкретных возможностей и параметров модуля ядра.
Нажмите Continue (Продолжить), чтобы завершить этот практический урок.
Резюме
В этом практическом уроке вы узнали, как проверить, загружен ли определенный драйвер в системе Linux. Вы начали с использования команды lsmod для вывода списка всех текущих загруженных модулей ядра, которые часто называются драйверами. Эта команда предоставляет информацию о названии модуля, его размере и о том, какие другие модули его используют.
Вы также узнали, что можно проверить статус загруженных драйверов, просматривая содержимое файла /proc/modules с помощью команды cat. Наконец, вы узнали, как использовать команду modinfo для получения подробной информации о конкретном драйвере, такой как его имя файла, автор, описание и параметры. Эти шаги предоставляют комплексный подход к проверке наличия и деталей загруженных драйверов в вашей системе Linux.



