Przejrzałem dokumentację, ale nie mogę znaleźć czegoś takiego. Sytuacja jest taka, że mam BeagleBone Black, który nie ma prawdziwego zegara. Domyślnie komputer uruchamia się, myśląc, że jest rok 1999 (co jest świetne na imprezę, ale ...). NTP to rozwiązuje, ale tylko wtedy, gdy sieć jest podłączona. W przeciwnym razie znów jest rok 1999. I niestety, znalazłem urządzenie w miejscu, w którym nie może uzyskać dostępu do Internetu, a także muszę rejestrować czasy, które mają przynajmniej jakiś sens.
Przyszło mi do głowy, że dla moich celów byłoby dobrze, gdyby istniał sposób, aby NTP odczytał godzinę z pliku, jeśli sieć była niedostępna. Wyobrażam sobie, że plik czasu zostałby zapisany albo jako zadanie cron, albo coś w obrębie samego NTP, który utrzymywałby stan tego pliku.
Czy jest coś takiego dla NTP? Czy są jakieś alternatywne narzędzia, które osiągnęłyby to, czego potrzebuję? W szczególności nie byłoby to zbyt wielkim bólem, aby założyć BBB?
źródło
Odpowiedzi:
Chcesz
fake-hwclock
paczkę. Jest specjalnie zaprojektowany do takich sytuacji. Opis ze strony pakietu Debian:źródło
Możesz mieć cronjob, który działa co kilka minut w następujący sposób:
Następnie wykonaj kolejną pracę kroniki (zakładając, że masz crona, który rozumie zaawansowane ustawienia czasu, w przeciwnym razie w skrypcie rozruchowym):
Pierwszy zapisuje czas w sekundach od epoki do
/root/lasttime
, a następnie ponownie uruchamia się odczytuje czas z pliku i ustawia datę.Twój czas będzie zły, gdy czas beagle został wyłączony. Możesz mieć warunki wyścigu, w których pierwsze zadanie crona może zostać wykonane przed drugim, i dlatego ustaw czas na 1999 r., Więc najlepiej jest to robić rzadko lub sprawdzać, aby upewnić się, że czas ma sens przed zapisaniem.
źródło