From b451e4d38db348f516dc4cea220d2d01e2ef159b Mon Sep 17 00:00:00 2001 From: Gaston Gonzalez Date: Sun, 6 Oct 2024 17:28:01 -0700 Subject: [PATCH 1/4] GPS - Fixed Chrony configuration --- overlay/etc/chrony/chrony.conf | 65 ++++++++++++++++++++++++++++++++++ scripts/install-gps.sh | 6 ++-- 2 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 overlay/etc/chrony/chrony.conf diff --git a/overlay/etc/chrony/chrony.conf b/overlay/etc/chrony/chrony.conf new file mode 100644 index 0000000..ce4bfcd --- /dev/null +++ b/overlay/etc/chrony/chrony.conf @@ -0,0 +1,65 @@ +# Welcome to the chrony configuration file. See chrony.conf(5) for more +# information about usable directives. + +# Include configuration files found in /etc/chrony/conf.d. +confdir /etc/chrony/conf.d + +# This will use (up to): +# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled +# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well +# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm) +# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only +# sources will be used. +# At the same time it retains some protection against one of the entries being +# down (compare to just using one of the lines). See (LP: #1754358) for the +# discussion. +# +# About using servers from the NTP Pool Project in general see (LP: #104525). +# Approved by Ubuntu Technical Board on 2011-02-08. +# See http://www.pool.ntp.org/join.html for more information. +pool ntp.ubuntu.com iburst maxsources 4 +pool 0.ubuntu.pool.ntp.org iburst maxsources 1 +pool 1.ubuntu.pool.ntp.org iburst maxsources 1 +pool 2.ubuntu.pool.ntp.org iburst maxsources 2 + +# Use time sources from DHCP. +sourcedir /run/chrony-dhcp + +# Use NTP sources found in /etc/chrony/sources.d. +sourcedir /etc/chrony/sources.d + +# This directive specify the location of the file containing ID/key pairs for +# NTP authentication. +keyfile /etc/chrony/chrony.keys + +# This directive specify the file into which chronyd will store the rate +# information. +driftfile /var/lib/chrony/chrony.drift + +# Save NTS keys and cookies. +ntsdumpdir /var/lib/chrony + +# Uncomment the following line to turn logging on. +#log tracking measurements statistics + +# Log files location. +logdir /var/log/chrony + +# Stop bad estimates upsetting machine clock. +maxupdateskew 100.0 + +# This directive enables kernel synchronisation (every 11 minutes) of the +# real-time clock. Note that it can’t be used along with the 'rtcfile' directive. +rtcsync + +# Step the system clock instead of slewing it if the adjustment is larger than +# one second, but only in the first three clock updates. +makestep 1 3 + +# Get TAI-UTC offset and leap seconds from the system tz database. +# This directive must be commented out when using time sources serving +# leap-smeared time. +leapsectz right/UTC + +# ET: Enable GPS as a time source +refclock SHM 0 refid GPS poll 4 precision 1e-3 offset 0.128 diff --git a/scripts/install-gps.sh b/scripts/install-gps.sh index ede7e4c..cdc28f5 100755 --- a/scripts/install-gps.sh +++ b/scripts/install-gps.sh @@ -2,9 +2,8 @@ # # Author : Gaston Gonzalez # Date : 1 October 2022 -# Updated : 4 October 2024 +# Updated : 6 October 2024 # Purpose : Configure GPS and time synch -set -e et-log "Installing GPS packages and dependencies..." apt install \ @@ -26,6 +25,5 @@ et-log "Disable automatic start of gpsd..." systemctl disable gpsd et-log "Updating chronyd to support GPS as a time source..." -echo "# ET: Enable GPS as a time source" >> /etc/chrony/chrony.conf -echo "refclock SHM 0 refid GPS poll 4 precision 1e-3 offset 0.128" >> /etc/chrony/chrony.conf +cp ../overlay/etc/chrony/chrony.conf /etc/chrony/ systemctl restart chronyd From 917e1c466aeae48ddee6ccd386548ae8cf2c4ffe Mon Sep 17 00:00:00 2001 From: Gaston Gonzalez Date: Sun, 6 Oct 2024 17:30:41 -0700 Subject: [PATCH 2/4] Conky - Updated system info refresh period for IP address. Increased font size. --- overlay/etc/skel/.conkyrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/overlay/etc/skel/.conkyrc b/overlay/etc/skel/.conkyrc index 99fab7e..8c95f96 100644 --- a/overlay/etc/skel/.conkyrc +++ b/overlay/etc/skel/.conkyrc @@ -17,12 +17,12 @@ conky.config = { }; conky.text = [[ -${font DejaVu Sans Mono:size=12}${alignc}${time %A, %B %d %Y} +${font DejaVu Sans Mono:size=14}${alignc}${time %A, %B %d %Y} Local: ${alignr}${time %H:%M:%S} UTC: ${alignr}${tztime UTC %H:%M:%S} Uptime: ${uptime} -IP: ${execpi 3600 /opt/emcomm-tools/bin/et-system-info ip} +IP: ${execpi 60 /opt/emcomm-tools/bin/et-system-info ip} ${execp /opt/emcomm-tools/bin/et-system-info release} CAT: ${execpi 15 /opt/emcomm-tools/bin/et-system-info et-cat} From cfef10f3628c025aa1172167dee6d7b1de6cafce Mon Sep 17 00:00:00 2001 From: Gaston Gonzalez Date: Sun, 6 Oct 2024 17:55:47 -0700 Subject: [PATCH 3/4] Restored custom apt sources after image build --- overlay/etc/crontab | 25 +++++++++++++++++++++++++ scripts/update-apt.sh | 8 ++++---- 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 overlay/etc/crontab diff --git a/overlay/etc/crontab b/overlay/etc/crontab new file mode 100644 index 0000000..05cd403 --- /dev/null +++ b/overlay/etc/crontab @@ -0,0 +1,25 @@ +# /etc/crontab: system-wide crontab +# Unlike any other crontab you don't have to run the `crontab' +# command to install the new version when you edit this file +# and files in /etc/cron.d. These files also have username fields, +# that none of the other crontabs do. + +SHELL=/bin/sh +# You can also override PATH, but by default, newer versions inherit it from the environment +#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +# Example of job definition: +# .---------------- minute (0 - 59) +# | .------------- hour (0 - 23) +# | | .---------- day of month (1 - 31) +# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... +# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat +# | | | | | +# * * * * * user-name command to be executed +17 * * * * root cd / && run-parts --report /etc/cron.hourly +25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) +47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) +52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) + +# ET: Restore old-releases apt repository on startup +@reboot root cp /root/emcomm-tools-os-community/overlay/etc/apt/sources.list /etc/apt/ diff --git a/scripts/update-apt.sh b/scripts/update-apt.sh index 679c41f..8fee1fb 100755 --- a/scripts/update-apt.sh +++ b/scripts/update-apt.sh @@ -3,11 +3,11 @@ # Author : Gaston Gonzalez # Date : 16 March 2024 # Updated : 6 October 2024 -# Purpose : Updates the apt repository +# Purpose : Updates the apt repository to use the old-releases -et-log "Updating apt to use the old repository" +et-log "Updating apt to use the old repository..." -cp -v ../overlay/etc/apt/sources.list /etc/apt/sources.list -sudo chattr +i /etc/apt/sources.list +cp -v ../overlay/etc/apt/sources.list /etc/apt/ +cp -v ../overlay/etc/crontab /etc/ apt update From d02600e885c0a936bcd85690c0ceaabb18d3cc7d Mon Sep 17 00:00:00 2001 From: Gaston Gonzalez Date: Sun, 6 Oct 2024 19:04:48 -0700 Subject: [PATCH 4/4] GPS - Trying an experimental fix to resolve the GPS fix issue --- overlay/etc/default/gpsd | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/overlay/etc/default/gpsd b/overlay/etc/default/gpsd index 4c0d930..bec6ea7 100644 --- a/overlay/etc/default/gpsd +++ b/overlay/etc/default/gpsd @@ -1,6 +1,14 @@ # Author : Gaston Gonzalez # Date : 4 October +# Updated : 6 October # Purpose : GPS configuration for EmComm Tools +# +# Note: The 3.22 version of gpsd shipped with Ubuntu 22.04 has an issue +# obtaining subsequent positions after the initial fix. +# +# See https://bugs.launchpad.net/ubuntu/+source/gpsd/+bug/2011721 +# +# Workaround: Use -b option or upgrade to gpsd 3.25 # Prevent starting automatically by systemd START_DAEMON="false" @@ -13,4 +21,5 @@ USBAUTO="false" DEVICES="/dev/et-gps" # -n should be used when using GPS as a reference clock -GPSD_OPTIONS="-n" +# -b user read-only mode to prevent u-blox protocol from being used +GPSD_OPTIONS="-n -b"