GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich die Ursache für die Uhrdrift auf einem benutzerdefinierten eingebetteten System?

Wir haben kundenspezifische Hardware mit 3,2 Angstrom auf einem SAM9G45-Prozessor. Alles funktioniert gut. Kürzlich haben wir ähnliche Hardware entwickelt, die den SAM9G25-Prozessor verwendet. Wir fanden, dass der 2.6-Kernel auf dem SAM9G25 gut funktioniert, aber wir mussten den 3.2-Kernel auf die Plattform portieren, um einige drahtlose Treiber nutzen zu können. Wir haben den Hafen fertiggestellt, aber wir haben gerade festgestellt, dass die Tageszeit nicht zuverlässig ist. Etwa 20 Minuten läuft sie einwandfrei – dann springt die Uhrzeit (mit „Datum“ gemeldet) um ein paar Stunden oder Tage vor. Der 2.6-Kernel funktioniert immer noch gut, also denken wir, dass wir ihn nicht richtig portiert haben. Wir haben alles durchgesehen, aber bisher kein Glück. Ich bin mir nicht sicher, wo ich als nächstes suchen soll.

Endgültige Antwort :Atmel liefert einen Patch für den 2.6er Kernel in der Datei tcb_clksrc.c. Das haben wir bei unserer Portierung auf den 3.2er Kernel vermisst. Danke für den Einblick!

Akzeptierte Antwort:

Versuchen Sie, das System mit der Kernel-Option clocksource=jiffies zu booten oder nohpet .

Ich habe einen offenen Fall zu SLES11 SP2 (unter Verwendung von Kernel 3.0), bei dem ich Zeitkonflikte auf VMs beobachte.

Die clocksource=jiffies hat es in meinem Fall schlimmer gemacht – aber in deinem könnte es helfen.

Derzeit konzentriert sich der Support auf den High-Precision-Event-Timer (aber ich bezweifle, dass Ihr eingebettetes System über ein solches Gerät verfügt).


Linux
  1. So finden Sie unter Linux heraus, ob es sich bei der Festplatte um eine SSD oder HDD handelt

  2. Wie leitet man die Ausgabe von system() in eine Datei um?

  3. Wie man die Ergebnisse von 'find' unter Linux an mv weiterleitet

  4. Wie finde ich das Hadoop hdfs-Verzeichnis auf meinem System?

  5. Wie finde ich den Standard-Dateimanager?

So finden Sie die installierte Version von Redhat Linux

So finden Sie die Portnummer eines Dienstes in Linux

So finden Sie heraus, wer das Linux-System wann neu gestartet hat

So finden Sie die IP-Adresse einer virtuellen KVM-Maschine

Wie man die CPU-Auslastung findet, was das System zum Hängen bringt

So verwenden Sie den fd-Befehl auf einem Linux-System