insmod와 modprobe의 차이점은 무엇입니까?

insmod와 modprobe의 차이점은 무엇입니까?

insmod와 modprobe 사이에 차이점이 있나요?

답변1

modprobe모듈을 읽습니다 /lib/modules/$(uname -r)/modules.dep.bin(또는 .bin다른 파일을 사용할 수 없는 경우 접미사 없이). 동일한 파일에서 종속성이 로드됩니다.

modprobe.ko파일 이름 /lib/modules/$(uname -r)(예: nvidia-current파일의 경우 dkms/nvidia-current.ko)과 별칭( modules.alias.bin)을 허용합니다. 내장( modules.alias.bin)도 인식되지만 이러한 모듈은 기본적으로 로드되므로 이러한 종류의 모듈을 모드프로빙할 필요가 없습니다.

insmod반면에 파일 경로를 허용합니다. 모듈은 에 상주할 필요는 없지만 /lib/modules/$(uname -r)종속성은 자동으로 로드되지 않습니다. 모듈을 로드하는 데 사용되는 하위 프로그램입니다 modprobe.

모듈과 관련된 다른 프로그램은 rmmod및 입니다 modinfo.

rmmod에서 이름을 기반으로 커널 이름을 제거합니다 /proc/modules. 이 이름은 전달된 이름과 반드시 ​​동일할 필요는 없습니다 modprobe( 예 nvidia-current: 파일의 경우 ).nvidia

modinfo파일 이름 또는 .ko접미사 없는 파일 이름을 허용합니다 /lib/modules/$(uname -r).

답변2

man insmod:

대부분의 사용자는 더 영리하고 모듈 종속성을 처리할 수 있는 modprobe를 대신 사용하기를 원할 것입니다.

답변3

modprobe지능형 명령이므로 모듈을 로드하는 동안 종속성을 찾습니다. 다른 모듈에 정의된 기호가 있는 모듈을 로드했다고 가정해 보겠습니다(이 모듈 경로는 기본 모듈 내부에 제공됩니다). 따라서 modprobe기본 모듈과 종속 모듈을 로드합니다.

그러나 insmod를 사용하면 종속성을 로드하지 않으므로 Unresolved symbols. 이 경우 오류를 해결하려면 종속 모듈을 수동으로 찾아서 로드해야 합니다.

답변4

modprobe 명령은 보다 기본적인 insmod 및 rmmod 유틸리티보다 더 많은 기능을 제공합니다. modprobe는 Linux 커널에서 모듈을 지능적으로 추가하거나 제거합니다. 편의상 모듈 이름에 _ 와 - 사이에는 차이가 없다는 점에 유의하세요. (자동 밑줄 변환이 수행됩니다.) modprobe는 모듈 디렉터리 /lib/modules/에서 uname -r/etc/modprobe.d 디렉터리의 선택적 구성 파일을 제외하고 모든 모듈과 기타 파일을 찾습니다(일부 배포판에서는 대신 /etc/modprobe.conf 파일을 사용함).

더 많이 알고

관련 정보