This is an old revision of the document!
Enable PPS support in Raspian
DUNE has a task called Supervisors.ClockPPS that is used to dicipline the clock from both IMC::GpsFix messages and a PPS source. To get this to work, the kernel has to be compiled with two options not currently enabled by default:
- CONFIG_PPS (“PPS support” in “make menuconfig”)
- CONFIG_NTP_PPS (“PPS kernel consumer support” in “make menuconfig”)
Step 1: Download kernel
mkdir ppskernel cd ppskernel git clone https://github.com/raspberrypi/linux.git cd linux make mrproper zcat /proc/config.gz > .config make oldconfig
Then comes the hard part, setting the options. Normally this is straight forward, but due to some options only showing when others are disabled, it may be a little tricky.
make menuconfig
Go to General setup ---> Timers subsystem ---> and disable Old Idle dynticks config, then enter Timer tick handling and change it to Periodic timer ticks (constant rate, no dynticks)
Turn on PPS support:
PPS kernel consumer support is the option that should have become visible after changing the timer settings. If not, save and reload make menuconfig.
Device Drivers ---> PPS support --->
<M> PPS support
[ ] PPS debugging messages
[*] PPS kernel consumer support
*** PPS clients support ***
< > Kernel timer client (Testing client, use for debug)
<M> PPS line discipline
<M> PPS client using GPIO
*** PPS generators support ***