[리눅스] modprobe
커널 컴파일 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
- modprobe
- -c
- -r
- modinfo
2201
1. lsmod
2. modinfo
3. modprobe
4. -r 또는 --remove
1901
1. modprobe
2. -l
3. -r
4. modinfo
참고