Définir au boot un paramètre dans /sys/ (mais pas dans /proc/sys/)
Le
Francois Lafont

Bonsoir à tous,
J'ai une machine sur laquelle j'ai un souci avec ntp
(mais ce n'est pas mon problème ici). En effet, la valeur
du paramètre :
/sys/devices/system/clocksource/clocksource0/current_clocksource
n'est pas correcte après le boot si bien que le synchronisation
ntp ne marche pas. Du coup, manuellement, je dois faire ceci :
-
service ntp stop
# Là j'indique la « bonne » valeur du paramètre
# (avec cette valeur, ça fonctionne très bien).
echo xen > /sys/devices/system/clocksource/clocksource0/current_clocksource
service ntp start
-
Et voilà. À partir de là, le service ntp marche comme sur des
roulettes. Ce problème là est résolu.
Mon souci, c'est que si la machine reboot, alors le paramétrage
effectué disparaît et le service ntp ne fonctionne plus à nouveau.
Ma question est donc : quelle est la *bonne* manière d'effectuer
mon paramétrage pour qu'il se fasse automatiquement au boot de la
machine ?
Attention, faire un fichier de conf dans /etc/sysctl.d/ ne fonctionne
pas car ici le paramètre se trouve dans /sys/ *pas* dans /proc/sys/
(et sysctl à ma connaissance gère les paramètres de /proc/sys/ mais
*pas* ceux de /sys/).
Enfin, je sais bien que je peux mettre les commandes ci-dessus
dans /etc/rc.local mais bon, à travers ce fil, j'aimerais surtout
savoir comment on fait pour définir proprement au boot un paramètre
qui se trouve dans /sys/. De plus, comme le paramétrage interviendra
avant le démarrage du service ntp (enfin je suppose), je n'aurais pas
besoin de redémarrer le daemon.
Merci d'avance pour votre aide.
--
François Lafont
J'ai une machine sur laquelle j'ai un souci avec ntp
(mais ce n'est pas mon problème ici). En effet, la valeur
du paramètre :
/sys/devices/system/clocksource/clocksource0/current_clocksource
n'est pas correcte après le boot si bien que le synchronisation
ntp ne marche pas. Du coup, manuellement, je dois faire ceci :
-
service ntp stop
# Là j'indique la « bonne » valeur du paramètre
# (avec cette valeur, ça fonctionne très bien).
echo xen > /sys/devices/system/clocksource/clocksource0/current_clocksource
service ntp start
-
Et voilà. À partir de là, le service ntp marche comme sur des
roulettes. Ce problème là est résolu.
Mon souci, c'est que si la machine reboot, alors le paramétrage
effectué disparaît et le service ntp ne fonctionne plus à nouveau.
Ma question est donc : quelle est la *bonne* manière d'effectuer
mon paramétrage pour qu'il se fasse automatiquement au boot de la
machine ?
Attention, faire un fichier de conf dans /etc/sysctl.d/ ne fonctionne
pas car ici le paramètre se trouve dans /sys/ *pas* dans /proc/sys/
(et sysctl à ma connaissance gère les paramètres de /proc/sys/ mais
*pas* ceux de /sys/).
Enfin, je sais bien que je peux mettre les commandes ci-dessus
dans /etc/rc.local mais bon, à travers ce fil, j'aimerais surtout
savoir comment on fait pour définir proprement au boot un paramètre
qui se trouve dans /sys/. De plus, comme le paramétrage interviendra
avant le démarrage du service ntp (enfin je suppose), je n'aurais pas
besoin de redémarrer le daemon.
Merci d'avance pour votre aide.
--
François Lafont
fr.comp.os.linux.configuration
(
Passer l'argument kivabien© directement au noyau par l'entremise du
fichier de conf du bootloader.
A priori l'argument correspondant s'apelle clocksource.
Par exemple pour lilo la ligne suivante devrait faire l'affaire:
append=" clocksource=xen"
https://www.kernel.org/doc/Documentation/kernel-parameters.txt
À tester.
--
Maintenant voila ton père déguisé en indien
Avec une plume dans le fion et ses cartes d'Indochine.
S'il veut refaire sur moi ce qu'il a fait au Tonkin,
Bientôt je ne serai plus qu'une vieille tache d'hémoglobine.
-- H.F. Thiéfaine, Enfermé dans les cabinets
Ok, merci de ton aide. A priori, c'est bien ça. Dans mon cas,
j'utilise Grub2 sous Debian Wheezy. Du coup, la démarche est :
1. Éditer le fichier /etc/default/grub et modifier la
variable GRUB_CMD_LINE_LINUX pour avoir ceci :
GRUB_CMD_LINE_LINUX="clocksource=xen"
2. Puis lancer update-grub && reboot
Du coup, je pense que mon problème pratique est résolu (merci
Doug ;)) mais j'aimerais bien prolonger un tout petit peu la
discussion pour essayer d'avoir quelques explications sur les
points suivants si c'est possible.
1. Quelle est la différence entre /proc/sys/ et /sys/ ? J'ai
l'impression que dans les 2 cas, cela concerne des paramètres
à passer au noyau. Mais pourquoi /proc/sys/ est modifiable via
sysctl et pas /sys/ ?
2. Si l'idée est de passer des paramètres au noyau, quelle
différence ça fait si je passe le paramètre via Grub ou si je
passe par sysctl ? Par exemple, si je veux désactiver IPv6 sur
ma machine, quelle différence y a-t-il entre les 2 méthodes
suivantes ?
a) Ajouter, via Grub, « ipv6.disable=1 » dans les options de
boot du noyau (puis update-grub && reboot)
b) Ou créer un fichier /etc/sysctl.d/disable_ipv6.conf contenant :
# On va supposer que eth0 et lo sont les seules interfaces de
# ma machine.
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
puis un reboot.
--
François Lafont
/proc/sys est ancien, /sys est récent. /proc/sys contient des paramètres
crées manuellement, avec une certaine tranversalité, /sys colle directement
à l'organisation interne des objets du noyau.
Pour passer par sysctl, il faut que le système soit déjà en fonctionnement,
donc la valeur par défaut est utilisée pendant un certain temps.
Le 17/12/2014 13:09, Nicolas George a écrit :
Ok, merci Nicolas pour ces précisions.
Dommage que sysctl ne s'étende pas à /sys/ également car passer
des paramètres de boot du noyau via Grub est plutôt incommode je
trouve.
--
François Lafont
sysctl, ce n'est qu'une commande qui va lire ou écrire dans /proc/sys.
D'ailleurs, il y a l'équivalent pour /sys : systool. En général, les
distributions ont l'infrastructure pour l'appeler au boot.
Ça veut quand même dire que tu auras un temps au boot où la mauvaise source
de temps est utilisée.
Ah oui en effet. Sur ma Debian Wheezy, pour avoir cet outil
j'ai dû faire :
apt-get install sysfsutils
Ensuite, je vois la présence d'un fichier /etc/sysfs.conf
qui est sans doute ce qui permet de faire des modifs sans
passer par Grub. Il n'y a pas de /etc/sysfs.d/ par contre
mais c'est un détail.
Oui c'est vrai.
Merci encore pour toutes ces précisions.
--
François Lafont