GNU/Linux >> Belajar Linux >  >> Linux

gpspipe mengembalikan stempel waktu yang benar, tetapi tanggal yang salah (21 Desember 1995)

Sepertinya ini adalah bug sistem/perangkat lunak yang diketahui:

http://forums.gpsreview.net/discussion/29425/garmin-gps-iii-plus-date-problem

http://continuouswave.com/ubb/Forum6/HTML/002815.html

http://www.colorado.edu/geography/gcraft/notes/gps/gpseow.htm

dan dari halaman manual gpsd http://www.catb.org/gpsd/gpsd.html:

Tepatnya ada dua keadaan di mana gpsd bergantung pada jam sistem host:

Dalam sinyal siaran GPS, waktu GPS direpresentasikan menggunakan angka minggu yang bergulir setelah 2^10 atau 2^13 minggu (sekitar 19,6 tahun, atau 157 tahun), bergantung pada pesawat ruang angkasa. Penerima diminta untuk mendisambiguasi ini ke tanggal yang benar, tetapi mungkin mengalami kesulitan karena tidak mengetahui waktu dalam setengah interval ini, atau mungkin memiliki bug. Pengguna telah melaporkan tanggal yang salah yang tampaknya disebabkan oleh masalah ini. gpsd menggunakan waktu pengaktifan daemon untuk mendeteksi dan mengkompensasi rollover saat sedang berjalan, tetapi sebaliknya melaporkan tanggal seperti yang dilaporkan oleh penerima tanpa berusaha memperbaikinya.

Jika Anda menggunakan GPS khusus NMEA (yaitu, tidak menggunakan mode biner Zodiak SiRF atau Garminor), gpsd bergantung pada jam sistem untuk memberi tahu abad saat ini. Jika jam sistem mengembalikan nilai yang tidak valid mendekati nol, dan GPS tidak memancarkan GPZDA pada awal siklus pembaruannya (yang tidak dilakukan oleh sebagian besar GPS NMEA kelas konsumen) maka bagian abad dari tanggal yang dikirimkan gpsd mungkin salah. Selain itu, mendekati pergantian abad, rentang tanggal selebar dalam hitungan detik dengan keakuratan jam sistem Anda mungkin merujuk ke abad yang salah.


Saya baru saja menyelesaikan masalah ini.
Posting oleh AndreJ akurat dan membantu memulai penyelidikan saya mengapa jam sistem sangat jauh.
Dalam kasus saya, saya menghubungkan penerima GPS ke Raspberry Pi 2 yang menjalankan Ubuntu 14.04. Raspberry Pis tidak memiliki jam perangkat keras dan pada awal proses booting, sebelum ntp dapat mengatur jam, waktu/tanggal diatur mendekati awal zaman (1 Jan 1970).

Ini membingungkan gpsd:"1 Jan 00:00:13 ubuntu gpsd[814]:gpsd:ERROR:waktu sistem terlihat palsu, tanggal mungkin tidak dapat diandalkan."

Solusi bagi saya adalah menjalankan 'fake-hwclock' yang menyimpan tanggal/waktu akurat dalam sebuah file dan kemudian menyetel jam sistem dari file tersebut di awal proses booting. Meskipun mesin Anda tidak memiliki jam perangkat keras dengan baterai dan telah dimatikan untuk sementara waktu, pengaturan tanggal/waktu ini akan cukup akurat untuk gpsd agar dapat "disambiguasi ke tanggal yang benar".


Linux
  1. tanggal Contoh Perintah di Linux

  2. mengapa jam C () mengembalikan 0

  3. linux date -s perintah tidak berfungsi untuk mengubah tanggal di server

  1. Kontrol waktu dan tanggal komputer Anda dengan systemd

  2. [Dipecahkan]:Bagaimana Mencegah Sinkronisasi jam Mesin Virtual dengan mesin Host dan Mengatur waktu jam Independen?

  3. Linux - perintah mount mengembalikan nol/0 tetapi tidak berfungsi

  1. Cara Memfilter Entri File Log Berdasarkan Rentang Tanggal

  2. 7 Contoh Perintah hwclock Linux untuk Mengatur Waktu Tanggal Jam Perangkat Keras

  3. Bash History:Cara melihat stempel waktu (tanggal / waktu) ketika setiap perintah dieksekusi