Ubuntu
표시해주는 기계가 있어요
root@test:/etc# lsmod | tail
crypto_simd 16384 1 aesni_intel
net_failover 20480 1 virtio_net
cryptd 24576 2 crypto_simd,ghash_clmulni_intel
drm 622592 3 drm_kms_helper,cirrus
psmouse 176128 0
i2c_piix4 32768 0
virtio_blk 20480 1
failover 16384 1 net_failover
pata_acpi 16384 0
floppy 118784 0
/etc/modules-load.d
그러나 위 모듈에는 또는 에 항목이 없습니다 /etc/modprobe.d
.
내 질문은, 위 디렉토리에 항목이 없으면 이 모듈을 어떻게 로드할 수 있느냐는 것입니다.
답변1
일부 모듈은 다른 모듈이 이에 의존하기 때문에 로드됩니다. 귀하의 예에서는 필요하기 때문에 로드되고 필요하기 때문에 failover
로드됩니다 . 목록의 네 번째 열은 이와 같은 종속성을 나타냅니다.net_failover
net_failover
virtio_net
net_failover
lsmod
하드웨어 정보가 펌웨어(예: ACPI 또는 DMI)에 의해 제공되거나 하드웨어가 자동으로 감지 가능한 경우(예: PCI/PCIe, USB 버스 또는 CPU 유형) 커널은 자동으로 해당 모듈을 로드할 수 있습니다.
다음 줄 다음에 sudo modprobe -c | less
긴 시퀀스를 실행하고 찾습니다 .alias
# End of configuration files. Dumping indexes now:
기본적으로 커널 모듈에는 펌웨어 또는 버스별 자동 검색 메커니즘이 제공할 수 있는 식별자를 사용하여 지원하는 하드웨어를 설명하기 위해 별칭 정보가 내장되어 있습니다. 모듈 도구는 이 정보를 색인으로 수집하여 구성의 일부로 만듭니다 modprobe
.
커널이 하드웨어를 조사한 후에는 펌웨어에서 제공한 정보나 하드웨어 자동 조사 결과를 사용하여 각 펌웨어 또는 버스 유형에 특정한 방식으로 형식화된 이름을 사용하여 모듈 로드 요청을 생성합니다. 나열된 별칭 중 하나가 커널에서 요청한 별칭과 일치하면 해당 모듈이 로드됩니다.
/etc/initramfs-tools/modules
루트 파일 시스템을 마운트하기 전에 initramfs에 포함되고 로드되어야 하는 모듈 목록을 지정하는 데 사용할 수 있는 file 도 있습니다 .
귀하의 구체적인 경우:
crypto_simd
aesni_intel
CPU 유형별 자동 감지 별칭을 사용하여 로드할 수 있는 종속성으로 로드됩니다 .cryptd
crypto_simd
두 모듈 (위 참조) 에 의해 로드되어야 하며ghash_clmulni_intel
, 이는 CPU 유형별 자동 검색 별칭에 의해 로드될 수 있습니다.GPU
cirrus
모듈은 PCI ID에 의해 자동으로 감지된 다음 종속성drm_kms_helper
으로 필요할 수 있습니다. 또한 에 대한 자체 종속성을 지정합니다 .drm
drm_kms_helper
drm
psmouse
, ACPI 펌웨어 정보에 의해 자동으로 감지될 수 있습니다pata_acpi
.floppy
i2c_piix4
PCI 장치 ID를 통해 자동으로 감지될 수 있습니다.virtio_blk
VirtIO 특정 감지 메커니즘에 의해 자동으로 감지될 수 있으며virtio_net
VirtIO는 virtio 버스 드라이버가 로드되면(또는 기본 커널에 내장된 경우) ACPI 정보 또는 PCI 장치 ID를 통해 자체적으로 감지될 수 있는 "가상 버스"를 정의합니다. , 사용 가능한 VirtIO 기능을 하이퍼바이저/호스트 OS에 쿼리하는 자체 방법이 있습니다. 쿼리에 대한 응답을 기반으로 커널이 요청되었으며virtio_blk
로드virtio_net
됩니다.