4.10. Prise en charge du micrologiciel KMM
Les modules du noyau doivent parfois charger des fichiers de microprogrammes à partir du système de fichiers. KMM prend en charge la copie des fichiers de microprogrammes de l'image ModuleLoader vers le système de fichiers du nœud.
Le contenu de .spec.moduleLoader.container.modprobe.firmwarePath est copié dans le chemin /var/lib/firmware sur le nœud avant d'exécuter la commande modprobe pour insérer le module du noyau.
Tous les fichiers et répertoires vides sont supprimés de cet emplacement avant d'exécuter la commande modprobe -r pour décharger le module du noyau, lorsque le pod est terminé.
4.10.1. Configuration du chemin de recherche sur les nœuds Copier lienLien copié sur presse-papiers!
Sur les nœuds d'OpenShift Container Platform, l'ensemble des chemins de recherche par défaut pour les firmwares n'inclut pas le chemin /var/lib/firmware.
Procédure
Utilisez l'opérateur Machine Config pour créer une ressource personnalisée (CR)
MachineConfigqui contient le chemin d'accès/var/lib/firmware:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker1 name: 99-worker-kernel-args-firmware-path spec: kernelArguments: - 'firmware_class.path=/var/lib/firmware'- 1
- Vous pouvez configurer l'étiquette en fonction de vos besoins. Dans le cas d'OpenShift à nœud unique, utilisez les objets
control-paneoumaster.
-
En appliquant le CR
MachineConfig, les nœuds sont automatiquement redémarrés.
4.10.2. Construction d'une image ModuleLoader Copier lienLien copié sur presse-papiers!
Procédure
En plus de construire le module du noyau lui-même, il faut inclure le micrologiciel binaire dans l'image du constructeur :
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. Optimisation des ressources du module Copier lienLien copié sur presse-papiers!
Procédure
Définir
.spec.moduleLoader.container.modprobe.firmwarePathdans la ressource personnalisée (CR)Module:apiVersion: kmm.sigs.x-k8s.io/v1beta1 kind: Module metadata: name: my-kmod spec: moduleLoader: container: modprobe: moduleName: my-kmod # Required firmwarePath: /firmware1 - 1
- Facultatif : Copie
/firmware/*dans/var/lib/firmware/sur le nœud.