4.10. KMM 펌웨어 지원
커널 모듈은 파일 시스템에서 펌웨어 파일을 로드해야 하는 경우가 있습니다. KMM은 ModuleLoader 이미지에서 노드의 파일 시스템으로 펌웨어 파일 복사를 지원합니다.
modprobe
명령을 실행하여 커널 모듈을 삽입하기 전에 .spec.moduleLoader.container.modprobe.firmwarePath
의 콘텐츠가 노드의 /var/lib/firmware
경로에 복사됩니다.
Pod가 종료되면 modprobe -r
명령을 실행하기 전에 모든 파일과 빈 디렉터리가 해당 위치에서 제거됩니다.
추가 리소스
4.10.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.10.2. 모듈 로더 이미지 빌드
절차
커널 모듈 자체를 빌드하는 것 외에도 빌더 이미지에 바이너리 펌웨어를 포함합니다.
FROM registry.redhat.io/ubi8/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/ubi8/ubi-minimal # Copy the kmod, install modprobe, run depmod COPY --from=builder /firmware /firmware
4.10.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/
로 복사합니다.