On Thu, Jul 6, 2017 at 10:54 AM, Chris Murphy <lists(a)colorremedies.com> wrote:
I have installed shell.efi and it reports something rather weird,
whether I boot Windows or Fedora, and the clock is definitely either
local time or UTC:
Fedora has set the clock (UTC time was in fact 16:00 at the time this
command was issued):
Shell> time
16:00:38 (GMT-34:07)
Windows has set the clock (local time was in fact 10:10 at the time
this command was issued):
Shell> time
10:10:20 (GMT-34:07)
In case someone curious steps into the steaming pile I've injected...
34h07m = 2407m = 0x07FF
And in the UEFI spec:
#define EFI_UNSPECIFIED_TIMEZONE 0x07FF
INT16 TimeZone; // -1440 to 1440 or 2047
If the value is EFI_UNSPECIFIED_TIMEZONE, then the time is interpreted
as a local time.
OK so both Windows and Linux are setting the TimeZone value to local
time, but only Windows is actually using local time. But neither one
is actually setting the timezone offset. So there is in fact no
information to use here.
And then I found this mess from 5 years ago, and then I got lost
possibly due to all the
gmane.org issues.
http://linux-efi.vger.kernel.narkive.com/gY1o6abi/patch-2-3-rtc-efi-add-t...
The status back then soundss like some hardware came with buggy
firmware, so the EFI GetTime () was unreliable. No surprise there. But
nevertheless on new hardware and Windows 10, this TimeZone variable is
rendered useless near as I can tell. So we're stuck. And funny enough
macOS does what we do, sets TimeZone to local time, but then sets the
time to UTC. Perfect! Everyone's got exactly what they had before
UEFI.
--
Chris Murphy