Modprobe - 리눅스 명령 - 유닉스 명령

이름

modprobe -로드 가능한 모듈의 상위 레벨 처리

개요

modprobe [-adnqv] [-C config ] 모듈 [기호 = 값 ...]
modprobe [-adnqv] [-C config ] [-t type ] 패턴
modprobe -l [-C config ] [-t type ] 패턴
modprobe -c [-C config ]
modprobe -r [-dnv] [-C config ] [module ...]
modprobe -Vh

옵션

-a , --all

첫 번째 성공적인로드 후에 중지하는 대신 모든 일치하는 모듈을로드하십시오.

-c , --showconfig

현재 사용중인 구성을 표시합니다.

-C , --config 설정

(선택 사항) /etc/modules.conf 대신 config 파일을 사용하여 구성을 지정하십시오. 환경 변수 MODULECONF 는 또한 기본 /etc/modules.conf (또는 /etc/conf.modules (비추천))에서 다른 구성 파일을 선택 (및 재정의)하는 데 사용할 수 있습니다.

환경 변수 UNAME_MACHINE 이 설정되면 modutils는 uname () 시스템 호출의 machine 필드 대신 해당 값을 사용합니다. 이는 주로 32 비트 사용자 공간에서 64 비트 모듈을 컴파일하거나 그 반대로 컴파일 할 때 UNAME_MACHINE 을 모듈 유형으로 설정할 때 주로 사용됩니다. 현재 modutils는 모듈에 대한 전체 교차 빌드 모드를 지원하지 않으며 호스트 아키텍처의 32 비트와 64 비트 버전 중에서 선택하는 것으로 제한됩니다.

-d , --debug

모듈 스택의 내부 표현에 대한 정보를 표시합니다.

-h , --help

옵션 요약을 표시하고 즉시 종료하십시오.

-k , --autoclean

로드 된 모듈에 'autoclean'을 설정하십시오. 누락 된 기능 (모듈로 제공)을 충족시키기 위해 modprobe 를 호출 할 때 커널이 사용합니다. -q 옵션은 -k에 의해 암시됩니다. 이 옵션들은 insmod로 자동 전송됩니다.

-l , --list

일치하는 모듈을 나열하십시오.

-n , --show

실제로 행동을 취하지 말고, 수행 할 행동을 보여주십시오.

-q , --quiet

insmod 가 모듈을 설치하지 못했다고 불평하지 마십시오. 정상적으로 계속하지만 modprobe가 테스트 할 수있는 다른 가능성이 있습니다. 이 옵션은 자동으로 insmod 로 전송됩니다.

-r , --remove

명령 줄에 언급 된 모듈이 있는지 여부에 따라 모듈 (스택)을 제거하거나 자동 제거를 수행하십시오.

-s , --syslog

stderr 대신 syslog를 통해보고하십시오. 이 옵션은 자동으로 insmod 로 전송됩니다.

-t moduletype ; - 유형 moduletype

이 유형의 모듈 만 고려하십시오. modprobe는 디렉토리 경로가 정확하게 " / moduletype / "을 포함하는 모듈만을 볼 것입니다. moduletype 은 하나 이상의 디렉토리 이름을 포함 할 수 있습니다. 예를 들어 " -t drivers / net "은 xxx / drivers / net / 과 그 하위 디렉토리에 모듈을 나열합니다.

-v , --verbose

실행 된 모든 명령을 인쇄하십시오.

-V, --version

modprobe 의 버전을 표시하십시오.

노트 :

모듈 이름은 경로 ( '/'없음)를 포함해서는 안되며, 뒤에 '.o'가 포함될 수 없습니다. 예를 들어 slip은 modprobe 의 유효한 모듈 이름이고 /lib/modules/2.2.19/net/slip 및 slip.o는 유효하지 않습니다. 이것은 명령 행과 구성의 항목에 적용됩니다.

기술

modprobedepmod 유틸리티는 모든 사용자, 관리자 및 배포 유지 관리자가 관리 할 수있는 Linux 모듈 식 커널을 만들기위한 것입니다.

Modprobedepmod 에 의해 생성 된 "Makefile"과 같은 의존성 파일을 사용하여 미리 정의 된 디렉토리 트리에서 사용할 수있는 모듈 집합에서 관련 모듈을 자동으로로드합니다.

Modprobe 는 단일 모듈, 종속 모듈 스택 또는 지정된 태그로 표시된 모든 모듈을로드하는 데 사용됩니다.

Modprobemodules.dep 종속 파일에 설명 된대로 모듈 스택에 필요한 모든 기본 모듈을 자동으로로드합니다. 이러한 모듈 중 하나의로드가 실패하면 현재 세션에로드 된 모듈의 현재 스택 전체가 자동으로 언로드됩니다.

Modprobe 는 두 가지 방법으로 모듈을 적재 할 수 있습니다. 한 가지 방법 (프로브 모드)은 목록에서 모듈을로드하려고 시도합니다 ( 패턴에 의해 정의 됨). 모듈 하나가 성공적으로로드되면 Modprobe 는 로딩을 중지합니다. 이것은 하나의 이더넷 드라이버를 목록에서 자동로드하는 데 사용될 수 있습니다.
modprobe를 사용할 수있는 다른 방법은 목록에서 모든 모듈을로드하는 것입니다. 아래의 예를 참조하십시오.

-r 옵션을 사용하면 modprobe가 " rmmod -r "과 유사한 모듈 스택을 자동으로 언로드합니다. " modprobe -r "을 사용하면 사용되지 않는 자동로드 모듈을 정리하고 설정 파일 /etc/modules.conf 에서 사전 및 사후 제거 명령을 수행합니다.

옵션 -l-t를 결합하면 특정 유형의 사용 가능한 모든 모듈이 나열됩니다.

-c 옵션은 현재 사용 된 구성 (기본 + 구성 파일)을 인쇄합니다.

구성

modprobe (및 depmod )의 동작은 (선택적) 구성 파일 /etc/modules.conf에 의해 수정 될 수 있습니다.
depmodmodprobe 에서 사용하는 기본 구성뿐만 아니라이 파일에 포함 할 수있는 내용에 대한 자세한 내용은 modules.conf (5)를 참조하십시오.

모듈이 kerneld에 의해 "autocleaned"되면 제거 전 및 제거 명령이 실행 되지 않습니다 ! 영구 모듈 저장 장치에 대한 최신 지원을 찾으십시오.
사전 및 사후 설치 기능을 사용하려면 kerneld에 대한 autoclean 기능을 끄고 대신 crontab에 다음 줄을 입력해야합니다 (kmod 시스템에도 사용됨). 2 분마다 autoclean을 수행합니다 :

* / 2 * * * * test -f / proc / modules && / sbin / modprobe -r

병법

아이디어는 modprobe 가 커널의 현재 릴리스 용으로 컴파일 된 모듈을 포함하는 디렉토리를 먼저 찾습니다. 모듈이 거기에 없으면 modprobe 는 커널 버전 (예 : 2.0, 2.2)의 디렉토리를 검색합니다. 모듈이 여전히 발견되면, modprobe 는 모듈을 포함하는 디렉토리에서 기본 릴리스를 찾습니다.

새 Linux를 설치하면 모듈은 설치하려는 커널의 릴리스 (및 버전)와 관련된 디렉토리로 이동해야합니다. 그런 다음이 디렉토리에서 "기본"디렉토리로의 심볼릭 링크를 수행해야합니다.

새 커널을 컴파일 할 때마다 " make modules_install "명령은 새 디렉토리를 만들지 만 "기본"링크는 변경하지 않습니다.

커널 배포판과 무관 한 모듈을 얻으려면 / lib / modules 아래의 버전 독립적 인 디렉토리 중 하나에 배치해야 합니다 .

이것은 기본 전략이며 /etc/modules.conf 에서 재정의 할 수 있습니다.

사용 예

modprobe -t net

"net"태그가 지정된 디렉토리에 저장된 모듈 중 하나를로드하십시오. 각 모듈은 성공할 때까지 시도됩니다.

modprobe -a -t boot

"boot"태그가 지정된 디렉토리에 저장된 모든 모듈이로드됩니다.

modprobe 전표

슬립 모듈에 slhc 모듈의 기능이 필요하기 때문에 이전에로드되지 않은 경우 slhc.o 모듈을로드하려고 시도합니다. 이 종속성은 depmod에 의해 자동으로 생성 된 modules.dep 파일에 설명되어 있습니다.

modprobe -r slip

이것은 슬립 모듈을 내릴 것입니다. 또한 다른 모듈 (예 : ppp)에서 사용하지 않는 한 자동으로 slhc 모듈을 언로드합니다.

관련 항목

depmod (8), lsmod (8), kerneld (8), ksyms (8), rmmod (8).

안전 모드

유효 사용자 식별자가 실제 사용자 식별자와 같지 않으면 modprobe 는 입력을 극단적 인 의심으로 처리합니다. 마지막 매개 변수는 '-'로 시작하더라도 항상 모듈 이름으로 처리됩니다. 하나의 모듈 이름 만있을 수 있으며 "variable = value"형식의 옵션을 사용할 수 없습니다. 모듈 이름은 항상 문자열로 취급되므로 안전 모드에서는 메타 확장이 수행되지 않습니다. 그러나 메타 확장은 구성 파일에서 읽은 데이터에 계속 적용됩니다.

커널에서 modprobe를 호출 할 때 euid가 uid와 같지 않을 수 있습니다. 커널> = 2.4.0-test11에 해당합니다. 이상적인 세계에서 modprobe 는 커널이 modprobe에 유효한 매개 변수만을 전달할 수 있다고 믿을 수 있습니다. 그러나 높은 수준의 커널 코드가 검증되지 않은 매개 변수를 사용자가 직접 modprobe에 전달 했으므로 적어도 하나의 로컬 루트 익스플로잇이 발생했습니다. 따라서 modprobe는 더 이상 커널 입력을 신뢰하지 않습니다.

modprobe 는 환경이이 문자열들로만 구성되어있을 때 안전 모드를 자동으로 설정합니다.

HOME = / TERM = linux PATH = / sbin : / usr / sbin : / bin : / usr / bin

이렇게하면 이전 커널에서 수행하는 uid == euid 인 경우에도 커널 2.2에서 2.4.0-test11까지의 커널에서 modprobe 실행이 감지됩니다.

로깅 명령

/ var / log / ksymoops 디렉토리가 존재하고 모듈을로드하거나 삭제할 수있는 옵션으로 modprobe 를 실행하면 modprobe는 해당 명령을 기록하고 / var / log / ksymoops /`date + % Y % m % d에 상태를 반환합니다 .log` . 이 자동 로깅을 비활성화하는 스위치는 없으므로 원하지 않으면 / var / log / ksymoops를 만들지 마십시오. 해당 디렉토리가 존재하면 루트가 소유하고 644 또는 600 모드 여야 하며 매일 insmod_ksymoops_clean 스크립트를 실행해야합니다.

필수 유틸리티

depmod (8), insmod (8).

중요 : man 명령 ( % man )을 사용하여 특정 컴퓨터에서 명령이 어떻게 사용되는지보십시오.