웹사이트 검색

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

꼭 확인하세요:

  1. 지속적 및 비영구적 방식으로 커널 런타임 매개변수를 변경하는 방법
  2. CentOS 7에서 최신 커널 버전을 설치하거나 업그레이드하는 방법
  3. Ubuntu에서 커널을 최신 버전으로 업그레이드하는 방법

지금은 여기까지입니다! 이 가이드나 문의 사항에 추가하고 싶은 유용한 아이디어가 있으신가요? 아래 피드백 양식을 사용하여 저희에게 보내주세요.