Linux에서 커널 모듈을 로드 및 언로드하는 방법
커널 모듈은 커널(커널)을 다시 컴파일하거나 시스템을 재부팅하지 않고도 필요에 따라 커널에 로드하거나 커널에서 언로드할 수 있는 프로그램이며 커널의 기능을 향상시키기 위한 것입니다.
일반적인 소프트웨어 용어로 모듈은 WordPress와 같은 소프트웨어의 플러그인과 비슷합니다. 플러그인은 소프트웨어 기능을 확장할 수 있는 수단을 제공합니다. 플러그인이 없으면 개발자는 모든 기능이 패키지에 통합된 하나의 대규모 소프트웨어를 구축해야 합니다. 새로운 기능이 필요한 경우 새 버전의 소프트웨어에 추가해야 합니다.
마찬가지로 모듈이 없으면 커널은 커널 이미지에 직접 통합된 모든 기능을 사용하여 구축되어야 합니다. 이는 더 큰 커널을 의미하며 시스템 관리자는 새로운 기능이 필요할 때마다 커널을 다시 컴파일해야 합니다.
모듈의 간단한 예로는 커널이 시스템에 연결된 하드웨어 구성 요소/장치에 액세스할 수 있도록 하는 장치 드라이버가 있습니다.
권장 읽기: 실행 중인 Linux 버전을 확인하는 방법
Linux에 로드된 모든 커널 모듈 나열
Linux에서 모든 모듈은 .ko
확장자로 끝나며 일반적으로 시스템 부팅 시 하드웨어가 감지되면 자동으로 로드됩니다. 그러나 시스템 관리자는 특정 명령을 사용하여 모듈을 관리할 수 있습니다.
Linux에 현재 로드된 모든 모듈을 나열하려면 다음과 같이 /proc/modules의 내용을 읽는 lsmod(모듈 나열) 명령을 사용할 수 있습니다.
lsmod
Module Size Used by
rfcomm 69632 2
pci_stub 16384 1
vboxpci 24576 0
vboxnetadp 28672 0
vboxnetflt 28672 0
vboxdrv 454656 3 vboxnetadp,vboxnetflt,vboxpci
bnep 20480 2
rtsx_usb_ms 20480 0
memstick 20480 1 rtsx_usb_ms
btusb 45056 0
uvcvideo 90112 0
btrtl 16384 1 btusb
btbcm 16384 1 btusb
videobuf2_vmalloc 16384 1 uvcvideo
btintel 16384 1 btusb
videobuf2_memops 16384 1 videobuf2_vmalloc
bluetooth 520192 29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
videobuf2_v4l2 28672 1 uvcvideo
videobuf2_core 36864 2 uvcvideo,videobuf2_v4l2
v4l2_common 16384 1 videobuf2_v4l2
videodev 176128 4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2
intel_rapl 20480 0
x86_pkg_temp_thermal 16384 0
media 24576 2 uvcvideo,videodev
....
Linux에서 커널 모듈을 로드 및 언로드(제거)하는 방법
커널 모듈을 로드하려면 insmod(모듈 삽입) 명령을 사용할 수 있습니다. 여기서는 모듈의 전체 경로를 지정해야 합니다. 아래 명령은 speedstep-lib.ko 모듈을 삽입합니다.
insmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko
커널 모듈을 언로드하려면 rmmod(모듈 제거) 명령을 사용합니다. 다음 예에서는 speedstep-lib.ko 모듈을 언로드하거나 제거합니다.
rmmod /lib/modules/4.4.0-21-generic/kernel/drivers/cpufreq/speedstep-lib.ko
modprobe 명령을 사용하여 커널 모듈을 관리하는 방법
modprobe는 커널에서 모듈을 나열, 삽입 및 제거하는 지능형 명령입니다. 모듈 디렉토리 /lib/modules/$ (uname -r)에서 모든 모듈 및 관련 파일을 검색하지만 /etc/modprobe.d의 대체 구성 파일은 제외합니다. 디렉토리.
여기서는 모듈의 절대 경로가 필요하지 않습니다. 이것이 이전 명령에 비해 modprobe를 사용하는 장점입니다.
모듈을 삽입하려면 다음과 같이 이름을 입력하면 됩니다.
modprobe speedstep-lib
모듈을 제거하려면 다음과 같이 -r
플래그를 사용하세요.
modprobe -r speedstep-lib
참고: modprobe에서는 자동 밑줄 변환이 수행되므로 _
와 –
사이에는 차이가 없습니다. 모듈 이름을 입력합니다.
더 많은 사용법 정보와 옵션을 보려면 modprobe 매뉴얼 페이지를 읽어보세요.
man modprobe
꼭 확인하세요:
- 지속적 및 비영구적 방식으로 커널 런타임 매개변수를 변경하는 방법
- CentOS 7에서 최신 커널 버전을 설치하거나 업그레이드하는 방법
- Ubuntu에서 커널을 최신 버전으로 업그레이드하는 방법
지금은 여기까지입니다! 이 가이드나 문의 사항에 추가하고 싶은 유용한 아이디어가 있으신가요? 아래 피드백 양식을 사용하여 저희에게 보내주세요.