Linux OS/관리

리눅스 모듈 관리(lsmod, modprobe, modinfo)

서버엔지니어 2023. 3. 12.
728x90

lsmod


lsmod 란 ?

리눅스 커널에 있는 모듈(module)들의 정보를 보여준다. 
리눅스 커널 모듈은 하드웨어의 hot-swappable 부분과 같은 커널에 로드될 수 있는 코드 부분들이다. 
lsmod은 시스템을 리부팅 할 필요없이 활성화될 수 있고 커널에 삽입될 수 있다. 
lsmod 는 옵션 없이 매우 간단한 프로그램이다. 
lsmod은 현재의 모든 리눅스 커널 모듈의 상태에 대한 정보를 포함하는 /proc/moduls 파일의 내용을 포맷한다.  

lsmod = cat /proc/modules

현재 시스템에 설치되어 있는 모듈들의 목록을 볼 수 있다. cat /proc/modules와는 비슷하지만 lsmod가 더 깔끔한 형식으로 보여준다.

3가지 형식으로 분류된다.

Module , Size, Used by

1. Module : 모듈의 이름을 보여준다, 이것은 모듈 파일의 이름이다.  (.o 또는 .ko) 와 같은 확장자는 뺀 정보이다. insmod 명령어로 모듈을 삽입할 때 명시하는 옵션으로 정의된 이름일 수 도 있다.
2. Size : 상주하고 있는 모듈에 의해서 사용되는 메모리의 양을 말한다. byte로 포현함.
3. Used by : 사용되고 있는 모듈의 인스턴스를 표현하는 숫자를 나타낸다. 만약, 숫자가 0이라면 모듈은 현재 사용되고 있지 않는 것이다. 숫자 다음에 있는 텍스트는 모듈이 사용되고 있는 것에 대한 사용 가능한 정보를 표현한다. 보통 디바이스 이름, 파일시스템 식별자, 다른 모듈의 이름이다.

insmod (install module)

모듈을 설치하는 명령어

rmmod (remove module)

모듈을 삭제하는 명령어

 

modprobe

 

modprobe 옵션 파일
insmod 및 rmmod는 의존성 해결에 대한 메커니즘이 없는 반면, modprobe는 기본적으 modules.dep 파일을 참고해 적재 또는 제거 시 의존성 문제를 스스로 해결한다.

주요 옵션
-l : 모든 모듈 목록을 출력한다.
-r : 모듈을 제거한다. 의존성 있는 모듈이 사용되고 있지 않다면 알아서 같이 제거한다.
-c : 모듈 관련 환경 설정 파일의 내용을 전부 출력한다. 

중요 파일
/etc/modprobe.conf
/etc/modprobe.d

부팅 시에 특정 모듈을 자동으로 적재할 때 사용된다. 커널 버전 2.4까진 modprobe.conf가 사용되었지만 2.6버전부터는 /etc/modprobe.d 라는 디렉토리에 있는 모든 *.conf 파일을 읽는 방식으로 변경되었다.

/lib/modules/커널버전/modules.dep
 
모듈간의 의존성을 관리한다. 모듈파일명과 함께 의존성 있는 모듈의 목록이 나열 되어 있다. 의존성이 변경되면 depmod 명령어로 의존성을 갱신해 주어야 한다.

modinfo

modinfo 모듈명
모듈의 정보를 조회

depmod

depmod 옵션 
의존성 검사를 한뒤 modules.dep 파일을 갱신한다. kernald나 modprobe를 실행하기 전엔 꼭 depmod -a를 사용하는 습관을 들인다

댓글