Kaunas, Eiguliai, darželis, dailė, šokiai, elektronika, 486DX, LŽŪU, linux, fotografija, dviratis, automobiliai, akvariumai, žmona, dukra...

11th
DEC

RaspberryPi ir laikrodis

Parašė dinux kategorijoje Linux

Raspberry Pi (visi modeliai) neturi RTC laikrodžio, t.y. perkrovus, išjungus-įjungus laikrodis nusimuš. Problemą galima spręsti su papildomu RTC priedu jungiamu prie GPIO, bet jei kompiuteris, kaip pas mane, visada pajungtas prie interneto šią bėdą labai greitai ir lengvai galima išspręsti.

Viskas galioja ir bet kokiam kitam nešiojamam/staliniam kompiuteriui su Archlinux distribucija.

Pirmiausia įjungiam sinchronizaciją su NTP serveriu:

sudo timedatectl set-ntp true

Nustatome teisinga laiko juostą. Lietuvos atveju:

sudo timedatectl set-timezone Europe/Vilnius

Jei vis dėlto gyvenat (naudojat) ne lietuvišką laiko juostą, juostų sąrašą galima išsikviesti:

sudo timedatectl list-timezones

Taigi po šių veiksmų jau turime tvarkinga laikrodį, kuris po persikrovimo susisinchronizuos ir “avietė” gyvens tuo pačiu laiku kaip ir jūs.

[dinux@alarmpi ~]$ sudo timedatectl status
      Local time: Pn 2015-12-11 20:20:11 EET
  Universal time: Pn 2015-12-11 18:20:11 UTC
        RTC time: n/a
       Time zone: Europe/Vilnius (EET, +0200)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Viskas atrodo smagiai veikia, bet žiūrint temperatūros namuose grafiką (Apie tai rašiau čia: Protingas namas. 1 Dalis. Temperatūra. tik naujiena tokia, kad dabar viskas saugoma mariaDB (mySQL) bazėje) visos temperatūros vėluoja dviem valandomis. Laikas bazėje atsiranda rašant į lauką CURRENT_TIMESTAMP pagalba.

MariaDB (mySQL) serverio laiko juosta galima pamatyti SQL komanda:

SELECT @@global.time_zone;

Mano atveju rezultatas buvo SYSTEM. Iš aukščiau esančio statuso matosi, kad kompiuterio laikas šiai dienai (žiemos laikas) atsilieka dviem valandomis (UTC laiko juosta).

DB serverio laiką galima nustatyti SQL komanda:

SET GLOBAL time_zone = 'Europe/Vilnius';

Bet štai staigmena:

Unknown or incorrect time zone

Pasirodo mysql bazėje nėra įkeltų laiko juostų duomenų. Windows OS vartotojai turėtu iš serverio puslapyje pasiieškoti SQL bylos laiko juostom susiimportuoti, bet pastaroji netinka Linux, BSD ir panašioms operacinėms. Linux operacinėje visas laiko juostas iš sistemos į DB reikia kopijuoti mysql_tzinfo_to_sql programos pagalba.

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -p mysql

Jūsų bus paprašytas DB serverio administratoriaus slaptažodis. Po visko dar kartą bandom nustatyti laiko juostą:

SET GLOBAL time_zone = 'Europe/Vilnius';

Komanda suveikė sėkmingai. Dabar visi laikai stojo į savo vietas. Jau visi padaryti bazės įrašai pasislinko dvejomis valandomis į priekį ir prisivijo dabartinį laiką.

Palik komentarą

  Wordpress Theme Protected By Wp Spam Blocker

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close