NTP on Debian reporting 95 years in the future – Part 5: Patching the Kernel

If you haven’t read part 1 yet, make sure you start there.

Okay — I can’t wait 24 hours — I’m an eager beaver. But 14 hours later, the system is still showing the correct time. Let’s play.

Okay – so I’m on the absolute most amazingly modern kernel ever. Great! So let’s fix that kernel.

We’ll check again to see if the timer workaround is implemented in our kernel:

So what does this tell us?

CONFIG_FSL_ERRATUM_A008585 shows whether the workaround for Freescale/NXP Erratum A-008585 is active. The workaround’s description is “This option enables a workaround for Freescale/NXP Erratum A-008585 (“ARM generic timer may contain an erroneous value”). The workaround will only be active if the fsl,erratum-a008585 property is found in the timer node.”

For those who are even nerdier than me, check out kernel.org’s log of the patch here: https://patchwork.kernel.org/patch/9487241/

You’re such a nerd!

Now I’m getting into the experimental. I’ve never changed a kernel config before. Funny, that. I guess if you’ve never needed to do something, you never learn to do it.

I have yet to find online instructions for doing this, and here’s what I’ll try.

Note for tl;dr – this didn’t work.

Alright, let’s change my default config as we prepare to re-compile the kernel. I’m unsure if changing this config will make the newly compiled kernel receive the change or not, but it’s worth trying.

Great, my config is now set to include this patch.

Okay, I’m obviously gonna need the kernel headers here…

Looks good, and the default setting is the same as my running kernel config:

Great! I think I’ve made a connection… this file has the same setting as my default kernel config.

So since I’ve already updated my own config, let’s compile withΒ oldconfig – I’m assuming that means “grab the old config”… hmmm…. makes sense to me.

Alright, is it set now?

Weird… the setting is gone! Well, let’s see what happens? Maybe the kernel will default to “yes” if the setting … let’s try.

Oh – If it’s going to ask me to say yes to a crapload of defaults, I’ma abort that!

I’ll trust the kernel devs and my config πŸ˜›

Wow, that’s a lot of output.

Now, a quick reboot and re-connect, and then check the running kernel…

Darn.

Strangely, the default config (my config) shows that my setting remains there…

So maybe I just didn’t compile it correctly.

I wish someone in the threads would have posted how to actually add this. I mean, as a teacher, I try not to make assumptions. Saying to someone “set CONFIG_FSL_ERRATUM_A008585=y in your kernel” is a big assumption. Even I, the Bald Nerd, am not quite sure how to do that, yet I’m sure the people who make the statements are. Let’s instead post the actual commands or at least point the person in the right direction.

I’ll try to figure it out in the next couple days, and will post my step-by-step. I’ve posted a cry for help in the forum thread related to the Debian image I’m using. Hopefully they can point me in the right direction.

UPDATE: Ohmigosh, it just hit me… this is using make, yet I didn’t install!

Let’s try it, just for good measure:

Grr….

Yeah, there’s no install.sh there.

I’m sure it’s something simple I’m missing since I’m not experienced at this kind of thing.

More to come!

NTP on Debian reporting 95 years in the future – Part 4: Back To The Past

If you haven’t read part 1 yet, make sure you start there.

I had a great idea after posting part 3 last night… why not try to set the interface as static so DHCP isn’t impacted? That way, I won’t have to re-flash to an earlier image. So I stuck the SD card into my SD reader and low and behold, /etc/network/interfaces is accessible! So I commented out the DHCP line and set it instead to the static IP I have reserved for it, and low and behold, I’m up and running.

And to boot, get this:

That’s right… the date is correct after booting this way.

Strangely though, there are no updates in /var/log/dpkg.log – the last entry was in 2113.

Another interesting anomaly when checking the ntp service:

Hmm, yeah… it has been running for over 95 years. Yet the date is correct on my system now.

Hmm….

So, let’s just try…

And… wait for it….

Sweet.

Okay, so let’s leave the server running for 24 hours and see if this is a DHCP-related issue.

To be sure, I have indeed checked my router to make sure it’s not serving up bogus NTP timestamps, and it’s all good.

What’s Next? Read Part 5:

NTP on Debian reporting 95 years in the future – Part 5: Patching the Kernel

SBC Distros I’m Working On

Those who follow me closely in the SBC world know what I’m up to, generally, but I thought it’d be fun / useful to list some of my main distros I am working on.

NEMS Linux
This one is pretty darned obvious. My most popular distro to date. Learn more at https://nemslinux.com/

PlexPi
Plex Media Server for the Raspberry Pi 3/3B+. I may eventually port this to more powerful SBCs as well. I think it’d do amazingly on a RockPro64. https://plexpi.com/

Retropie-based Retro Gaming Distro for ODROID XU4 + others
Yet to be named build to port Retropie properly to the XU4 and other SBCs where it is either not yet [well] supported or onerous to configure.

Camera System
Yet to be named Raspberry Pi distro to turn any supported IP or USB camera into a sophisticated webcam ideal for weather stations, resorts, hobbyists. Not intended for surveillance, though it could be used for this too. Includes an impressive deduplication system I wrote which reduces the number of stored images by matching their image data: if there is no change in the scene, the image is not saved. Also allows stream relaying from an RTSP compatible IP camera or standard USB webcam to YouTube Live (video only), interval-based snapshots with automatic upload to web, and more. My hope is that I can turn even a Raspberry Pi Zero W into a very impressive webcam system.

Turnkey Servers
I plan to release some turnkey servers for SBC such as WordPress, LAMP, XMPP and so-on. Many of these will be in competition with existing turnkey builds, however I feel myΒ Migrator off site backup system will help my builds stand out from the pack.

Alexa for Raspberry Pi
A fair few tutorials exist that help a user build an Alexa-powered assistant device out of a Raspberry Pi, but I’d like to see a streamlined distro built around the concept… so I’ll build one.

Which project has you most excited?

NTP on Debian reporting 95 years in the future – Part 3: Community

If you haven’t read part 1 yet, make sure you start there.

Hooray! I am not alone, and it does indeed appear to be a Pine64-specific issue. That means I’m not crazy. Or at least, this issue doesn’t prove my craziness.

  1. https://forum.armbian.com/topic/3458-a64-datetime-clock-issue/
  2. https://forum.armbian.com/topic/7423-pine64-massive-datetime-clock-problem/

Looking at martinayotte‘s suggestions, since he seems to have been through what I’m going through right now…

Okay, so just in case they fixed it already, let’s just try…

Hmm, it seems apt doesn’t like time travelers like me. So … [le gasp]…

Wait for it….

Like trying to play my 8-track cassettes in a Blu-Ray player, apparently some services don’t play nicely 95 years in the future. DHCP is showing locally on the TTY splash screen as 127.0.0.1, and the only way to recover will be to re-flash to a point before the NTP issue struck.

What’s next? Read Part 4:

NTP on Debian reporting 95 years in the future – Part 4: Back To The Past

NTP on Debian reporting 95 years in the future – Part 2: The Time Traveler

If you haven’t read part 1 yet, make sure you start there.

This issue has really intrigued me.

Setting the date manually fails:

Invalid argument? Maybe it wants me to set the time too?

Nope, that made no difference.

Well, what does my hardware clock say (since the Pine A64+ has one)?

Oh yay, that looks better! Let’s use that! Obviously the system knows the date and time…

Oh, COME ON!

Maybe I’ll try the long-form command…

Nope. Same result. Ach!

This is looking a lot like an old kernel bug I recall from the late 2000’s. Better check what kernel I’m running…

If I had hair…

Just to be sure, let’s reconfigure my timezone config:

Okay, so let me get this straight… it’s August 28, 2113. But it’s July 5, 2018 according to the RTC.

Think, Robbie, think.

I did a quick grep through the /var/log folder for anything talking about ntp, and interestingly, I find this at the top of dpkg.log:

So on first boot, the system had the date correct: July 4, 2018. The time is off by a couple hours however (it was perhaps 6am when I flashed and fired up the system and then left for work).

What’s interesting here is that the typical ntp startup tasks unpack, install and run, but then after the package is installed (a presumably automated process since I didn’t do it!) the date suddenly changes to August 27, 2113.

Being a Raspberry Pi user all my SBC life, I’m honestly impressed that the Pine A64+ has a built-in RTC… but nowhere in the specs do I see that it also includes a corresponding flux capacitor, so I must presume the jump through time is more likely a glitch in the matrix.

I’m afraid to reboot.

What’s Next? Read Part 3:

NTP on Debian reporting 95 years in the future – Part 3: Community