리눅스

[리눅스] modprobe

깅민 2022. 10. 27. 01:21

커널 컴파일 https://gingmin.tistory.com/61

 

모듈

커널 모듈이 필요할 때 - 커널 이미지에 합류

필요하지 않을 때 - 커널에서 빠져나와 모듈 형태로 존재하므로 시스템의 메모리를 절약할 수 있다

 

시스템 장치를 제어하는 코드는 컴파일 되어 커널에 포함될 수 있다.

기본적으로 커널은 시스템 장치를 제어하는 기능을 내장하고 하나의 덩어리 형태로 구성되는, 이런 방식을 '모놀리식'이라고 한다.

 

modprobe

리눅스 커널엔 사용자가 시스템과 관련된 내용을 몰라도 사용하는 데 문제가 없도록 많은 기능이 들어있다.

커널에서 하드웨어를 발견했을 때 필요한 모듈을 자동 적재하는 기능도 그 중 하나다.

 

모듈 자동 적재는 모듈 유틸리티인 modprobe 프로그램과 관계가 있다

특정 하드웨어가 검색되어 모듈을 자동 적재할 필요가 있다고 판단되면 call_usermodhelper()함수를 이용해 modprobe 프로그램을 수행

modprobe 프로그램은 요청된 모듈이 동작할 수 있도록 부수적인 모듈을 depmod 프로그램을 이용하여 검색해 필요한 모듈을 커널에 차례로 등록한다.

 

modprobe는 기본적으로 modules.dep파일을 참조해 적재 또는 제거 시 의존성 문제를 스스로 해결

insmod는 의존성을 고려하지 않아 의존성이 해결되지 않은 상태에서는 모듈 설치가 불가능

 

옵션 설명
-a, --all 모듈과 의존성으로 관련된 다른 모뮬도 같이 적재한다.
-c, --showconfig 현재의 설정을 본다
-d, --debug 디버깅 정보를 보여준다.
-h, --help 사용법을 보여준다.
-k, --autoclean autoclean 모듈을 로드한다.
-l, --list 커널 모듈들을 보여준다.
-n, --show Don't actually perform the action
-q, --quiet Quiet operation
-s, --syslog 메시지를 syslog로 보낸다
-t, --type moduletype Only look for modules of this type
-V, --version 버전 정보를 보여준다.
-C, --config configfile /etc/modules.conf 파일 대신 지정한 설정파일을 이용한다.
-r 모듈 제거, 의존성 있는 모듈이 사용되고 있지 않다면 알아서 같이 제거한다.

 

/etc/modprobe.conf

/etc/modprobe.d

부팅 시 특정 모듈을 자동으로 적재할 때 사용, 커널 버전 2.4까진 modprobe.conf가 사용

2.6버전부터 /etc/modprobe.d라는 디렉토리에 있는 모든 *.conf 파일을 읽는 방식으로 변경

 

/lib/modules/커널버전/modules.dep

모듈간의 의존성을 관리

모듈 파일명과 함께 의존성 있는 모듈의 목록이 나열돼 있음

의존성이 변경되면 depmod명령어로 의존성을 갱신해 주어야 함

 

modinfo

모듈의 정보를 조회

 

lsmod

현재 시스템에 설치되어 있는 모듈 모듈들의 목록을 볼 수 있다.

 

insmod

모듈 설치

 

rmmod

모듈 삭제

 

depmod

의존성 검사

 


2102

  1. modprobe
  2. -c
  3. -r
  4. modinfo

 

 

2201

1. lsmod

2. modinfo

3. modprobe

4. -r 또는 --remove

 

 

1901

1. modprobe

2. -l

3. -r

4. modinfo


 

참고

https://blog.naver.com/hymne/221055894500

https://raisonde.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%AA%A8%EB%93%88-%EA%B4%80%EB%A6%AClsmod-modprobe-%EB%93%B1

https://blog.naver.com/hymne/221055894500