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. ModuleLoader イメージのビルド
手順
カーネルモジュール自体をビルドするだけでなく、バイナリーファームウェアをビルダーイメージに含めます。
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/
にコピーします。