Je souhaiterai connaitre le moyen de choisir le RTC que le systéme doit utiliser pour connaitre la date et l’heure, lorsque que vous disposez de deux RTC:
-Un present au niveau de la cpu ( rtc-cmos).
-L’autre present sur bus I2C.
Au demarrage, le systéme voit le rtc-cmos, le driver de celui n’etant pas present dans etc/module, il ne peut être utiliser.Cependant est crée un device /dev/rtc0 lié symboliquement à /dev/rtc.
Ainsi lorsque j’utilise la commande ‘date’ c’est la date renvoyée par /dev/rtc0/ qui m’est fournit.
Quelle méthode dois-je employer pour supprimer la sollicitation du rtc-cmos? J’ai commencé par supprimer le lien entre rtc et rtc0, mais je ne sais pas sur quoi dois pointer dev/rtc/, sachant que :
-le rtc sur I2C utilise le driver rtc-ds1307.
-Ce driver est charger au demarrage.
-Qu’une fois chargé, il ne crée pas de device spécifique à ce composant.
Voici une partie du .config utilisé, il est issu de la version 2.6.32-trunck du noyau
Concretement, au demarrage de Linux, le kernel detecte le rtc-cmos présent sur la CPU.
Il précise de charger son driver, puis crée le device /dev/rtc0/ qui lui est associé:
Ainsi au niveau de dev/ je retrouve :
Jusqu’y ici rien de surprenant !
La subtilité est que je ne souhaite pas utiliser ce rtc, mais plutôt un autre présent sur mon port i2c, le ds1307.
Pour ce faire je charge son driver :modprobe rtc-ds1307 et verifie via un open sur le bus i2c, que je communique bien avec le composant.
Jusqu’ici pas de probleme:
Tout se complique lorsque je veux que le kernel via les fonctions date, hwclock,…, me renvoi la date issue de ce rtc ( présent sur i2c).
Les options du .config indiquent au kernel de se baser sur le rtc-cmos de la cpu.
1)Existe-il un moyen d’éviter ce mécanisme, sans pour autant modifier le .config ?
Certaines options sont-elles modifiables via des fichiers presents dans /etc?
2)Si non, comment resynchroniser la date/heure avec le rtc du bus i2c?
3)Le driver rtc-ds1307 doit-il créer un dev/rtc1 si les options du .config le permettent?
Si non, sur quoi doit pointer /dev/rtc ( lié par defaut symboliquement à /dev/rtc0)? i2c-core?
Toutes ses questions sont autant de pistes étudiées, sans succès.