Ошибка Π² GPSD Π² это Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ измСнСнию Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° 19 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ GPSD, примСняСмом для извлСчСния Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… ΠΈΠ· GPS-устройств, выявлСна критичСская ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ 24 октября ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ смСщСниС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° 1024 Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄, Ρ‚.Π΅. врСмя Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π½Π° ΠΌΠ°Ρ€Ρ‚ 2002 Π³ΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° проявляСтся Π² выпусках с 3.20 ΠΏΠΎ 3.22 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ устранСна Π² выпускС GPSD 3.23. ВсСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ систСм, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ GPSD, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ срочно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ обновлСния, ΠΈΠ»ΠΈ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ сбою.

Π­Ρ„Ρ„Π΅ΠΊΡ‚ ΠΎΡ‚ ошибки ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмым сбоям Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… систСмах, Π² Ρ‚ΠΎΠΌ числС Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… GPSD, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ примСняСтся для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… NTP-сСрвСрах, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для синхронизации Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΈ сдвигС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² систСмах ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пСрСстанут ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ, Kerberos ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ доступа, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ врСмя дСйствия), с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ сСртификатов ΠΈ с вычислСниями, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, расчёт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сСанса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ). GPSD Ρ‚Π°ΠΊΠΆΠ΅ поставляСтся Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… встраиваСмых ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах, для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ Π½Π΅ Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ обновлСния ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» GPS прСдусматриваСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ счётчика нСдСль, ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π΅Π΄Π΅Π»ΠΈ начиная с 5 января 1980 Π³ΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Π΅Ρ‰Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ Π΄Π°Π½Π½Ρ‹ΠΉ счётчик отводится всСго 10 Π±ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 1023 нСдСль (19.7 Π»Π΅Ρ‚). ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π² 1999 Π³ΠΎΠ΄Ρƒ, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π² 2019, Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Π² 2038 Π³ΠΎΠ΄Ρƒ. Π”Π°Π½Π½Ρ‹Π΅ события ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ производитСлями ΠΈ для Π½ΠΈΡ… прСдусмотрСны ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Π’ настоящСС врСмя ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π²Π½Π΅Π΄Ρ€Ρ‘Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ GPS-сообщСний (CNAV), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ для счётчика отводится 13 Π±ΠΈΡ‚ (Ρ‚.Π΅. ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ оТидаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² 2137 Π³ΠΎΠ΄Ρƒ).

Π’ GPSD Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ появлСния лишнСй сСкунды (добавляСтся с Ρ†Π΅Π»ΡŒΡŽ синхронизации эталонных ΠΌΠΈΡ€ΠΎΠ²Ρ‹Ρ… Π°Ρ‚ΠΎΠΌΠ½Ρ‹Ρ… часов с астрономичСским Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π—Π΅ΠΌΠ»ΠΈ) Π±Ρ‹Π»Π° Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π° ошибка ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ 24 октября 2021 Π³ΠΎΠ΄Π° ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ 1024 ΠΈΠ· счётчика числа нСдСль. По Π·Π°Π΄ΡƒΠΌΠΊΠ΅ Π°Π²Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° сдвиг Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ 31 дСкабря 2022 Π³ΠΎΠ΄Π°, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ этой Π΄Π°Ρ‚Ρ‹ Π² число нСдСль Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π½Π΅ Π²Π΅Ρ€Π½ΠΎ ΠΈ фактичСски ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ΅ Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ число нСдСль ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°Π»ΠΎ ΠΏΠΎΠ΄ ΠΎΠΊΡ‚ΡΠ±Ρ€ΡŒ 2021 Π³ΠΎΠ΄Π° (ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2180 вмСсто 2600). /* sanity check week number, GPS epoch, against leap seconds * Does not work well with regressions because the leap_sconds * could be from the receiver, or from BUILD_LEAPSECONDS. */ if (0 < session->context->leap_seconds && 19 > session->context->leap_seconds && 2180 < week) { /* assume leap second = 19 by 31 Dec 2022 * so week > 2180 is way in the future, do not allow it */ week -= 1024; GPSD_LOG(LOG_WARN, &session->context->errout, «GPS week confusion. Adjusted week %u for leap %d\n», week, session->context->leap_seconds); }

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ