드라이버가 커널 모듈인지 또는 정적으로 링크되어 있는지 런타임에 알 수 있는 방법이 있습니까?

드라이버가 커널 모듈인지 또는 정적으로 링크되어 있는지 런타임에 알 수 있는 방법이 있습니까?

특정 장치의 드라이버가 커널 모듈인지(정적으로 링크되는 것이 아니라) 확인하는 테스트를 만들어야 합니다. 런타임에 이 정보를 알 수 있는 방법이 있나요? 감사해요!

답변1

lsmod현재 로드된 커널 모듈이 나열됩니다. 따라서 드라이버가 목록에 없으면 커널에 내장되어 있거나 로드되지 않은 것입니다. 대부분의 배포판에서는 /boot사용된 커널 구성 옵션이 포함된 디렉터리에 구성 파일을 저장해야 합니다 . 동일한 커널 버전에 대한 소스 코드를 다운로드하고 압축을 풀면 구성 파일을 .config소스 트리 상단에 복사한 다음 을 실행하면 make menuconfig구성 설정을 탐색하고 해당 드라이버가 어떻게 구성되어 있는지 확인할 수 있습니다.

어떤 경우에는 커널 구성이 실제로 커널 자체에 내장되어 있지만 이에 액세스하는 방법을 찾아야 합니다. :)

편집하다:

더 빠를 수 있는 또 다른 옵션(PCI 장치인 경우)은 를 실행하는 것입니다 lspci -v. 이 출력에서는 현재 사용 중인 드라이버의 이름을 알려줍니다. lsmod에 나열되어 있지 않으면 내장되어 있어야 한다는 것을 알 수 있습니다.

관련 정보