Why does the source code include kernel header files?
The program needs to see the definitions of structures used to interact with the real time clock (via /dev/rtc) and with the adjtimex() system call. Sadly this has led to a number of compilation problems with newer kernels which have been increasingly hard to fix in a way that makes the code compilable on all Linux kernel versions (from 2.0 up anyway, I doubt 1.x still works.) Hopefully the situation will not deteriorate further with future kernel versions. 14.2. I get “Could not open /dev/rtc, Device or resource busy” in my syslog file. Check that you haven’t accidentally got two copies of chronyd running (perhaps defined in different start-up scripts.) 15. Solaris-specific issues 15.1. On Solaris 2.8, I get an error message about not being able to open kvm to change dosynctodr. (The dosynctodr variable controls whether Solaris couples the equivalent of its BIOS clock into its system clock at regular intervals). The Solaris port of chrony was developed in the Solaris 2.5 era. Some asp