소개
이 랩에서는 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: 이 모듈을 사용하는 다른 모듈의 목록과 사용 횟수입니다.
이 명령은 시스템에서 현재 활성 상태인 드라이버를 확인하는 데 매우 유용합니다.
다음 단계로 진행하려면 계속을 클릭하십시오.
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가 일반적으로 로드된 모듈을 보기 위한 선호되는 명령이지만, 이 정보가 /proc 파일 시스템에서도 사용 가능하다는 것을 이해하는 것은 시스템을 더 깊이 이해하는 데 중요합니다.
계속하려면 계속을 클릭하십시오.
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)
이 출력은 파일 시스템에서의 위치 (filename), 간략한 설명, 배포된 라이선스, 동작을 구성하는 데 사용할 수 있는 다양한 매개변수를 포함하여 snd_hda_intel 모듈에 대한 풍부한 정보를 제공합니다.
modinfo를 사용하는 방법을 이해하는 것은 드라이버 문제를 해결하거나 커널 모듈의 특정 기능 및 옵션에 대해 자세히 알아보는 데 매우 중요합니다.
이 랩을 완료하려면 계속을 클릭하십시오.
요약
이 랩에서는 특정 드라이버가 Linux 에 로드되었는지 확인하는 방법을 배웠습니다. 먼저, 드라이버라고도 하는 현재 로드된 모든 커널 모듈을 나열하기 위해 lsmod 명령을 사용했습니다. 이 명령은 모듈 이름, 크기 및 다른 어떤 모듈이 이를 사용하는지에 대한 정보를 제공합니다.
또한 cat 명령을 사용하여 /proc/modules 파일의 내용을 검사하여 로드된 드라이버의 상태를 확인할 수 있다는 것을 배웠습니다. 마지막으로, modinfo 명령을 사용하여 파일 이름, 작성자, 설명 및 매개변수와 같은 특정 드라이버에 대한 자세한 정보를 검색하는 방법을 배웠습니다. 이러한 단계는 Linux 시스템에 로드된 드라이버의 존재 여부와 세부 정보를 확인하는 포괄적인 접근 방식을 제공합니다.



