diff options
-rw-r--r-- | rules/50-udev-default.rules | 3 | ||||
-rw-r--r-- | src/shared/hwclock.c | 17 |
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; |