i2c-dev
로드 할 커널 모듈을 찾고 있는데 i2c-bcm2708
명령 modprobe
이 반환됩니다.
sudo modprobe i2c-dev
modprobe: module i2c-dev not found in modules.dep
시스템에서 사용 가능한 모든 모듈을 나열하는 방법은 무엇입니까? 어느 디렉토리에 있습니까?
답변1
기본적으로 모듈은 이 디렉터리에 있는 커널 하위 디렉터리
modprobe
에서 로드됩니다./lib/modules/$(uname -r)
일반적으로 모든 파일에는 확장자가 있으므로.ko
다음을 사용하여 나열할 수 있습니다.find /lib/modules/$(uname -r) -type f -name '*.ko'
또는 파일 압축을 고려해보세요.
find /lib/modules/$(uname -r) -type f -name '*.ko*'
/lib/modules/$(uname -r)/modules.alias
( 및 ) 에 저장된 별칭을 참조하여 각 모듈을 로드할 수도 있습니다modules.alias.bin
.그러나 모듈을 성공적으로 로드하려면 해당 종속성 (및 해당 바이너리 버전 )이
modprobe
파일에 나열되어야 합니다 . 모듈이 시스템에 있지만 목록에 없으면 해당 종속성을 생성하고 자동으로 모듈을 into 및 out 에 포함시키는 명령을 실행해야 합니다 ./lib/modules/$(uname -r)/modules.dep
modules.dep.bin
depmod
modules.dep
modules.dep.bin
또한 모듈이 성공적으로 로드되면 파일에 나열됩니다
/proc/modules
(명령을 통해 액세스할 수도 있음lsmod
).
답변2
Enter를 누르고 modprobe
Tab을 누르면 자동 완성 목록에 로드 가능한 모든 모듈이 포함되어야 합니다.
답변3
lsmod
패키지 명령이 있습니다kmod
아키텍처Linux.modinfo
rmmod
modprobe
도착하다나다음은 입력할 수 있는 패키지에서 제공하는 모든 바이너리입니다.
pacman -Ql kmod | grep /bin/ --color=always
, 확인할 수도 있습니다오pacman -Qo lsmod
.wner가 포함된 바이너리 패키지
Q
스위치는큐로컬에 설치된 패키지 쿼리 S
(에스동기화, 즉 원격 검사).
답변4
자동 완성이 어떻게 작동하는지 확인할 수 있습니다.
$ complete -p modprobe
complete -F _modprobe modprobe
declare -f _modprobe
_modprobe ()
{
...
해당 함수에는 내부_installed_modules
$ declare -f _installed_modules
_installed_modules ()
{
COMPREPLY=($(compgen -W "$(PATH="$PATH:/sbin" lsmod |
awk '{if (NR != 1) print $1}')" -- "$1"))
}
그러면 lsmod | awk '{if (NR != 1) print $1}'
모듈 목록이 표시되어야 합니다.