Added CarPC setup/install
This commit is contained in:
17
CarPC/README.txt
Normal file
17
CarPC/README.txt
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
Kubuntu/Xubuntu (Debian) Setup
|
||||
==============================
|
||||
|
||||
Open a console window, and run the following commands.
|
||||
|
||||
sudo apt-get update
|
||||
sudo install git subversion
|
||||
mkdir NTCNA
|
||||
cd NTCNA
|
||||
svn co https://www.probestar.com/NTCNA/CVehicle (password is temppwd)
|
||||
cd NTCNA/CVehicle/trunk/platforms/bboneb
|
||||
./carpc-setup.sh
|
||||
|
||||
Takes awhile till it is done. There is a lot of software to install.
|
||||
|
||||
Adjust start_v2v.sh link as needed, re-run to run the right apps.
|
||||
103
CarPC/carpc-setup.sh
Executable file
103
CarPC/carpc-setup.sh
Executable file
@ -0,0 +1,103 @@
|
||||
#!/bin/sh
|
||||
|
||||
# copy config files
|
||||
for i in etc lib usr
|
||||
do
|
||||
if [ -d $i ]; then
|
||||
sudo cp -r $i/* /$i/
|
||||
fi
|
||||
done
|
||||
cp -r home/pi/.* /home/pi/
|
||||
|
||||
# network
|
||||
echo "Edit networking via control panel"
|
||||
|
||||
# update & clean
|
||||
sudo apt-get update
|
||||
sudo apt-get dist-upgrade
|
||||
sudo apt-get install -y ntpdate subversion git cmake
|
||||
sudo apt-get -y autoremove
|
||||
sudo apt-get clean
|
||||
|
||||
# Need rc.local to start CAN and BSMPd
|
||||
sudo systemctl enable rc-local.service
|
||||
if [ ! -f /etc/init/x11vnc.conf ]; then
|
||||
sudo systemctl enable x11vnc.service
|
||||
fi
|
||||
|
||||
# time
|
||||
sudo ntpdate pool.ntp.org
|
||||
sudo hwclock -w
|
||||
sudo apt-get update
|
||||
|
||||
# clone/pull
|
||||
mkdir -p $HOME/ProbeStar
|
||||
cd $HOME/ProbeStar
|
||||
for i in git_tools linux_tools pi_tools Cnomicon Pynomicon
|
||||
do
|
||||
if [ -d $i ]; then
|
||||
cd $i
|
||||
git config credential.helper store
|
||||
git pull --recurse-submodules
|
||||
cd ..
|
||||
else
|
||||
git clone https://github.com/nprobert/$i --recurse-submodules
|
||||
fi
|
||||
done
|
||||
cd $HOME
|
||||
for i in ProbeStar/*; do
|
||||
ln -fs $i
|
||||
done
|
||||
mkdir bin
|
||||
cp linux_tools/bin/* bin/
|
||||
|
||||
# checkouts
|
||||
mkdir -p $HOME/NTCNA
|
||||
cd $HOME/NTCNA
|
||||
for i in CVehicle PyVehicle
|
||||
do
|
||||
if [ -d $i ]; then
|
||||
cd $i
|
||||
git config credential.helper store
|
||||
git pull --recurse-submodules
|
||||
cd ..
|
||||
else
|
||||
git clone https://github.com/nprobert/$i --recurse-submodules
|
||||
fi
|
||||
done
|
||||
cd $HOME
|
||||
for i in NTCNA/*; do
|
||||
ln -fs $i
|
||||
done
|
||||
|
||||
# packages & builds
|
||||
if [ -d $HOME/ProbeStar/Cnomicon ]; then
|
||||
cd $HOME/Cnomicon/packages
|
||||
./packages.sh
|
||||
cd ..
|
||||
./cbuild.sh
|
||||
./cinstall.sh
|
||||
fi
|
||||
|
||||
if [ -d $HOME/NTCNA/CVehicle ]; then
|
||||
cd $HOME/CVehicle/packages
|
||||
./packages.sh
|
||||
cd ..
|
||||
./cbuild.sh
|
||||
./cinstall.sh
|
||||
fi
|
||||
|
||||
# python stuff
|
||||
cd $HOME/NTCNA/Pynomicon/packages
|
||||
./packages.sh
|
||||
chmod +x $HOME/Pynomicon/bin/*.sh
|
||||
cd $HOME/NTCNA/PyVehicle/packages
|
||||
./packages.sh
|
||||
chmod +x $HOME/PyVehicle/bin/*.sh
|
||||
|
||||
# cleanup
|
||||
chmod go+rwx /etc/x11vnc.pass
|
||||
sudo adduser $USER dialout
|
||||
|
||||
git config --global user.email "nprobert@probestar.net"
|
||||
git config --global user.name "Neal Probert"
|
||||
4
CarPC/etc/can.conf
Normal file
4
CarPC/etc/can.conf
Normal file
@ -0,0 +1,4 @@
|
||||
[default]
|
||||
interface = socketcan_native
|
||||
channel = can0
|
||||
|
||||
14
CarPC/etc/default/gpsd
Normal file
14
CarPC/etc/default/gpsd
Normal file
@ -0,0 +1,14 @@
|
||||
# Default settings for the gpsd init script and the hotplug wrapper.
|
||||
|
||||
# Start the gpsd daemon automatically at boot time
|
||||
START_DAEMON="true"
|
||||
|
||||
# Use USB hotplugging to add new USB devices automatically to the daemon
|
||||
USBAUTO="true"
|
||||
|
||||
# Devices gpsd should collect to at boot time.
|
||||
# They need to be read/writeable, either by user gpsd or the group dialout.
|
||||
DEVICES="/dev/ttyACM0"
|
||||
|
||||
# Other options you want to pass to gpsd
|
||||
GPSD_OPTIONS="-G"
|
||||
7
CarPC/etc/default/ptpd
Normal file
7
CarPC/etc/default/ptpd
Normal file
@ -0,0 +1,7 @@
|
||||
# /etc/default/ptpd
|
||||
|
||||
# Set to "yes" to actually start ptpd automatically
|
||||
START_DAEMON=yes
|
||||
|
||||
# Add command line options for ptpd
|
||||
PTPD_OPTS="-c /etc/ptpd2.conf"
|
||||
33
CarPC/etc/hosts
Normal file
33
CarPC/etc/hosts
Normal file
@ -0,0 +1,33 @@
|
||||
127.0.0.1 localhost
|
||||
127.0.1.1 carpc
|
||||
|
||||
# infrastructure network
|
||||
192.168.0.40 rse rsu
|
||||
192.168.0.15 rsupc
|
||||
|
||||
# vehicle network
|
||||
192.168.2.1 router
|
||||
192.168.2.2 wsu obe obu
|
||||
192.168.2.10 mabx2
|
||||
192.168.2.12 pi pi1
|
||||
192.168.2.15 carpc
|
||||
192.168.2.98 winpc
|
||||
192.168.2.99 linpc
|
||||
|
||||
# BBB
|
||||
192.168.7.2 bbb-usb
|
||||
|
||||
# C-V2X
|
||||
192.168.12.41 cv2x-1
|
||||
192.168.12.42 cv2x-2
|
||||
|
||||
# bench
|
||||
10.1.1.99 cvehicle
|
||||
10.1.1.200 ptsserver
|
||||
|
||||
# The following lines are desirable for IPv6 capable hosts
|
||||
::1 ip6-localhost ip6-loopback
|
||||
fe00::0 ip6-localnet
|
||||
ff00::0 ip6-mcastprefix
|
||||
ff02::1 ip6-allnodes
|
||||
ff02::2 ip6-allrouters
|
||||
5
CarPC/etc/init/x11vnc.conf
Normal file
5
CarPC/etc/init/x11vnc.conf
Normal file
@ -0,0 +1,5 @@
|
||||
start on login-session-start
|
||||
script
|
||||
/usr/bin/x11vnc -xkb -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes -noxdamage -rfbauth /etc/x11vnc.pass -forever -bg -rfbport 5900 -o /var/log/x11vnc.log
|
||||
end script
|
||||
|
||||
2
CarPC/etc/ld.so.conf.d/cvehicle.conf
Normal file
2
CarPC/etc/ld.so.conf.d/cvehicle.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# NTCNA CVehicle library
|
||||
/usr/local/cvehicle/lib
|
||||
2
CarPC/etc/ld.so.conf.d/pstar.conf
Normal file
2
CarPC/etc/ld.so.conf.d/pstar.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# other libs
|
||||
/usr/local/pstar/lib
|
||||
79
CarPC/etc/ntp.conf
Normal file
79
CarPC/etc/ntp.conf
Normal file
@ -0,0 +1,79 @@
|
||||
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
|
||||
|
||||
driftfile /var/lib/ntp/ntp.drift
|
||||
|
||||
# Leap seconds definition provided by tzdata
|
||||
leapfile /usr/share/zoneinfo/leap-seconds.list
|
||||
|
||||
# Enable this if you want statistics to be logged.
|
||||
#statsdir /var/log/ntpstats/
|
||||
|
||||
statistics loopstats peerstats clockstats
|
||||
filegen loopstats file loopstats type day enable
|
||||
filegen peerstats file peerstats type day enable
|
||||
filegen clockstats file clockstats type day enable
|
||||
|
||||
# Specify one or more NTP servers.
|
||||
|
||||
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
|
||||
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
|
||||
# more information.
|
||||
#pool 0.ubuntu.pool.ntp.org iburst
|
||||
#pool 1.ubuntu.pool.ntp.org iburst
|
||||
#pool 2.ubuntu.pool.ntp.org iburst
|
||||
#pool 3.ubuntu.pool.ntp.org iburst
|
||||
pool us.pool.ntp.org iburst
|
||||
|
||||
# Use Ubuntu's ntp server as a fallback.
|
||||
#pool ntp.ubuntu.com
|
||||
|
||||
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
|
||||
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
|
||||
# might also be helpful.
|
||||
#
|
||||
# Note that "restrict" applies to both servers and clients, so a configuration
|
||||
# that might be intended to block requests from certain clients could also end
|
||||
# up blocking replies from your own upstream servers.
|
||||
|
||||
# By default, exchange time with everybody, but don't allow configuration.
|
||||
restrict -4 default kod notrap nomodify nopeer noquery limited
|
||||
restrict -6 default kod notrap nomodify nopeer noquery limited
|
||||
|
||||
# Local users may interrogate the ntp server more closely.
|
||||
restrict -4 127.0.0.1
|
||||
restrict -6 ::1
|
||||
|
||||
# Needed for adding pool entries
|
||||
restrict source notrap nomodify noquery
|
||||
|
||||
# Clients from this (example!) subnet have unlimited access, but only if
|
||||
# cryptographically authenticated.
|
||||
#restrict 192.168.123.0 mask 255.255.255.0 notrust
|
||||
|
||||
|
||||
# If you want to provide time to your local subnet, change the next line.
|
||||
# (Again, the address is an example only.)
|
||||
#broadcast 192.168.123.255
|
||||
|
||||
# If you want to listen to time broadcasts on your local subnet, de-comment the
|
||||
# next lines. Please do this only if you trust everybody on the network!
|
||||
#disable auth
|
||||
#broadcastclient
|
||||
|
||||
#Changes recquired to use pps synchonisation as explained in documentation:
|
||||
#http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3918
|
||||
|
||||
#server 127.127.8.1 mode 135 prefer # Meinberg GPS167 with PPS
|
||||
#fudge 127.127.8.1 time1 0.0042 # relative to PPS for my hardware
|
||||
|
||||
#server 127.127.22.1 # ATOM(PPS)
|
||||
#fudge 127.127.22.1 flag3 1 # enable PPS API
|
||||
|
||||
# GPS Serial data reference (NTP0)
|
||||
server 127.127.28.0
|
||||
fudge 127.127.28.0 time1 0.9999 refid GPS
|
||||
|
||||
# GPS PPS reference (NTP1)
|
||||
server 127.127.28.1
|
||||
fudge 127.127.28.1 refid PPS
|
||||
|
||||
841
CarPC/etc/ptpd2.conf
Normal file
841
CarPC/etc/ptpd2.conf
Normal file
@ -0,0 +1,841 @@
|
||||
; ========================================
|
||||
; PTPDv2 version 2.3.2 default configuration
|
||||
; ========================================
|
||||
|
||||
; NOTE: the following settings are affected by ptpengine:preset selection:
|
||||
; ptpengine:slave_only
|
||||
; clock:no_adjust
|
||||
; ptpengine:clock_class - allowed range and default value
|
||||
; To see all preset settings, run ptpd2 -H (--long-help)
|
||||
|
||||
; Network interface to use - eth0, igb0 etc. (required).
|
||||
ptpengine:interface = enp1s0
|
||||
|
||||
; Backup network interface to use - eth0, igb0 etc. When no GM available,
|
||||
; slave will keep alternating between primary and secondary until a GM is found.
|
||||
;
|
||||
ptpengine:backup_interface =
|
||||
|
||||
; PTP engine preset:
|
||||
; none = Defaults, no clock class restrictions
|
||||
; masteronly = Master, passive when not best master (clock class 0..127)
|
||||
; masterslave = Full IEEE 1588 implementation:
|
||||
; Master, slave when not best master
|
||||
; (clock class 128..254)
|
||||
; slaveonly = Slave only (clock class 255 only)
|
||||
;
|
||||
; Options: none masteronly masterslave slaveonly
|
||||
ptpengine:preset = masteronly
|
||||
|
||||
; Transport type for PTP packets. Ethernet transport requires libpcap support.
|
||||
; Options: ipv4 ethernet
|
||||
ptpengine:transport = ipv4
|
||||
|
||||
; Enable TransportSpecific field compatibility with 802.1AS / AVB (requires Ethernet transport)
|
||||
ptpengine:dot1as = N
|
||||
|
||||
; Disable PTP port. Causes the PTP state machine to stay in PTP_DISABLED state indefinitely,
|
||||
; until it is re-enabled via configuration change or ENABLE_PORT management message.
|
||||
ptpengine:disabled = N
|
||||
|
||||
; IP transmission mode (requires IP transport) - hybrid mode uses
|
||||
; multicast for sync and announce, and unicast for delay request and
|
||||
; response; unicast mode uses unicast for all transmission.
|
||||
; When unicast mode is selected, destination IP(s) may need to be configured
|
||||
; (ptpengine:unicast_destinations).
|
||||
; Options: multicast unicast hybrid
|
||||
ptpengine:ip_mode = multicast
|
||||
|
||||
; Enable unicast negotiation support using signaling messages
|
||||
;
|
||||
ptpengine:unicast_negotiation = N
|
||||
|
||||
; When using unicast negotiation (slave), accept PTP messages from any master.
|
||||
; By default, only messages from acceptable masters (ptpengine:unicast_destinations)
|
||||
; are accepted, and only if transmission was granted by the master
|
||||
;
|
||||
ptpengine:unicast_any_master = N
|
||||
|
||||
; PTP port number wildcard mask applied onto port identities when running
|
||||
; unicast negotiation: allows multiple port identities to be accepted as one.
|
||||
; This option can be used as a workaround where a node sends signaling messages and
|
||||
; timing messages with different port identities
|
||||
ptpengine:unicast_port_mask = 0
|
||||
|
||||
; Disable Best Master Clock Algorithm for unicast masters:
|
||||
; Only effective for masteronly preset - all Announce messages
|
||||
; will be ignored and clock will transition directly into MASTER state.
|
||||
;
|
||||
ptpengine:disable_bmca = N
|
||||
|
||||
; When unicast negotiation enabled on a master clock,
|
||||
; reply to transmission requests also in LISTENING state.
|
||||
ptpengine:unicast_negotiation_listening = N
|
||||
|
||||
; Use libpcap for sending and receiving traffic (automatically enabled
|
||||
; in Ethernet mode).
|
||||
ptpengine:use_libpcap = N
|
||||
|
||||
; Disable UDP checksum validation on UDP sockets (Linux only).
|
||||
; Workaround for situations where a node (like Transparent Clock).
|
||||
; does not rewrite checksums
|
||||
;
|
||||
ptpengine:disable_udp_checksums = Y
|
||||
|
||||
; Delay detection mode used - use DELAY_DISABLED for syntonisation only
|
||||
; (no full synchronisation).
|
||||
; Options: E2E P2P DELAY_DISABLED
|
||||
ptpengine:delay_mechanism = E2E
|
||||
|
||||
; PTP domain number.
|
||||
ptpengine:domain = 0
|
||||
|
||||
; PTP port number (part of PTP Port Identity - not UDP port).
|
||||
; For ordinary clocks (single port), the default should be used,
|
||||
; but when running multiple instances to simulate a boundary clock,
|
||||
; The port number can be changed.
|
||||
ptpengine:port_number = 1
|
||||
|
||||
; Port description (returned in the userDescription field of PORT_DESCRIPTION management message and USER_DESCRIPTION management message) - maximum 64 characters
|
||||
ptpengine:port_description = ptpd
|
||||
|
||||
; Usability extension: if enabled, a slave-only clock will accept
|
||||
; masters from any domain, while preferring the configured domain,
|
||||
; and preferring lower domain number.
|
||||
; NOTE: this behaviour is not part of the standard.
|
||||
ptpengine:any_domain = N
|
||||
|
||||
; Slave only mode (sets clock class to 255, overriding value from preset).
|
||||
ptpengine:slave_only = N
|
||||
|
||||
; Specify latency correction (nanoseconds) for incoming packets.
|
||||
ptpengine:inbound_latency = 0
|
||||
|
||||
; Specify latency correction (nanoseconds) for outgoing packets.
|
||||
ptpengine:outbound_latency = 0
|
||||
|
||||
; Apply an arbitrary shift (nanoseconds) to offset from master when
|
||||
; in slave state. Value can be positive or negative - useful for
|
||||
; correcting for antenna latencies, delay assymetry
|
||||
; and IP stack latencies. This will not be visible in the offset
|
||||
; from master value - only in the resulting clock correction.
|
||||
ptpengine:offset_shift = 0
|
||||
|
||||
; Compatibility option: In slave state, always respect UTC offset
|
||||
; announced by best master, even if the the
|
||||
; currrentUtcOffsetValid flag is announced FALSE.
|
||||
; NOTE: this behaviour is not part of the standard.
|
||||
ptpengine:always_respect_utc_offset = Y
|
||||
|
||||
; Compatibility extension to BMC algorithm: when enabled,
|
||||
; BMC for both master and save clocks will prefer masters
|
||||
; nannouncing currrentUtcOffsetValid as TRUE.
|
||||
; NOTE: this behaviour is not part of the standard.
|
||||
ptpengine:prefer_utc_offset_valid = N
|
||||
|
||||
; Compatibility option: when enabled, ptpd2 will ignore
|
||||
; Announce messages from masters announcing currentUtcOffsetValid
|
||||
; as FALSE.
|
||||
; NOTE: this behaviour is not part of the standard.
|
||||
ptpengine:require_utc_offset_valid = N
|
||||
|
||||
; Time (seconds) unicast messages are requested for by slaves
|
||||
; when using unicast negotiation, and maximum time unicast message
|
||||
; transmission is granted to slaves by masters
|
||||
;
|
||||
ptpengine:unicast_grant_duration = 300
|
||||
|
||||
; PTP announce message interval in master state. When using unicast negotiation, for
|
||||
; slaves this is the minimum interval requested, and for masters
|
||||
; this is the only interval granted.
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_announce_interval = 1
|
||||
|
||||
; Maximum Announce message interval requested by slaves when using unicast negotiation,
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_announce_interval_max = 5
|
||||
|
||||
; PTP announce receipt timeout announced in master state.
|
||||
ptpengine:announce_receipt_timeout = 6
|
||||
|
||||
; PTP announce receipt timeout grace period in slave state:
|
||||
; when announce receipt timeout occurs, disqualify current best GM,
|
||||
; then wait n times announce receipt timeout before resetting.
|
||||
; Allows for a seamless GM failover when standby GMs are slow
|
||||
; to react. When set to 0, this option is not used.
|
||||
ptpengine:announce_receipt_grace_period = 0
|
||||
|
||||
; PTP sync message interval in master state. When using unicast negotiation, for
|
||||
; slaves this is the minimum interval requested, and for masters
|
||||
; this is the only interval granted.
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_sync_interval = 0
|
||||
|
||||
; Maximum Sync message interval requested by slaves when using unicast negotiation,
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_sync_interval_max = 5
|
||||
|
||||
; Override the Delay Request interval announced by best master.
|
||||
ptpengine:log_delayreq_override = N
|
||||
|
||||
; Automatically override the Delay Request interval
|
||||
; if the announced value is 127 (0X7F), such as in
|
||||
; unicast messages (unless using unicast negotiation)
|
||||
ptpengine:log_delayreq_auto = Y
|
||||
|
||||
; Delay request interval used before receiving first delay response
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_delayreq_interval_initial = 0
|
||||
|
||||
; Minimum delay request interval announced when in master state,
|
||||
; in slave state overrides the master interval,
|
||||
; required in hybrid mode. When using unicast negotiation, for
|
||||
; slaves this is the minimum interval requested, and for masters
|
||||
; this is the minimum interval granted.
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_delayreq_interval = 0
|
||||
|
||||
; Maximum Delay Response interval requested by slaves when using unicast negotiation,
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_delayreq_interval_max = 5
|
||||
|
||||
; Minimum peer delay request message interval in peer to peer delay mode.
|
||||
; When using unicast negotiation, this is the minimum interval requested,
|
||||
; and the only interval granted.
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_peer_delayreq_interval = 1
|
||||
|
||||
; Maximum Peer Delay Response interval requested by slaves when using unicast negotiation,
|
||||
; (expressed as log 2 i.e. -1=0.5s, 0=1s, 1=2s etc.)
|
||||
ptpengine:log_peer_delayreq_interval_max = 5
|
||||
|
||||
; Foreign master record size (Maximum number of foreign masters).
|
||||
ptpengine:foreignrecord_capacity = 5
|
||||
|
||||
; Specify Allan variance announced in master state.
|
||||
ptpengine:ptp_allan_variance = 65535
|
||||
|
||||
; Clock accuracy range announced in master state.
|
||||
; Options: ACC_25NS ACC_100NS ACC_250NS ACC_1US ACC_2_5US ACC_10US ACC_25US ACC_100US ACC_250US ACC_1MS ACC_2_5MS ACC_10MS ACC_25MS ACC_100MS ACC_250MS ACC_1S ACC_10S ACC_10SPLUS ACC_UNKNOWN
|
||||
ptpengine:ptp_clock_accuracy = ACC_UNKNOWN
|
||||
|
||||
; Underlying time source UTC offset announced in master state.
|
||||
ptpengine:utc_offset = 0
|
||||
|
||||
; Underlying time source UTC offset validity announced in master state.
|
||||
ptpengine:utc_offset_valid = N
|
||||
|
||||
; Underlying time source time traceability announced in master state.
|
||||
ptpengine:time_traceable = N
|
||||
|
||||
; Underlying time source frequency traceability announced in master state.
|
||||
ptpengine:frequency_traceable = N
|
||||
|
||||
; Time scale announced in master state (with ARB, UTC properties
|
||||
; are ignored by slaves). When clock class is set to 13 (application
|
||||
; specific), this value is ignored and ARB is used.
|
||||
; Options: PTP ARB
|
||||
ptpengine:ptp_timescale = PTP
|
||||
|
||||
; Time source announced in master state.
|
||||
; Options: ATOMIC_CLOCK GPS TERRESTRIAL_RADIO PTP NTP HAND_SET OTHER INTERNAL_OSCILLATOR
|
||||
ptpengine:ptp_timesource = NTP
|
||||
|
||||
; Clock class - announced in master state. Always 255 for slave-only.
|
||||
; Minimum, maximum and default values are controlled by presets.
|
||||
; If set to 13 (application specific time source), announced
|
||||
; time scale is always set to ARB. This setting controls the
|
||||
; states a PTP port can be in. If below 128, port will only
|
||||
; be in MASTER or PASSIVE states (master only). If above 127,
|
||||
; port will be in MASTER or SLAVE states.
|
||||
ptpengine:clock_class = 0
|
||||
|
||||
; Priority 1 announced in master state,used for Best Master
|
||||
; Clock selection.
|
||||
ptpengine:priority1 = 128
|
||||
|
||||
; Priority 2 announced in master state, used for Best Master
|
||||
; Clock selection.
|
||||
ptpengine:priority2 = 128
|
||||
|
||||
; Number of consecutive resets to LISTENING before full network reset
|
||||
;
|
||||
ptpengine:max_listen = 5
|
||||
|
||||
; Specify unicast slave addresses for unicast master operation, or unicast
|
||||
; master addresses for slave operation. Format is similar to an ACL: comma,
|
||||
; tab or space-separated IPv4 unicast addresses, one or more. For a slave,
|
||||
; when unicast negotiation is used, setting this is mandatory.
|
||||
ptpengine:unicast_destinations =
|
||||
|
||||
; Specify PTP domain number for each configured unicast destination (ptpengine:unicast_destinations).
|
||||
; This is only used by slave-only clocks using unicast destinations to allow for each master
|
||||
; to be in a separate domain, such as with Telecom Profile. The number of entries should match the number
|
||||
; of unicast destinations, otherwise unconfigured domains or domains set to 0 are set to domain configured in
|
||||
; ptpengine:domain. The format is a comma, tab or space-separated list of 8-bit unsigned integers (0 .. 255)
|
||||
ptpengine:unicast_domains =
|
||||
|
||||
; Specify a local preference for each configured unicast destination (ptpengine:unicast_destinations).
|
||||
; This is only used by slave-only clocks using unicast destinations to allow for each master's
|
||||
; BMC selection to be influenced by the slave, such as with Telecom Profile. The number of entries should match the number
|
||||
; of unicast destinations, otherwise unconfigured preference is set to 0 (highest).
|
||||
; The format is a comma, tab or space-separated list of 8-bit unsigned integers (0 .. 255)
|
||||
ptpengine:unicast_local_preference =
|
||||
|
||||
; Specify peer unicast adress for P2P unicast. Mandatory when
|
||||
; running unicast mode and P2P delay mode.
|
||||
ptpengine:unicast_peer_destination =
|
||||
|
||||
; Enable handling of PTP management messages.
|
||||
ptpengine:management_enable = Y
|
||||
|
||||
; Accept SET and COMMAND management messages.
|
||||
ptpengine:management_set_enable = N
|
||||
|
||||
; Send explicit IGMP joins between engine resets and periodically
|
||||
; in master state.
|
||||
ptpengine:igmp_refresh = Y
|
||||
|
||||
; Periodic IGMP join interval (seconds) in master state when running
|
||||
; IPv4 multicast: when set below 10 or when ptpengine:igmp_refresh
|
||||
; is disabled, this setting has no effect.
|
||||
ptpengine:master_igmp_refresh_interval = 60
|
||||
|
||||
; Multicast time to live for multicast PTP packets (ignored and set to 1
|
||||
; for peer to peer messages).
|
||||
ptpengine:multicast_ttl = 64
|
||||
|
||||
; DiffServ CodepPoint for packet prioritisation (decimal). When set to zero,
|
||||
; this option is not used. Use 46 for Expedited Forwarding (0x2e).
|
||||
ptpengine:ip_dscp = 0
|
||||
|
||||
; Enable statistical filter for Sync messages.
|
||||
ptpengine:sync_stat_filter_enable = N
|
||||
|
||||
; Type of filter used for Sync message filtering
|
||||
; Options: none mean min max absmin absmax median
|
||||
ptpengine:sync_stat_filter_type = min
|
||||
|
||||
; Number of samples used for the Sync statistical filter
|
||||
ptpengine:sync_stat_filter_window = 4
|
||||
|
||||
; Sample window type used for Sync message statistical filter. Delay Response outlier filter action.
|
||||
; Sliding window is continuous, interval passes every n-th sample only.
|
||||
; Options: sliding interval
|
||||
ptpengine:sync_stat_filter_window_type = sliding
|
||||
|
||||
; Enable statistical filter for Delay messages.
|
||||
ptpengine:delay_stat_filter_enable = N
|
||||
|
||||
; Type of filter used for Delay message statistical filter
|
||||
; Options: none mean min max absmin absmax median
|
||||
ptpengine:delay_stat_filter_type = min
|
||||
|
||||
; Number of samples used for the Delay statistical filter
|
||||
ptpengine:delay_stat_filter_window = 4
|
||||
|
||||
; Sample window type used for Delay message statistical filter
|
||||
; Sliding window is continuous, interval passes every n-th sample only
|
||||
; Options: sliding interval
|
||||
ptpengine:delay_stat_filter_window_type = sliding
|
||||
|
||||
; Enable outlier filter for the Delay Response component in slave state
|
||||
ptpengine:delay_outlier_filter_enable = N
|
||||
|
||||
; Delay Response outlier filter action. If set to 'filter', outliers are
|
||||
; replaced with moving average.
|
||||
; Options: discard filter
|
||||
ptpengine:delay_outlier_filter_action = discard
|
||||
|
||||
; Number of samples in the Delay Response outlier filter buffer
|
||||
ptpengine:delay_outlier_filter_capacity = 20
|
||||
|
||||
; Delay Response outlier filter threshold (: multiplier for Peirce's maximum
|
||||
; standard deviation. When set below 1.0, filter is tighter, when set above
|
||||
; 1.0, filter is looser than standard Peirce's test.
|
||||
; When autotune enabled, this is the starting threshold.
|
||||
ptpengine:delay_outlier_filter_threshold = 1.000000
|
||||
|
||||
; Always run the Delay Response outlier filter, even if clock is being slewed at maximum rate
|
||||
ptpengine:delay_outlier_filter_always_filter = N
|
||||
|
||||
; Enable automatic threshold control for Delay Response outlier filter.
|
||||
ptpengine:delay_outlier_filter_autotune_enable = Y
|
||||
|
||||
; Delay Response outlier filter autotune low watermark - minimum percentage
|
||||
; of discarded samples in the update period before filter is tightened
|
||||
; by the autotune step value.
|
||||
ptpengine:delay_outlier_filter_autotune_minpercent = 20
|
||||
|
||||
; Delay Response outlier filter autotune high watermark - maximum percentage
|
||||
; of discarded samples in the update period before filter is loosened
|
||||
; by the autotune step value.
|
||||
ptpengine:delay_outlier_filter_autotune_maxpercent = 95
|
||||
|
||||
; The value the Delay Response outlier filter threshold is increased
|
||||
; or decreased by when auto-tuning.
|
||||
ptpengine:delay_outlier_autotune_step = 0.100000
|
||||
|
||||
; Minimum Delay Response filter threshold value used when auto-tuning
|
||||
ptpengine:delay_outlier_filter_autotune_minthreshold = 0.100000
|
||||
|
||||
; Maximum Delay Response filter threshold value used when auto-tuning
|
||||
ptpengine:delay_outlier_filter_autotune_maxthreshold = 5.000000
|
||||
|
||||
; Enable Delay filter step detection (delaySM) to block when certain level exceeded
|
||||
ptpengine:delay_outlier_filter_stepdetect_enable = N
|
||||
|
||||
; Delay Response step detection threshold. Step detection is performed
|
||||
; only when delaySM is below this threshold (nanoseconds)
|
||||
ptpengine:delay_outlier_filter_stepdetect_threshold = 1000000
|
||||
|
||||
; Delay Response step level. When step detection enabled and operational,
|
||||
; delaySM above this level (nanosecond) is considered a clock step and updates are paused
|
||||
ptpengine:delay_outlier_filter_stepdetect_level = 500000
|
||||
|
||||
; Initial credit (number of samples) the Delay step detection filter can block for
|
||||
; When credit is exhausted, filter stops blocking. Credit is gradually restored
|
||||
ptpengine:delay_outlier_filter_stepdetect_credit = 200
|
||||
|
||||
; Amount of credit for the Delay step detection filter restored every full sample window
|
||||
ptpengine:delay_outlier_filter_stepdetect_credit_increment = 10
|
||||
|
||||
; Delay Response outlier weight: if an outlier is detected, determines
|
||||
; the amount of its deviation from mean that is used to build the standard
|
||||
; deviation statistics and influence further outlier detection.
|
||||
; When set to 1.0, the outlier is used as is.
|
||||
ptpengine:delay_outlier_weight = 1.000000
|
||||
|
||||
; Enable outlier filter for the Sync component in slave state.
|
||||
ptpengine:sync_outlier_filter_enable = N
|
||||
|
||||
; Sync outlier filter action. If set to 'filter', outliers are replaced
|
||||
; with moving average.
|
||||
; Options: discard filter
|
||||
ptpengine:sync_outlier_filter_action = discard
|
||||
|
||||
; Number of samples in the Sync outlier filter buffer.
|
||||
ptpengine:sync_outlier_filter_capacity = 20
|
||||
|
||||
; Sync outlier filter threshold: multiplier for the Peirce's maximum standard
|
||||
; deviation. When set below 1.0, filter is tighter, when set above 1.0,
|
||||
; filter is looser than standard Peirce's test.
|
||||
ptpengine:sync_outlier_filter_threshold = 1.000000
|
||||
|
||||
; Always run the Sync outlier filter, even if clock is being slewed at maximum rate
|
||||
ptpengine:sync_outlier_filter_always_filter = N
|
||||
|
||||
; Enable automatic threshold control for Sync outlier filter.
|
||||
ptpengine:sync_outlier_filter_autotune_enable = Y
|
||||
|
||||
; Sync outlier filter autotune low watermark - minimum percentage
|
||||
; of discarded samples in the update period before filter is tightened
|
||||
; by the autotune step value.
|
||||
ptpengine:sync_outlier_filter_autotune_minpercent = 20
|
||||
|
||||
; Sync outlier filter autotune high watermark - maximum percentage
|
||||
; of discarded samples in the update period before filter is loosened
|
||||
; by the autotune step value.
|
||||
ptpengine:sync_outlier_filter_autotune_maxpercent = 95
|
||||
|
||||
; Value the Sync outlier filter threshold is increased
|
||||
; or decreased by when auto-tuning.
|
||||
ptpengine:sync_outlier_autotune_step = 0.100000
|
||||
|
||||
; Minimum Sync outlier filter threshold value used when auto-tuning
|
||||
ptpengine:sync_outlier_filter_autotune_minthreshold = 0.100000
|
||||
|
||||
; Maximum Sync outlier filter threshold value used when auto-tuning
|
||||
ptpengine:sync_outlier_filter_autotune_maxthreshold = 5.000000
|
||||
|
||||
; Enable Sync filter step detection (delayMS) to block when certain level exceeded.
|
||||
ptpengine:sync_outlier_filter_stepdetect_enable = N
|
||||
|
||||
; Sync step detection threshold. Step detection is performed
|
||||
; only when delayMS is below this threshold (nanoseconds)
|
||||
ptpengine:sync_outlier_filter_stepdetect_threshold = 1000000
|
||||
|
||||
; Sync step level. When step detection enabled and operational,
|
||||
; delayMS above this level (nanosecond) is considered a clock step and updates are paused
|
||||
ptpengine:sync_outlier_filter_stepdetect_level = 500000
|
||||
|
||||
; Initial credit (number of samples) the Sync step detection filter can block for.
|
||||
; When credit is exhausted, filter stops blocking. Credit is gradually restored
|
||||
ptpengine:sync_outlier_filter_stepdetect_credit = 200
|
||||
|
||||
; Amount of credit for the Sync step detection filter restored every full sample window
|
||||
ptpengine:sync_outlier_filter_stepdetect_credit_increment = 10
|
||||
|
||||
; Sync outlier weight: if an outlier is detected, this value determines the
|
||||
; amount of its deviation from mean that is used to build the standard
|
||||
; deviation statistics and influence further outlier detection.
|
||||
; When set to 1.0, the outlier is used as is.
|
||||
ptpengine:sync_outlier_weight = 1.000000
|
||||
|
||||
; Delay between moving to slave state and enabling clock updates (seconds).
|
||||
; This allows one-way delay to stabilise before starting clock updates.
|
||||
; Activated when going into slave state and during slave's GM failover.
|
||||
; 0 - not used.
|
||||
ptpengine:calibration_delay = 0
|
||||
|
||||
; PTP idle timeout: if PTPd is in SLAVE state and there have been no clock
|
||||
; updates for this amout of time, PTPd releases clock control.
|
||||
;
|
||||
ptpengine:idle_timeout = 120
|
||||
|
||||
; Enable panic mode: when offset from master is above 1 second, stop updating
|
||||
; the clock for a period of time and then step the clock if offset remains
|
||||
; above 1 second.
|
||||
ptpengine:panic_mode = N
|
||||
|
||||
; Duration (minutes) of the panic mode period (no clock updates) when offset
|
||||
; above 1 second detected.
|
||||
ptpengine:panic_mode_duration = 2
|
||||
|
||||
; When entering panic mode, release clock control while panic mode lasts
|
||||
; if ntpengine:* configured, this will fail over to NTP,
|
||||
; if not set, PTP will hold clock control during panic mode.
|
||||
ptpengine:panic_mode_release_clock = N
|
||||
|
||||
; Do not exit panic mode until offset drops below this value (nanoseconds).
|
||||
; 0 = not used.
|
||||
ptpengine:panic_mode_exit_threshold = 0
|
||||
|
||||
; Use PTPd's process ID as the middle part of the PTP clock ID - useful for running multiple instances.
|
||||
ptpengine:pid_as_clock_identity = N
|
||||
|
||||
; Fail over to NTP when PTP time sync not available - requires
|
||||
; ntpengine:enabled, but does not require the rest of NTP configuration:
|
||||
; will warn instead of failing over if cannot control ntpd.
|
||||
ptpengine:ntp_failover = N
|
||||
|
||||
; NTP failover timeout in seconds: time between PTP slave going into
|
||||
; LISTENING state, and releasing clock control. 0 = fail over immediately.
|
||||
ptpengine:ntp_failover_timeout = 120
|
||||
|
||||
; Prefer NTP time synchronisation. Only use PTP when NTP not available,
|
||||
; could be used when NTP runs with a local GPS receiver or another reference
|
||||
ptpengine:prefer_ntp = Y
|
||||
|
||||
; Legacy option from 2.3.0: same as ptpengine:panic_mode_release_clock
|
||||
ptpengine:panic_mode_ntp = N
|
||||
|
||||
; Clear counters after dumping all counter values on SIGUSR2.
|
||||
ptpengine:sigusr2_clears_counters = N
|
||||
|
||||
; Permit access control list for timing packets. Format is a series of
|
||||
; comma, space or tab separated network prefixes: IPv4 addresses or full CIDR notation a.b.c.d/x,
|
||||
; where a.b.c.d is the subnet and x is the decimal mask, or a.b.c.d/v.x.y.z where a.b.c.d is the
|
||||
; subnet and v.x.y.z is the 4-octet mask. The match is performed on the source IP address of the
|
||||
; incoming messages. IP access lists are only supported when using the IP transport.
|
||||
ptpengine:timing_acl_permit =
|
||||
|
||||
; Deny access control list for timing packets. Format is a series of
|
||||
; comma, space or tab separated network prefixes: IPv4 addresses or full CIDR notation a.b.c.d/x,
|
||||
; where a.b.c.d is the subnet and x is the decimal mask, or a.b.c.d/v.x.y.z where a.b.c.d is the
|
||||
; subnet and v.x.y.z is the 4-octet mask. The match is performed on the source IP address of the
|
||||
; incoming messages. IP access lists are only supported when using the IP transport.
|
||||
ptpengine:timing_acl_deny =
|
||||
|
||||
; Permit access control list for management messages. Format is a series of
|
||||
; comma, space or tab separated network prefixes: IPv4 addresses or full CIDR notation a.b.c.d/x,
|
||||
; where a.b.c.d is the subnet and x is the decimal mask, or a.b.c.d/v.x.y.z where a.b.c.d is the
|
||||
; subnet and v.x.y.z is the 4-octet mask. The match is performed on the source IP address of the
|
||||
; incoming messages. IP access lists are only supported when using the IP transport.
|
||||
ptpengine:management_acl_permit =
|
||||
|
||||
; Deny access control list for management messages. Format is a series of
|
||||
; comma, space or tab separated network prefixes: IPv4 addresses or full CIDR notation a.b.c.d/x,
|
||||
; where a.b.c.d is the subnet and x is the decimal mask, or a.b.c.d/v.x.y.z where a.b.c.d is the
|
||||
; subnet and v.x.y.z is the 4-octet mask. The match is performed on the source IP address of the
|
||||
; incoming messages. IP access lists are only supported when using the IP transport.
|
||||
ptpengine:management_acl_deny =
|
||||
|
||||
; Order in which permit and deny access lists are evaluated for timing
|
||||
; packets, the evaluation process is the same as for Apache httpd.
|
||||
; Options: permit-deny deny-permit
|
||||
ptpengine:timing_acl_order = deny-permit
|
||||
|
||||
; Order in which permit and deny access lists are evaluated for management
|
||||
; messages, the evaluation process is the same as for Apache httpd.
|
||||
; Options: permit-deny deny-permit
|
||||
ptpengine:management_acl_order = deny-permit
|
||||
|
||||
; Do not adjust the clock
|
||||
clock:no_adjust = N
|
||||
|
||||
; Do not step the clock - only slew
|
||||
clock:no_reset = N
|
||||
|
||||
; Force clock step on first sync after startup regardless of offset and clock:no_reset
|
||||
clock:step_startup_force = N
|
||||
|
||||
; Step clock on startup if offset >= 1 second, ignoring
|
||||
; panic mode and clock:no_reset
|
||||
clock:step_startup = N
|
||||
|
||||
; Attempt setting the RTC when stepping clock (Linux only - FreeBSD does
|
||||
; this for us. WARNING: this will always set the RTC to OS clock time,
|
||||
; regardless of time zones, so this assumes that RTC runs in UTC or
|
||||
; at least in the same timescale as PTP. true at least on most
|
||||
; single-boot x86 Linux systems.
|
||||
clock:set_rtc_on_step = N
|
||||
|
||||
; Observed drift handling method between servo restarts:
|
||||
; reset: set to zero (not recommended)
|
||||
; preserve: use kernel value,
|
||||
; file: load/save to drift file on startup/shutdown, use kernel
|
||||
; value inbetween. To specify drift file, use the clock:drift_file setting.
|
||||
; Options: reset preserve file
|
||||
clock:drift_handling = preserve
|
||||
|
||||
; Specify drift file
|
||||
clock:drift_file = /etc/ptpd2_kernelclock.drift
|
||||
|
||||
; Time (seconds) before and after midnight that clock updates should pe suspended for
|
||||
; during a leap second event. The total duration of the pause is twice
|
||||
; the configured duration
|
||||
clock:leap_second_pause_period = 5
|
||||
|
||||
; Time (seconds) before midnight that PTPd starts announcing the leap second
|
||||
; if it's running as master
|
||||
clock:leap_second_notice_period = 43200
|
||||
|
||||
; Specify leap second file location - up to date version can be downloaded from
|
||||
; http://www.ietf.org/timezones/data/leap-seconds.list
|
||||
clock:leap_seconds_file =
|
||||
|
||||
; Behaviour during a leap second event:
|
||||
; accept: inform the OS kernel of the event
|
||||
; ignore: do nothing - ends up with a 1-second offset which is then slewed
|
||||
; step: similar to ignore, but steps the clock immediately after the leap second event
|
||||
; smear: do not inform kernel, gradually introduce the leap second before the event
|
||||
; by modifying clock offset (see clock:leap_second_smear_period)
|
||||
; Options: accept ignore step smear
|
||||
clock:leap_second_handling = accept
|
||||
|
||||
; Time period (Seconds) over which the leap second is introduced before the event.
|
||||
; Example: when set to 86400 (24 hours), an extra 11.5 microseconds is added every second
|
||||
clock:leap_second_smear_period = 86400
|
||||
|
||||
; Maximum absolute frequency shift which can be applied to the clock servo
|
||||
; when slewing the clock. Expressed in parts per million (1 ppm = shift of
|
||||
; 1 us per second. Values above 512 will use the tick duration correction
|
||||
; to allow even faster slewing. Default maximum is 512 without using tick.
|
||||
clock:max_offset_ppm = 500
|
||||
|
||||
; One-way delay filter stiffness.
|
||||
servo:delayfilter_stiffness = 6
|
||||
|
||||
; Clock servo PI controller proportional component gain (kP).
|
||||
servo:kp = 0.100000
|
||||
|
||||
; Clock servo PI controller integral component gain (kI).
|
||||
servo:ki = 0.001000
|
||||
|
||||
; How servo update interval (delta t) is calculated:
|
||||
; none: servo not corrected for update interval (dt always 1),
|
||||
; constant: constant value (target servo update rate - sync interval for PTP,
|
||||
; measured: servo measures how often it's updated and uses this interval.
|
||||
; Options: none constant measured
|
||||
servo:dt_method = constant
|
||||
|
||||
; Maximum servo update interval (delta t) when using measured servo update interval
|
||||
; (servo:dt_method = measured), specified as sync interval multiplier.
|
||||
servo:dt_max = 5.000000
|
||||
|
||||
; Enable clock synchronisation servo stability detection
|
||||
; (based on standard deviation of the observed drift value)
|
||||
; - drift will be saved to drift file / cached when considered stable,
|
||||
; also clock stability status will be logged.
|
||||
servo:stability_detection = N
|
||||
|
||||
; Specify the observed drift standard deviation threshold in parts per
|
||||
; billion (ppb) - if stanard deviation is within the threshold, servo
|
||||
; is considered stable.
|
||||
servo:stability_threshold = 10.000000
|
||||
|
||||
; Specify for how many statistics update intervals the observed drift
|
||||
; standard deviation has to stay within threshold to be considered stable.
|
||||
servo:stability_period = 1
|
||||
|
||||
; Specify after how many minutes without stabilisation servo is considered
|
||||
; unstable. Assists with logging servo stability information and
|
||||
; allows to preserve observed drift if servo cannot stabilise.
|
||||
;
|
||||
servo:stability_timeout = 10
|
||||
|
||||
; Do accept master to slave delay (delayMS - from Sync message) or slave to master delay
|
||||
; (delaySM - from Delay messages) if greater than this value (nanoseconds). 0 = not used.
|
||||
servo:max_delay = 0
|
||||
|
||||
; Maximum number of consecutive delay measurements exceeding maxDelay threshold,
|
||||
; before slave is reset.
|
||||
servo:max_delay_max_rejected = 0
|
||||
|
||||
; If servo:max_delay is set, perform the check only if clock servo has stabilised.
|
||||
;
|
||||
servo:max_delay_stable_only = N
|
||||
|
||||
; When enabled, Sync messages will only be accepted if sequence ID is increasing. This is limited to 50 dropped messages.
|
||||
;
|
||||
ptpengine:sync_sequence_checking = N
|
||||
|
||||
; If set to non-zero, timeout in seconds, after which the slave resets if no clock updates made.
|
||||
;
|
||||
ptpengine:clock_update_timeout = 0
|
||||
|
||||
; Do not reset the clock if offset from master is greater
|
||||
; than this value (nanoseconds). 0 = not used.
|
||||
servo:max_offset = 0
|
||||
|
||||
; Enable SNMP agent (if compiled with PTPD_SNMP).
|
||||
global:enable_snmp = N
|
||||
|
||||
; Send log messages to syslog. Disabling this
|
||||
; sends all messages to stdout (or speficied log file).
|
||||
global:use_syslog = N
|
||||
|
||||
; Lock file location
|
||||
global:lock_file =
|
||||
|
||||
; Use mode specific and interface specific lock file
|
||||
; (overrides global:lock_file).
|
||||
global:auto_lockfile = N
|
||||
|
||||
; Lock file directory: used with automatic mode-specific lock files,
|
||||
; also used when no lock file is specified. When lock file
|
||||
; is specified, it's expected to be an absolute path.
|
||||
global:lock_directory = /var/run
|
||||
|
||||
; Skip lock file checking and locking.
|
||||
global:ignore_lock = N
|
||||
|
||||
; File used to record data about sync packets. Enables recording when set.
|
||||
global:quality_file =
|
||||
|
||||
; Maximum sync packet record file size (in kB) - file will be truncated
|
||||
; if size exceeds the limit. 0 - no limit.
|
||||
global:quality_file_max_size = 0
|
||||
|
||||
; Enable log rotation of the sync packet record file up to n files.
|
||||
; 0 - do not rotate.
|
||||
;
|
||||
global:quality_file_max_files = 0
|
||||
|
||||
; Truncate the sync packet record file every time it is (re) opened:
|
||||
; startup and SIGHUP.
|
||||
global:quality_file_truncate = N
|
||||
|
||||
; File used to log ptpd2 status information.
|
||||
global:status_file = /var/run/ptpd2.status
|
||||
|
||||
; Enable / disable writing status information to file.
|
||||
global:log_status = N
|
||||
|
||||
; Status file update interval in seconds.
|
||||
global:status_update_interval = 1
|
||||
|
||||
; Specify log file path (event log). Setting this enables logging to file.
|
||||
global:log_file = /var/log/ptpd2.log
|
||||
|
||||
; Maximum log file size (in kB) - log file will be truncated if size exceeds
|
||||
; the limit. 0 - no limit.
|
||||
global:log_file_max_size = 0
|
||||
|
||||
; Enable log rotation of the sync packet record file up to n files.
|
||||
; 0 - do not rotate.
|
||||
;
|
||||
global:log_file_max_files = 0
|
||||
|
||||
; Truncate the log file every time it is (re) opened: startup and SIGHUP.
|
||||
global:log_file_truncate = N
|
||||
|
||||
; Specify log level (only messages at this priority or higer will be logged).
|
||||
; The minimal level is LOG_ERR. LOG_ALL enables debug output if compiled with
|
||||
; RUNTIME_DEBUG.
|
||||
; Options: LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_ALL
|
||||
global:log_level = LOG_ALL
|
||||
|
||||
; Specify statistics log file path. Setting this enables logging of
|
||||
; statistics, but can be overriden with global:log_statistics.
|
||||
global:statistics_file = /var/log/ptpd2.stats
|
||||
|
||||
; Log timing statistics every n seconds for Sync and Delay messages
|
||||
; (0 - log all).
|
||||
global:statistics_log_interval = 0
|
||||
|
||||
; Maximum statistics log file size (in kB) - log file will be truncated
|
||||
; if size exceeds the limit. 0 - no limit.
|
||||
global:statistics_file_max_size = 0
|
||||
|
||||
; Enable log rotation of the statistics file up to n files. 0 - do not rotate.
|
||||
global:statistics_file_max_files = 0
|
||||
|
||||
; Truncate the statistics file every time it is (re) opened: startup and SIGHUP.
|
||||
global:statistics_file_truncate = N
|
||||
|
||||
; Dump the contents of every PTP packet
|
||||
global:dump_packets = N
|
||||
|
||||
; Run in foreground with statistics and all messages logged to stdout.
|
||||
; Overrides log file and statistics file settings and disables syslog.
|
||||
;
|
||||
global:verbose_foreground = N
|
||||
|
||||
; Run in foreground - ignored when global:verbose_foreground is set
|
||||
global:foreground = N
|
||||
|
||||
; Log timing statistics for every PTP packet received
|
||||
;
|
||||
global:log_statistics = Y
|
||||
|
||||
; Timestamp format used when logging timing statistics
|
||||
; (when global:log_statistics is enabled):
|
||||
; datetime - formatttted date and time: YYYY-MM-DD hh:mm:ss.uuuuuu
|
||||
; unix - Unix timestamp with nanoseconds: s.ns
|
||||
; both - Formatted date and time, followed by unix timestamp
|
||||
; (adds one extra field to the log)
|
||||
;
|
||||
; Options: datetime unix both
|
||||
global:statistics_timestamp_format = datetime
|
||||
|
||||
; Bind ptpd2 process to a selected CPU core number.
|
||||
; 0 = first CPU core, etc. -1 = do not bind to a single core.
|
||||
global:cpuaffinity_cpucore = -1
|
||||
|
||||
; Clock synchronisation statistics update interval in seconds
|
||||
;
|
||||
global:statistics_update_interval = 30
|
||||
|
||||
; Log a status update every time statistics are updated (global:statistics_update_interval).
|
||||
; The updates are logged even when ptpd is configured without statistics support
|
||||
global:periodic_updates = N
|
||||
|
||||
; Delay (seconds) before releasing a time service (NTP or PTP) and electing a new one to control a clock. 0 = elect immediately
|
||||
;
|
||||
global:timingdomain_election_delay = 15
|
||||
|
||||
; Enable NTPd integration
|
||||
ntpengine:enabled = N
|
||||
|
||||
; Enable control over local NTPd daemon
|
||||
ntpengine:control_enabled = N
|
||||
|
||||
; NTP control check interval in seconds
|
||||
;
|
||||
ntpengine:check_interval = 15
|
||||
|
||||
; NTP key number - must be configured as a trusted control key in ntp.conf,
|
||||
; and be non-zero for the ntpengine:control_enabled setting to take effect.
|
||||
;
|
||||
ntpengine:key_id = 0
|
||||
|
||||
; NTP key (plain text, max. 20 characters) - must match the key configured in
|
||||
; ntpd's keys file, and must be non-zero for the ntpengine:control_enabled
|
||||
; setting to take effect.
|
||||
;
|
||||
ntpengine:key =
|
||||
|
||||
; ========= newline required in the end ==========
|
||||
|
||||
33
CarPC/etc/rc.local
Normal file
33
CarPC/etc/rc.local
Normal file
@ -0,0 +1,33 @@
|
||||
#!/bin/sh -e
|
||||
#
|
||||
# rc.local
|
||||
#
|
||||
# This script is executed at the end of each multiuser runlevel.
|
||||
# Make sure that the script will "exit 0" on success or any other
|
||||
# value on error.
|
||||
#
|
||||
# In order to enable or disable this script just change the execution
|
||||
# bits.
|
||||
#
|
||||
# By default this script does nothing.
|
||||
|
||||
# CAN
|
||||
ifconfig can0 down
|
||||
ip link set can0 type can bitrate 500000
|
||||
ifconfig can0 txqueuelen 1000
|
||||
ifconfig can0 up
|
||||
|
||||
# Cnomicon+CVehicle
|
||||
/usr/local/cnomicon/sbin/cnomicon-setup
|
||||
/usr/local/cvehicle/sbin/cvehicle-setup
|
||||
|
||||
# BSMP standalone (without MABX2)
|
||||
ping -c 1 -W 1 mabx2 &> /dev/null
|
||||
if [ "$?" = "1" ]
|
||||
then
|
||||
echo "MABX2 not found!"
|
||||
#cd /home/neal/NTCNA/CVehicle/daemons/bsmpd
|
||||
#./gen5bsmpd.sh
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=GPS (Global Positioning System) Daemon
|
||||
Requires=gpsd.socket
|
||||
# Needed with chrony SOCK refclock
|
||||
After=chronyd.service
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
EnvironmentFile=-/etc/default/gpsd
|
||||
ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $DEVICES
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Also=gpsd.socket
|
||||
|
||||
11
CarPC/etc/systemd/system/sockets.target.wants/gpsd.socket
Normal file
11
CarPC/etc/systemd/system/sockets.target.wants/gpsd.socket
Normal file
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=GPS (Global Positioning System) Daemon Sockets
|
||||
|
||||
[Socket]
|
||||
ListenStream=/var/run/gpsd.sock
|
||||
ListenStream=[::1]:2947
|
||||
ListenStream=0.0.0.0:2947
|
||||
SocketMode=0600
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
1
CarPC/etc/x11vnc.pass
Normal file
1
CarPC/etc/x11vnc.pass
Normal file
@ -0,0 +1 @@
|
||||
J9<4A>9p<39><70>
|
||||
21
CarPC/lib/systemd/system/rc-local.service
Normal file
21
CarPC/lib/systemd/system/rc-local.service
Normal file
@ -0,0 +1,21 @@
|
||||
# This file is part of systemd.
|
||||
#
|
||||
# systemd is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
[Unit]
|
||||
Description=/etc/rc.local Compatibility
|
||||
ConditionPathExists=/etc/rc.local
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
ExecStart=/etc/rc.local start
|
||||
TimeoutSec=0
|
||||
StandardOutput=tty
|
||||
RemainAfterExit=yes
|
||||
SysVStartPriority=99
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
25
CarPC/x11vnc-setup.sh
Executable file
25
CarPC/x11vnc-setup.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
sudo apt-get install x11vnc
|
||||
sudo x11vnc -storepasswd car-ntcna /etc/x11vnc.pass
|
||||
|
||||
cat > /etc/systemd/system/x11vnc.service << EOF
|
||||
[Unit]
|
||||
Description="x11vnc"
|
||||
Requires=display-manager.service
|
||||
After=display-manager.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
|
||||
ExecStop=/usr/bin/killall x11vnc
|
||||
Restart=on-failure
|
||||
Restart-sec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable x11vnc
|
||||
sudo systemctl start x11vnc
|
||||
|
||||
Reference in New Issue
Block a user