summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rules/50-udev-default.rules3
-rw-r--r--src/shared/hwclock.c17
2 files changed, 8 insertions, 12 deletions
diff --git a/rules/50-udev-default.rules b/rules/50-udev-default.rules
index 179065211a..234dc3b915 100644
--- a/rules/50-udev-default.rules
+++ b/rules/50-udev-default.rules
@@ -1,6 +1,5 @@
# do not edit this file, it will be overwritten on update
-SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"
SUBSYSTEM=="virtio-ports", KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb"
@@ -15,8 +14,6 @@ SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620"
SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty"
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
-SUBSYSTEM=="rtc", ATTR{hctosys}=="1", MODE="0644"
-
SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
SUBSYSTEM=="input", KERNEL=="mouse*|mice|event*", MODE="0640"
diff --git a/src/shared/hwclock.c b/src/shared/hwclock.c
index a3b33ed4cc..837f51f947 100644
--- a/src/shared/hwclock.c
+++ b/src/shared/hwclock.c
@@ -47,15 +47,14 @@ static int rtc_open(int flags) {
int fd;
DIR *d;
- /* First, we try to make use of the /dev/rtc symlink. If that
- * doesn't exist, we open the first RTC which has hctosys=1
- * set. If we don't find any we just take the first RTC that
- * exists at all. */
-
- fd = open("/dev/rtc", flags);
- if (fd >= 0)
- return fd;
-
+ /*
+ * Some "chaotic platforms" have multiple RTCs and we need to
+ * find the "system RTC", which is in some setups /dev/rtc1.
+ *
+ * First, we try to find the RTC which has hctosys=1 set. If we
+ * don't find any we just take the first RTC that exists at all,
+ * then try to open /dev/rtc0.
+ */
d = opendir("/sys/class/rtc");
if (!d)
goto fallback;