--- rc.sysinit.orig 2010-02-24 06:51:59.289339280 +1300 +++ rc.sysinit 2010-02-24 17:57:53.688339040 +1300 @@ -47,10 +47,19 @@ if [ -n "$HWCLOCK_PARAMS" ]; then # enable rtc access /sbin/modprobe rtc-cmos >/dev/null 2>&1 - RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null) - RTC_MAJOR="${RTC_MAJOR%% *}" - if [ -n "$RTC_MAJOR" ]; then - /bin/mknod /dev/rtc0 c $RTC_MAJOR 0 + /sbin/modprobe rtc >/dev/null 2>&1 + /sbin/modprobe genrtc >/dev/null 2>&1 + + if [ -f /sys/class/rtc/dev ];then + RTC_MINOR=$(cat /sys/class/rtc/rtc0/dev | gawk -F: '{print $1}') + RTC_MAJOR=$(cat /sys/class/rtc/rtc0/dev | gawk -F: '{print $2}') + elif [ -f /sys/class/misc/rtc/dev ];then + RTC_MINOR=$(cat /sys/class/misc/rtc/dev | gawk -F: '{print $1}') + RTC_MAJOR=$(cat /sys/class/misc/rtc/dev | gawk -F: '{print $2}') + fi + + if [[ -n "$RTC_MAJOR" && -n "$RTC_MINOR" ]];then + /bin/mknod /dev/rtc0 c $RTC_MAJOR $RTC_MINOR /bin/ln -s /dev/rtc0 /dev/rtc fi