4.18. KMM 펌웨어 지원
커널 모듈은 파일 시스템에서 펌웨어 파일을 로드해야 하는 경우가 있습니다. KMM은 kmod 이미지의 펌웨어 파일을 노드의 파일 시스템으로 복사할 수 있도록 지원합니다.
modprobe
명령을 실행하여 커널 모듈을 삽입하기 전에 .spec.moduleLoader.container.modprobe.firmwarePath
의 콘텐츠가 노드의 /var/lib/firmware
경로에 복사됩니다.
Pod가 종료되면 modprobe -r
명령을 실행하기 전에 모든 파일과 빈 디렉터리가 해당 위치에서 제거됩니다.
4.18.1. 노드에서 조회 경로 구성
OpenShift Container Platform 노드에서 펌웨어의 기본 조회 경로 세트에 /var/lib/firmware
경로가 포함되지 않습니다.
프로세스
Machine Config Operator를 사용하여
/var/lib/firmware
경로가 포함된MachineConfig
CR(사용자 정의 리소스)을 생성합니다.apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker 1 name: 99-worker-kernel-args-firmware-path spec: kernelArguments: - 'firmware_class.path=/var/lib/firmware'
- 1
- 필요에 따라 라벨을 구성할 수 있습니다. 단일 노드 OpenShift의 경우
control-pane
또는master
오브젝트를 사용합니다.
-
MachineConfig
CR을 적용하면 노드가 자동으로 재부팅됩니다.
추가 리소스
4.18.2. kmod 이미지 빌드
프로세스
커널 모듈 자체를 빌드하는 것 외에도 빌더 이미지에 바이너리 펌웨어를 포함합니다.
FROM registry.redhat.io/ubi9/ubi-minimal as builder # Build the kmod RUN ["mkdir", "/firmware"] RUN ["curl", "-o", "/firmware/firmware.bin", "https://artifacts.example.com/firmware.bin"] FROM registry.redhat.io/ubi9/ubi-minimal # Copy the kmod, install modprobe, run depmod COPY --from=builder /firmware /firmware
4.18.3. 모듈 리소스 튜닝
프로세스
Module
CR(사용자 정의 리소스)에서.spec.moduleLoader.container.modprobe.firmwarePath
를 설정합니다.apiVersion: kmm.sigs.x-k8s.io/v1beta1 kind: Module metadata: name: my-kmod spec: moduleLoader: container: modprobe: moduleName: my-kmod # Required firmwarePath: /firmware 1
- 1
- 선택 사항:
/firmware/*
를 노드의/var/lib/firmware/
로 복사합니다.