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

이름

depmod -로드 가능한 커널 모듈에 대한 종속성 설명을 처리합니다.

개요

depmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F kernelsyms ] [-b 기반 디렉토리 ] [ forced_version ]
depmod [-enqrsuv] [-F kernelsyms ] module1.o module2.o ...

기술

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

Depmod 는 명령 줄에서 언급 한 모듈 집합이나 구성 파일에 지정된 디렉토리에서 찾은 심볼을 기반으로 "Makefile"과 같은 종속 파일을 만듭니다. 이 의존성 파일은 modprobe 에 의해 나중에 올바른 모듈 또는 모듈 스택을 자동으로로드하는 데 사용됩니다.

depmod 의 정상적인 사용은 라인을 포함시키는 것입니다.


/ sbin / depmod -a

/etc/rc.d 에있는 rc 파일의 어딘가에 설치하면 시스템을 부팅 한 후 올바른 모듈 종속성을 사용할 수 있습니다. -a 옵션은 이제 선택 사항입니다. 부팅을 목적으로 -q 옵션을 사용하면 depmod가 미해결 심볼에 대해 침묵하게되므로 더 적절할 수 있습니다.

새로운 커널을 컴파일 한 직후에 의존성 파일을 생성하는 것도 가능합니다. 커널 2.2.99와 그 모듈을 처음 컴파일했을 때 " 2.2.99 "를 실행했다면 2.2.98과 같이 계속 실행하면서 파일이 올바른 위치에 생성됩니다. 그러나이 경우 커널에 대한 종속성은 올바르지 않을 수 있습니다. 이 문제를 처리하는 방법에 대한 자세한 내용은 위의 -F , -C-b 옵션을 참조하십시오.

모듈과 다른 모듈에서 내 보낸 심볼 사이의 관계를 구축하는 동안, depmod 는 모듈이나 내 보낸 심볼의 GPL 상태를 고려하지 않습니다. 즉, GPL 호환 라이센스가없는 모듈이 GPL 전용 심볼 (커널의 EXPORT_SYMBOL_GPL)을 참조하는 경우 depmod는 오류를 플래그하지 않습니다. 그러나 insmod 는 GPL이 아닌 모듈에 대한 심볼 만 GPL 해결을 거부하므로 실제로드가 실패합니다.

옵션

-a , --all

(선택적) 구성 파일 /etc/modules.conf에 지정된 모든 디렉토리에서 모듈을 검색하십시오.

-A , --quick

파일 타임 스탬프를 비교하고, 필요하다면 depmod -a 처럼 행동하십시오. 이 옵션은 변경된 사항이있을 경우에만 종속 파일을 업데이트합니다.

-e , --errsyms

각 모듈에 대해 확인되지 않은 모든 기호를 표시하십시오.

-h , --help

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

-n , --show

의존성 파일을 / lib / modules 트리가 아닌 stdout에 작성하십시오.

-q , --quiet

depmod에게 침묵을 지키고 누락 된 상징에 대해 불평하지 말라고하십시오.

-r , --root

일부 사용자는 비 루트 사용자 ID로 모듈을 컴파일 한 다음 루트로 모듈을 설치합니다. 이 프로세스는 modules 디렉토리가 root에 의해 소유되어 있더라도 비 루트 사용자 ID가 소유 한 모듈을 남겨 둘 수 있습니다. 비 루트 사용자 ID가 유출 된 경우, 침입자는 해당 사용자 ID가 소유 한 기존 모듈을 겹쳐 쓰고이 노출을 사용하여 루트 액세스까지 부트 스트랩 할 수 있습니다.

기본적으로 modutils는 루트가 소유하지 않은 모듈 사용 시도를 거부합니다. -r 을 지정하면 오류가 표시되지 않고 root가 루트 소유가 아닌 모듈을로드 할 수 있습니다.

-r의 사용은 주요 보안 노출이므로 권장되지 않습니다.

-s , --syslog

stderr 대신 syslog 데몬을 통해 모든 오류 메시지를 작성하십시오.

-u , --unresolved-error

depmod 2.4는 해결되지 않은 기호가있을 때 리턴 코드를 설정하지 않습니다. modutils (2.5)의 다음 주요 릴리스에서는 해결되지 않은 기호에 대한 리턴 코드를 설정합니다. 일부 배포판은 modutils 2.4에서 0이 아닌 반환 코드를 원하지만이 변경은 이전 동작을 예상하는 사용자에게 문제를 일으킬 수 있습니다. depmod 2.4에서 0이 아닌 리턴 코드를 원하면 -u를 지정하십시오. depmod 2.5는 자동으로 -u 플래그를 무시하고 미해결 심볼에 대해 항상 0이 아닌 리턴 코드를 제공합니다.

-v , - 자세한 정보 표시

처리중인 각 모듈의 이름을 표시하십시오.

-V , --version

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

다음 옵션은 분배를 관리하는 사람들에게 유용합니다.

-b 기반 디렉토리 , -basedir 기반 디렉토리

모듈 의 하위 트리를 포함 하는 디렉토리 트리 / lib / modules 가 다른 환경의 모듈을 처리하기 위해 다른 곳으로 이동되면 -b 옵션은 depmod에게 / lib / modules 트리의 이동 된 이미지를 찾을 위치를 알려줍니다. depmod 출력 파일 ( modules.dep) 에있는 파일 참조는 기반 디렉토리 경로를 포함하지 않습니다. 즉, 파일 트리가 최종 배포판의 / lib / modules 디렉토리 에서 / lib / modules 디렉토리 로 다시 이동하면 모든 참조가 올바른 것입니다.

-C configfile , --config configfile

/etc/modules.conf 대신 configfile 파일을 사용하십시오 . 환경 변수 MODULECONF 를 사용하여 기본 /etc/modules.conf (또는 /etc/conf.modules (비추천))에서 다른 구성 파일을 선택할 수도 있습니다.

환경 변수

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

-F kernelsyms , --fileiles kernelsyms

현재 실행중인 커널과 다른 커널에 대한 종속 파일을 빌드 할 때 depmod 가 올바른 커널 심볼 세트를 사용하여 각 모듈의 커널 참조를 해결하는 것이 중요합니다 . 이 기호는 다른 커널의 System.map 사본이거나 / proc / ksyms 의 출력 사본 일 수 있습니다. 커널이 버전이있는 기호를 사용하는 경우 / proc / ksyms 출력의 복사본을 사용하는 것이 가장 좋습니다.이 파일에는 기호 버전의 커널 기호가 포함되어 있기 때문입니다. 그러나 버전 기호가있는 System.map 도 사용할 수 있습니다.

구성

depmodmodprobe 의 동작은 (선택적) 설정 파일 /etc/modules.conf에 의해 조정될 수 있습니다.
자세한 설명은 modprobe (8) 및 modules.conf (5)를 참조하십시오.

병법

새 커널을 컴파일 할 때마다 " make modules_install "명령 을 실행 하면 새 디렉토리가 만들어 지지만 기본값은 변경되지 않습니다.

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

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

참고 사항

lsmod (8), ksyms (8)

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