Linux에서 커널 모듈을로드 및 언로드하는 방법
커널 모듈은 커널을 재 컴파일 (커널)하거나 시스템을 재부팅하지 않고도 필요에 따라 커널에로드하거나 언로드 할 수있는 프로그램이며 커널의 기능을 향상시키기위한 것입니다.
일반적인 소프트웨어 용어에서 모듈은 WordPress와 같은 소프트웨어의 플러그인과 다소 비슷합니다. 플러그인은 소프트웨어 기능을 확장 할 수있는 수단을 제공합니다. 플러그인이 없으면 개발자는 모든 기능이 패키지에 통합 된 단일 대규모 소프트웨어를 구축해야합니다. 새로운 기능이 필요한 경우 새 버전의 소프트웨어에 추가해야합니다.
마찬가지로 모듈이 없다면 커널은 모든 기능이 커널 이미지에 직접 통합되어 빌드되어야합니다. 이것은 더 큰 커널을 가지고 있음을 의미하며 시스템 관리자는 새로운 기능이 필요할 때마다 커널을 다시 컴파일해야합니다.
모듈의 간단한 예는 커널이 시스템에 연결된 하드웨어 구성 요소/장치에 액세스 할 수 있도록하는 장치 드라이버입니다.
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/& # 36 (uname -r)에서 모든 모듈 및 관련 파일을 검색하지만 /etc/modprobe.d 디렉토리의 대체 구성 파일은 제외합니다.
여기서는 모듈의 절대 경로가 필요하지 않습니다. 이것은 이전 명령에 비해 modprobe를 사용하는 이점입니다.
모듈을 삽입하려면 다음과 같이 이름을 제공하십시오.
# modprobe speedstep-lib
모듈을 제거하려면 다음과 같이 -r
플래그를 사용하십시오.
# modprobe -r speedstep-lib
참고 : modprobe에서는 자동 밑줄 변환이 수행되므로 모듈 이름을 입력 할 때 _
와 –
간에 차이가 없습니다.
사용 정보 및 옵션에 대한 자세한 내용은 modprobe 매뉴얼 페이지를 참조하십시오.
# man modprobe
확인하는 것을 잊지 마세요 :
- How to Change Kernel Runtime Parameters in a Persistent and Non-Persistent Way
- How to Install or Upgrade to Latest Kernel Version in CentOS 7
- How to Upgrade Kernel to Latest Version in Ubuntu
지금은 여기까지입니다! "이 가이드 또는 쿼리에 추가하기를 원하는 유용한 아이디어가 있으시면 아래 피드백 양식을 사용하여 저희에게 보내주십시오.