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é.
Ressources supplémentaires
4.10.1. Configuration du chemin de recherche sur les nœuds
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: worker 1 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.
Ressources supplémentaires
4.10.2. Construction d'une image ModuleLoader
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
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: /firmware 1- 1
- Facultatif : Copie
/firmware/*dans/var/lib/firmware/sur le nœud.