commit | 8af2a8940992c00417cf6629997c528f2500efbf | [log] [tgz] |
---|---|---|
author | Ratan Gupta <ratagupt@in.ibm.com> | Tue Feb 02 05:48:18 2021 -0600 |
committer | Ratan Gupta <ratagupt@linux.vnet.ibm.com> | Thu Mar 04 20:38:01 2021 +0530 |
tree | 40445c96374b8ff9bc0d0f5be6f17f16eb63f1cf | |
parent | 1e1dc447321adf858d8f4c685764a2b01e8754bb [diff] |
Enable Meson Build system for phoshphor-time-manager - This commit enables the meson build system for the phoshphor-time-manager repo. Tested By: - Code compiles both in arm & x86 sdks without errors or warnings. - All the unit test cases are getting passed. Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com> Change-Id: I311bf33f34c6c71860e9c845b6ca3c591af8fa6a
phosphor-time-manager
is the time manager service that implements D-Bus interface xyz/openbmc_project/Time/EpochTime.interface.yaml
. The user can get or set the BMC's time via this interface.
The service xyz.openbmc_project.Time.Manager
provides an object on D-Bus:
where each object implements interface xyz.openbmc_project.Time.EpochTime
.
The user can directly get or set the property Elapsed
of the objects to get or set the time. For example on an authenticated session:
### With busctl on BMC busctl get-property xyz.openbmc_project.Time.Manager \ /xyz/openbmc_project/time/bmc xyz.openbmc_project.Time.EpochTime Elapsed ### With REST API on remote host curl -b cjar -k https://${BMC_IP}/xyz/openbmc_project/time/bmc
### With busctl on BMC busctl set-property xyz.openbmc_project.Time.Manager \ /xyz/openbmc_project/time/bmc xyz.openbmc_project.Time.EpochTime \ Elapsed t <value-in-microseconds> ### With REST API on remote host curl -b cjar -k -H "Content-Type: application/json" -X PUT \ -d '{"data": 1487304700000000}' \ https://${BMC_IP}/xyz/openbmc_project/time/bmc/attr/Elapsed
Getting BMC time is always allowed, but setting the time may not be allowed depending on the below two settings in the settings manager.
A summary of which cases the time can be set on BMC or HOST:
Mode | Set BMC Time |
---|---|
NTP | Fail to set |
MANUAL | OK |
To set an NTP server:
### With busctl on BMC busctl set-property xyz.openbmc_project.Network \ /xyz/openbmc_project/network/eth0 \ xyz.openbmc_project.Network.EthernetInterface NTPServers \ as 1 "<ntp_server>" ### With REST API on remote host curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d \ '{"data": ["<ntp_server>"] }' \ https://${BMC_IP}/xyz/openbmc_project/network/eth0/attr/NTPServers
To go into NTP mode
### With busctl on BMC busctl set-property xyz.openbmc_project.Settings \ /xyz/openbmc_project/time/sync_method xyz.openbmc_project.Time.Synchronization \ TimeSyncMethod s "xyz.openbmc_project.Time.Synchronization.Method.NTP" ### With REST API on remote host curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d \ '{"data": "xyz.openbmc_project.Time.Synchronization.Method.NTP" }' \ https://${BMC_IP}/xyz/openbmc_project/time/sync_method/attr/TimeSyncMethod
Starting from OpenBMC 2.6 (with systemd v239), systemd's timedated introduces a new beahvior that it checks the NTP services' status during setting time, instead of checking the NTP setting:
In OpenBMC 2.4 (with systemd v236), the above will always succeed.
This results in openbmc/openbmc#3459, and the related test cases are updated to cooperate with this behavior change.