« LINUX:Systemd-Dracut et Kernel » : différence entre les versions
(Page créée avec « ---- ''→ retour au menu de Systemd'' ---- __FORCETOC__ =But= Sous Fedora, le service '''RNGD''' est lancé; il transmet les données d'un générateur de nombres aléatoires d'un périphérique matériel au pool d'entropie de nombres aléatoires du noyau. Mais dans mon cas, il reste au statut défaillant. Dans cet article, nous allons analyser ce cas et voir comment contourner ce problème. =RNGD= ==Installation== Le paquet concerné est no... ») |
Aucun résumé des modifications |
||
(6 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 4 : | Ligne 4 : | ||
__FORCETOC__ | __FORCETOC__ | ||
=But= | =But= | ||
Sous Fedora, le service '''RNGD''' est lancé; il transmet les données d'un générateur de nombres aléatoires d'un périphérique matériel au pool d'entropie de nombres aléatoires du noyau. | Sous Fedora, le service '''RNGD''' est lancé d'office; il transmet les données d'un générateur de nombres aléatoires d'un périphérique matériel au pool d'entropie de nombres aléatoires du noyau. | ||
Mais dans mon cas, il reste au statut défaillant. | Mais dans mon cas, il reste au statut défaillant. | ||
Ligne 10 : | Ligne 11 : | ||
=RNGD | =Installation de RNGD= | ||
Le paquet concerné est normalement installé d'office sinon on exécute la commande suivante: | Le paquet concerné est normalement installé d'office sinon on exécute la commande suivante: | ||
dnf install rng-tools opensc | dnf install rng-tools opensc | ||
Le paquet lui est lié et est nécessaire. | Le paquet "opensc" lui est lié et est nécessaire. | ||
Le fichier "/etc/sysconfig/rngd" permet d'ajuster les paramètres du service "rngd". | |||
=Test de RNGD= | |||
Il est possible de tester ce service interactivement avant de l'activer: | Il est possible de tester ce service interactivement avant de l'activer: | ||
rngd -f | rngd -f | ||
Ligne 38 : | Ligne 39 : | ||
Le service s'arrête et est en erreur. | Le service s'arrête et est en erreur. | ||
Sur une autre machine, sous Fedora 37, le service se lance correctement: | |||
---- | |||
Initializing available sources | |||
[hwrng ]: Initialization Failed | |||
[rdrand]: Initialization Failed | |||
[jitter]: Initializing AES buffer | |||
[jitter]: Enabling JITTER rng support | |||
[jitter]: Initialized | |||
[pkcs11]: No pkcs11 slots available | |||
[pkcs11]: Initialization Failed | |||
[rtlsdr]: Initialization Failed | |||
... | |||
---- | |||
On peut aussi analyser les journaux. | |||
=Lancement de RNGD= | |||
L'activation et le lancement du service "rngd" se fait comme décrit précédemment mais on se rend compte rapidement que même si on a désactivé son lancement, il se lance quand même au démarrage de la machine et dans mon premier cas, il est en erreur. Son lancement est inclus dans le Kernel. Il faut donc trouver le moyen de l'en retirer. | |||
=Dracut= | |||
"dracut" a pour fonction d'ajouter toute une série de fonctionnalités au kernel lors de son lancement. Ce programme est utilisé lors de la création d'un kernel. | |||
On peut vérifier l'intégration du service "rngd" au kernel via la commande suivante qui permet de lister son contenu: | |||
lsinitrd /boot/initramfs-<n° kernel>.img | grep rngd | |||
Ce qui donne pour le kernel n° "6.0.7-200.fc36.x86_64": | |||
lsinitrd /boot/initramfs-6.0.7-200.fc36.x86_64.img | grep rngd | |||
Après une brève recherche, on repère ce que l'on désire dans le répertoire "/usr/lib/dracut/modules.d/06rngd". | |||
En analysant le contenu du script "module-setup.sh" se trouvant dans ce répertoire, on remarque que ce service n'est pas inclus si le paquet concerné n'est pas installé. | |||
=Solution= | |||
Il faut donc le désinstaller: | |||
dnf remove rng-tools | |||
et ensuite il faut recréer le kernel ou attendre l'installation du kernel suivant puis redémarrer la machine avec ce kernel. | |||
=Haveged= | |||
Il existe une alternative au service "rngd" que nous venons d'enlever. On peut le remplacer par le service "haveged". | |||
On l'installe suivant la commande: | |||
dnf install haveged | |||
On peut l'activer et le lancer comme classiquement mais ce service est aussi inclus lors du lancement du kernel via le logiciel Dracut comme l'était "rngd". | |||
Dernière version du 18 novembre 2022 à 10:34
But
Sous Fedora, le service RNGD est lancé d'office; il transmet les données d'un générateur de nombres aléatoires d'un périphérique matériel au pool d'entropie de nombres aléatoires du noyau.
Mais dans mon cas, il reste au statut défaillant.
Dans cet article, nous allons analyser ce cas et voir comment contourner ce problème.
Installation de RNGD
Le paquet concerné est normalement installé d'office sinon on exécute la commande suivante:
dnf install rng-tools opensc
Le paquet "opensc" lui est lié et est nécessaire.
Le fichier "/etc/sysconfig/rngd" permet d'ajuster les paramètres du service "rngd".
Test de RNGD
Il est possible de tester ce service interactivement avant de l'activer:
rngd -f
Sur ma vieille machine, sous Fedora 36, voici la sortie:
Initializing available sources [hwrng ]: Initialization Failed [rdrand]: Initialization Failed [jitter]: JITTER timeout set to 5 sec [jitter]: Initializing AES buffer [jitter]: Unable to obtain AES key, disabling JITTER source [jitter]: Initialization Failed [pkcs11]: No pkcs11 slots available [pkcs11]: Initialization Failed [rtlsdr]: Initialization Failed Can't open any entropy source Maybe RNG device modules are not loaded
Le service s'arrête et est en erreur.
Sur une autre machine, sous Fedora 37, le service se lance correctement:
Initializing available sources [hwrng ]: Initialization Failed [rdrand]: Initialization Failed [jitter]: Initializing AES buffer [jitter]: Enabling JITTER rng support [jitter]: Initialized [pkcs11]: No pkcs11 slots available [pkcs11]: Initialization Failed [rtlsdr]: Initialization Failed ...
On peut aussi analyser les journaux.
Lancement de RNGD
L'activation et le lancement du service "rngd" se fait comme décrit précédemment mais on se rend compte rapidement que même si on a désactivé son lancement, il se lance quand même au démarrage de la machine et dans mon premier cas, il est en erreur. Son lancement est inclus dans le Kernel. Il faut donc trouver le moyen de l'en retirer.
Dracut
"dracut" a pour fonction d'ajouter toute une série de fonctionnalités au kernel lors de son lancement. Ce programme est utilisé lors de la création d'un kernel.
On peut vérifier l'intégration du service "rngd" au kernel via la commande suivante qui permet de lister son contenu:
lsinitrd /boot/initramfs-<n° kernel>.img | grep rngd
Ce qui donne pour le kernel n° "6.0.7-200.fc36.x86_64":
lsinitrd /boot/initramfs-6.0.7-200.fc36.x86_64.img | grep rngd
Après une brève recherche, on repère ce que l'on désire dans le répertoire "/usr/lib/dracut/modules.d/06rngd".
En analysant le contenu du script "module-setup.sh" se trouvant dans ce répertoire, on remarque que ce service n'est pas inclus si le paquet concerné n'est pas installé.
Solution
Il faut donc le désinstaller:
dnf remove rng-tools
et ensuite il faut recréer le kernel ou attendre l'installation du kernel suivant puis redémarrer la machine avec ce kernel.
Haveged
Il existe une alternative au service "rngd" que nous venons d'enlever. On peut le remplacer par le service "haveged".
On l'installe suivant la commande:
dnf install haveged
On peut l'activer et le lancer comme classiquement mais ce service est aussi inclus lors du lancement du kernel via le logiciel Dracut comme l'était "rngd".