Linux 커널에 정적으로 빌드 된 활성 드라이버 목록을 얻는 방법은 무엇입니까?


28

lsmod현재 활성 커널 모듈을 표시하기 위해 사용할 수 있지만 커널에 정적으로 빌드되어 현재 활성화 된 드라이버는 어떻게 확인할 수 있습니까?

답변:


28

당신은 할 수 있습니다 cat /lib/modules/$(uname -r)/modules.builtin

커널 문서에서

모듈.

이 파일은 커널에 내장 된 모든 모듈을 나열합니다. 이것은 내장 된 것을로드하려고 할 때 실패하지 않기 위해 modprobe에 의해 사용됩니다.


modules.builtin이 uname 인 시스템에 존재하지 않습니다 : Linux ecp 4.4.127-1.el6.elrepo.i686 # 1 SMP Sun Apr 8 09:44:43 EDT 2018 i686 i686 i386 GNU / Linux. 어떤 드라이버가 내장되어 있는지 확인하는 다른 방법이 있습니까?
대니

@Danny uname -r더 많이 사용 하지 말고 사용하십시오uname -a
Nairou

7

리눅스에 /proc/config.gz가있는 경우

그것은 모든 내장 모듈을 가지고 있습니다. 다른 곳에 복사하여 압축을 푸십시오. 파일을 열면 "= M"으로 모든 것이 모듈로 작성됩니다. "= Y"인 모든 항목은 정적으로 빌드됩니다.

hwinfo는 "드라이버 :"를 나열합니다. 위 파일을 확인하여 정적으로 빌드되었는지 확인하십시오.

참고 : 정적으로 빌드 된 모든 드라이버는 항상 메모리에로드되고 작업 준비가 완료됩니다. 해당 하드웨어가 없으면 아무것도하지 않고 메모리를 사용합니다.


1
없는 경우 어떻게 /proc/config.gz합니까?
JohnnyFromBF

방금 커널을 컴파일 한 디렉토리에서 .config 파일을 찾았습니다.
JohnnyFromBF

1
이 파일은 다음 위치에도 있습니다 /boot/config-$(uname -r)..
JohnnyFromBF

1
ls /sys/module

모든 내장 및 외부 모듈이 포함 된 것 같습니다.

그러나 실제로 모듈이 아닌 일부 항목이 포함 된 것으로 보입니다 : https://unix.stackexchange.com/questions/225706/are-modules-listed-under-sys-module-all-the-loaded-modules

TODO : 소스를 읽고 거기에 무엇이 들어가는 지 더 정확하게 이해하십시오.

이 방법의 장점은 /boot또는 에서 커널 구성을 찾을 수 없다는 것 /proc/config.gz입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.