NTP olmadan doğru sistem saatini elde etmenin bir yolu var mı?


2

ARMv7, 3.10 çekirdeğinde endüstriyel gömülü aygıt geliştiriyorum.

İlk olarak, ana konuyu ele almadan önce, donanım zamanı hakkında konuşmama izin verin. Amlogic meson8b çekirdek ünitedir, bu yüzden ana rtc olarak "aml-rtc" kullandım, ancak güvenilmezdi. Böylece, harici rtc çipine karar verdik ve şimdi ds1340 ana rtc. birkaç test dizisinden sonra, donanım zamanının artık oldukça güvenilir olduğunu düşünüyorum.

Sorun sistem zamanı ile ilgili. sistem saati yaklaşık 2 ~ 3 sn / gün h / w süresinden daha hızlı çalışıyor. Bildiğiniz gibi, NTP kullanan birçok çözüm var, ancak cihazımızın karakteristik özelliği nedeniyle ethernet bağlantısı kesildi, bu yüzden NTP kullanamıyorum.

Mesele şu ki, NTP olmadan doğru sistem saatini almak için herhangi bir yöntem olup olmadığını bilmek istiyorum.

Bu konuyu okumak için teşekkür ederim ve benim ingilizcem için üzgünüm.


ps. Ayrıca periyodik olarak "hwclock --hctosys" çağrısı kullanmayı düşündüm, ancak dosya ve kayıtların kaydedilmesi nedeniyle bu kritik bir problem olabilir. örneğin, LOG <1> sistem saatinde 12: 05'te kaydedilmiş ve eğer hwclock sistemi tekrar 12:04 olarak ayarlamışsa, LOG <1> 'yeni süre' saat 12: 05'e ulaştığında kaydedilen yeni günlüklerin neden olduğu için kaybolabilir. bu sadece bir örnektir ve bu sorunu "hwclock --hctosys" periyodunu çok kısa olarak belirleyerek çözebilirim ama bu yolu en son çare olarak tutmak istiyorum.


GPS ile doğru zaman elde edebilirsiniz.
Zoredache

Açıkçası, hatayı ölçmenin bir yolunu buluyorsunuz (söylediğiniz gibi yaklaşık 2 ~ 3 sn / gün). Bazı (çoğu? Hepsi?) NTP (istemci) yazılımı, sistem saatini hızlandırarak veya yavaşlatarak çalışır, böylece harici zaman kaynağıyla senkronize olur (saati ileri veya geri atlamak yerine). Bazı NTP yazılımları, bir NTP sunucusuyla bağlantı kuramama durumunda varsayması gereken hata oranını yapılandırmanıza izin verir; Bunu doğrudan bir yapılandırma dosyasında ayarlayabilirsiniz. … (Devamı)
G-Man

(Devam ediyor)… Alternatif olarak birkaç günlüğüne internete bağlamak olabilir, bu nedenle sistem saatinin ne kadar hızlı olduğunu öğrenir; daha sonra, bağlantı kesildikten sonra saati doğru ayarlamaya devam edip etmediğini görün.
G-Man

Yerel, kendi kendine çalışan bir referans saatiniz yoksa veya NTP gibi harici bir referans kullanıyorsanız, başka bir program muhtemelen sisteminizin doğru zamana sahip olmamasına neden olan en az bir arıza senaryosuna sahip olacaktır. @ G-Man'ın "alternatif" şeması işe yaramaz çünkü osilatörler / kristaller uzun süreler boyunca sabit değildir. AC güç hattı frekansı (60 veya 50 Hz) daha kesindir (yani aktif olarak yönetilir).
talaş

Yanıtlar:


1

Düzenle

Orijinal cevabım bazı programlama içerir. Belki diğer tüm programlarla tüm kurulumu daha basit hale getirebilirsiniz. Benim Kubuntu üzerinde sistem saatini yavaş yavaş ayarlamak için sistem çağrısı man ntpdatekullandığını gösteriyor adjtime(). Donanım saatini okuyan ve çağrı yapan bir program düşünün adjtime().


Orijinal cevap

G-Man'ın yorumundan:

Bazı (çoğu? Hepsi?) NTP (istemci) yazılımı, sistem saatini hızlandırarak veya yavaşlatarak çalışır, böylece harici zaman kaynağıyla senkronize olur.

Günlük sorunları ile başa çıkmak için doğru yol ise, belki sahte yerel NTP sunucusu uygulayabilirsiniz. Sahte NTP sunucunuzun donanım saatini okuma donanım saatini kullanarak saatte bir kez kendi kendine (örneğin) düzeltme yapmasına izin verin ; sonra NTP istemcisinin sistem saatini günlükleri bozmayacak ve dosyaları kaydetmeyecek şekilde ayarlamasına izin verin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.