-
Notifications
You must be signed in to change notification settings - Fork 5.2k
PPS source have timeout since update on March 17th #5430
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Is that a 32-bit image you are using? And was it previously running a 32-bit kernel? If so, and if you still have (or can easily recreate) the failing image, try adding |
Yes, it a 32 bits image that I'm using. I use the default image proposed in the imager: 32 bits with desktop. |
Cool - consider that a workaround for now, at least until we understand the problem. I've a horrible feeling its a problem with the ioctl() interface from the 32-bit userland to the 64-bit kernel... |
My configuration is:
If I launch ppstest without the fake PPS source I see:
With the fake source:
I've not seen anything like a timeout. Can you run the following test?
|
|
So to be back in the faulty situation I comment the "arm_64bit=0" line in the config.txt file, I shutdown the pi, remove the gps module, put a jumper between pin 11 and 12 and reboot the pi When I remove the jumper, the stream simply stops, no timeout. |
Interesting. What is the minimum you need to do to get ppstest to fail with a timeout? Obviously you won't be running the while loop, but what else? |
I put the gps module back on the pi and now I have timeout. |
I also try the while loop with a sleep of 0.9s and no timeout |
I try to reproduce the problem with a Pi 3B+ which also have a 64 bits core, but no timeout for the moment. I use jumper wires to reroute TX and PPS signal from the Pi4 to the Pi3B+. I have no timeout and chrony does sync correctly. |
Could you install a fresh Raspberry Pi OS on spare SD card, then do just enough to run ppstest with the HAT attached? |
I just create a new SD card with default Raspberry Pi OS 32 bits of Feb. the 21st with imager version 1.7.2. |
Thanks - that's useful (but annoying). Does stopping the gpsmon service prevent the timeouts? I won't be surprised if you don't get any pulses back. |
No, I just stop and disable both gpsd.service and gpsd.socket, no difference. Timeout is still present. |
What is strange is that the gpsmon command does see the pps pulses, but the ppstest command see timeout. |
Hello, I'm also running a NTP server on a Raspberry Pi 4 (4 GB) alongside some network monitoring and NUT. GPS module used here is a Gonnely NEO-6M board connected to GPIO.
chrony's log Another symptom was For my original setup I mostly followed https://austinsnerdythings.com/2021/04/19/microsecond-accurate-ntp-with-a-raspberry-pi-and-pps-gps/ and my
If I can provide any further information to fix this bug, please let me know. |
I'm not sure what's changed, but with a Pico as a fake PPS source (5 lines of MicroPython!) I'm now getting timeouts from pps-test on the 64-bit kernel, while it works as expected on the 32-bit kernel. |
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: raspberrypi#5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
See #5478 for a probable fix. Once the check builds have completed (in about an hour), run |
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
Hi Phil, Thank you for the update. I would like to try, but my Pi is in production and I'm still waiting to buy another Pi 4 to make some tests. But the market is very short actually, the only Pi 4 I found is about 200$... Too expensive to make some test. |
The situation is improving. Keep an eye on rpilocator. |
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
After a LOT of troubleshooting I discovered that my GPS modules are not putting out PPS. My first clue was in a post from @Etifloyd; jumper GPIO17 to GPIO18 with the GPS module disconnected then execute the following commands as root: while true; do gpioset gpiochip0 17=1; gpioset gpiochip0 17=0; sleep 1; done & the first line toggles GPIO17 to simulate PPS signals on GPIO18 Once I saw that GPIO18 state changes were being seen, I got out a cheapie quimat digital scope I have ($32 on Amazon) I could clearly see that no pulses were being sent. Moral of the story is that if /dev/pps0 IS present, if no pulses are being sent the ppstest may not be a valid test Inspecting a spec sheet for the Air530 module shows that there is a command to turn off the PPS signal off |
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: raspberrypi/linux#5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
As of [1], using PPS_FETCH on a 64-bit ARM kernel with a 32-bit userland is broken, returning a timeout. This is because the requested 4-byte alignment for struct pps_ktime_compat (illegal on arm64) results in the timeout flags field being uninitialised. Make the hack specific to X86_64 builds with CONFIG_COMPAT defined. [1] commit c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") See: #5430 Fixes: c2a49fe ("pps: fix padding issue with PPS_FETCH for ioctl_compat") Signed-off-by: Phil Elwell <[email protected]>
Describe the bug
For more than one year I'm running chrony with a Waveshare NEO-M8T GPS/PPS module to have a stratum 1 NTP server. It was running correctly until I let Raspberry PI OS make a big update on March 17th. Since chrony is no more able to synchronize with the PPS signal.
Running the following command: "sudo ppstest /dev/pps0" give time-out errors.
To be sure that the GPS module is still ok, I restore a SD card with an image of december and it runs correctly.
Steps to reproduce the behaviour
Create an SD card with the last version of Raspberry Pi imager and apply all updates.
Update the /boot/config.txt (see attachement).
Install the following packages: chrony, gpsd, gpsd-clients, gpsmon, pps-tools.
Update the following files: /etc/chrony/chrony.conf (see attachement) and /etc/default/gpsd (see attachement).
Stop and disable the systemd-timesyncd.service.
Enable chrony and gpsd services.
Reboot the raspberry.
Once rebooted the "sudo ppstest /dev/pps0" command shall give timeout errors.
And the "chronyc sources" command shall show 0 reach for the PPS0 source.
RPi_config.zip
Device (s)
Raspberry Pi 4 Mod. B
System
Raspberry Pi reference 2022-04-04
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 226b479f8d32919c9fe36dd5b4c20c02682f8180, stage4
Mar 17 2023 10:50:39
Copyright (c) 2012 Broadcom
version 82f3750a65fadae9a38077e3c2e217ad158c8d54 (clean) (release) (start)
Linux ntpserver 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
Logs
Here are my update logs from Feb. 14th when everything was running correctly and Mar. 17th where problem starts:
UpdateLog.zip
Additional context
No response
The text was updated successfully, but these errors were encountered: