시스템 부팅 시 로드되는 커널 모듈 이름의 특정 목록이나 위치가 있는지 궁금합니다.
lsmod
또는 로드된 명령만 표시하는 것과 같은 명령입니다 cat /proc/kallsyms
.
어떤 모듈이 수동으로 로드되었는지 확인하고 싶습니다.
미리 감사드립니다!
답변1
여러 목록이 있을 수 있습니다. 하나는 initramfs에 로드된 커널 모듈(즉, 기본 I/O 및 루트 파일 시스템에 대한 액세스에 필요한 모듈)에 대한 것이고 다른 목록은 루트 파일 시스템이 마운트된 후에 로드됩니다.
/etc/initramfs-tools/modules
Debian 및 Ubuntu와 같은 관련 Linux 배포판의 경우 initramfs에 로드할 모듈(나열된 특정 순서)과 /etc/modules-load.d/
루트 파일 시스템에 액세스할 수 있게 된 후 로드할 모듈을 지정하기 위한 드롭다운 디렉터리가 있습니다 .
initramfs 생성자를 사용하는 배포의 경우 및/또는 및/또는 줄에 대한 파일을 dracut
살펴볼 수 있습니다 . 이를 통해 지정된 모듈이 initramfs에 추가되고 로드되는 경우가 발생합니다./etc/dracut.conf
/etc/dracut.conf.d/*.conf
add_drivers
force_drivers
filesystems
force_drivers
이 외에도 최신 시스템에서는 일반적으로 많은 모듈이 하드웨어 자동 감지를 통해 로드됩니다. 커널은 자동 감지 가능 버스에서 감지된 하드웨어 ID를 특정 모듈 별칭으로 형식화하고 모듈 자체에는 하드웨어와 일치하는 와일드카드 문자열이 포함됩니다. 지원하다. 일치하는 항목이 발견되면 일치하는 모듈이 로드됩니다. 각 드라이버 모듈에는 일반적으로 모듈과 하드웨어 간의 호환성을 추가로 확인할 수 있는 보다 자세한 하드웨어 감지 루틴이 있습니다.
시스템 버스를 자동 감지하지 못하는 아키텍처(예: RasPi 및 다양한 내장 장치)에서 "장치 트리"( .dtb
커널 이미지에 첨부되거나 부트로더에 의해 별도로 로드되는 파일)는 시스템 하드웨어를 설명합니다. 여기에는 호환을 위한 식별자가 포함됩니다. "프로그래밍 모델"은 적절한 모듈이 자동으로 로드될 수 있도록 커널에서 모듈 별칭 문자열을 형성하는 데 사용됩니다.
커널 개발자의 목표는 합리적으로 가능한 한 커널 모듈 로딩을 자동화하는 것입니다.