[unix] 로드 가능한 모든 커널 모듈을 나열하는 방법은 무엇입니까?

나는로드하는 데 몇 커널 모듈을 찾고 있어요 i2c-devi2c-bcm2708. 그러나 modprobe명령은 다음을 반환합니다.

sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep

시스템에서 사용 가능한 모든 모듈을 어떻게 나열합니까? 어느 디렉토리에 있습니까?



답변

  • 기본적으로 modprobe디렉토리에있는 서브 디렉토리에서 모듈을로드합니다 /lib/modules/$(uname -r). 일반적으로 모든 파일의 확장자 .ko는이므로 함께 나열 할 수 있습니다.

    find /lib/modules/$(uname -r) -type f -name '*.ko'
    

    또는 압축 파일을 고려하여 :

    find /lib/modules/$(uname -r) -type f -name '*.ko*'
    
  • 그러나 모듈을 성공적으로로드 modprobe하려면 파일 /lib/modules/$(uname -r)/modules.dep(및 해당 바이너리 버전 modules.dep.bin)에 나열된 해당 종속성이 필요합니다 . 시스템에 일부 모듈이 있지만 목록에없는 경우 depmod이러한 종속성을 생성하고 모듈을 modules.depand에 자동으로 포함시키는 명령 을 실행해야합니다 modules.dep.bin.

  • 또한 모듈이 성공적으로로드되면 파일에 나열됩니다 /proc/modules(command를 통해 액세스 할 수도 있음 lsmod).


답변

입력 modprobe하고 탭을 누르면 자동 완성 목록에 모든로드 가능한 모듈이 포함되어야합니다


답변

lsmod의 명령 kmod에 패키지 아치 리눅스 나열하고 같은 다른 유용한 명령이 포함되어 리눅스 커널 모듈의 상태를 보여줍니다 무엇을 modinfo, rmmod modprobe너무가.

리터의 사용자가 입력 할 수있는 패키지가 제공하는 모든 바이너리는 인도 표준시 :

pacman -Ql kmod | grep /bin/ --color=always

, 당신은 또한 확인할 수 있습니다 와 이진의 wner 패키지 pacman -Qo lsmod.


Q스위치이다 q를 uery 로컬로 설치된 패키지 (달리 S의의 ynchronize, 예. 원격으로 확인).


답변

사용하는 것을 선호합니다 depmod. 명령 :을 사용하면 depmod -av|grep MOD_NAME시스템은 modules.dep / map 파일을 생성하고 grep합니다. 이 -v매개 변수는 자세한 정보를 제공하고 -a가능한 모든 모듈 /lib/modules/이 modules.dep 파일에 사용되도록합니다.

이렇게하면 요청 된 커널 모듈이 커널에로드 가능한 것으로 매핑 될 수 있습니다. 원하는 커널 모듈이 출력에 나열되지 않으면 커널이 찾지 못할 것입니다.


답변