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

확인하는 것을 잊지 마세요 :

  1. How to Change Kernel Runtime Parameters in a Persistent and Non-Persistent Way
  2. How to Install or Upgrade to Latest Kernel Version in CentOS 7
  3. How to Upgrade Kernel to Latest Version in Ubuntu

지금은 여기까지입니다! "이 가이드 또는 쿼리에 추가하기를 원하는 유용한 아이디어가 있으시면 아래 피드백 양식을 사용하여 저희에게 보내주십시오.