Jump to content

Makda Mujji

Members
  • Posts

    3
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Makda Mujji got a reaction from Gunjan Gupta in NAS kit w/ NEO LTS: RTC not surviving reboots   
    Allwinner H3 CPU has an in-built RTC which is mounted at /dev/rtc0. This is the reason the RTC doesn't save current time when CPU powers off. The RTC present on the NAS kit (DS1307) needs to be accessed using i2c interface which itself needs to be enabled before doing anything else, and all time sync done with DS1307.
     
    Enable i2c (i2c-tools is present in Armbian bullseye by default) by editing /boot/armbianEnv.txt file:
    sudo nano /etc/armbianEnv.txt in the line
    overlays=... where "..." means there are already some overlays mentioned, append " i2c" (notice a space before i2c) so that the line should look like
    overlays=... i2c Save and close. Next, make sure DS1307 module is present in your kernel (it is present in Armbian bullseye by default)
    sudo modinfo rtc-ds1307 If you see some description and a signature, it is present. Load the module on system start up by adding line to /etc/modules:
    sudo echo rtc-ds1307 >> /etc/modules  Run the following command:
    sudo i2cdetect -y 0 If you see something like this:
    0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- then you can see rtc1 in /dev:
    sudo ls -al /dev/ | grep rtc You need to initialize rtc1 (one time):
    sudo hwclock --rtc /dev/rtc1 --systohc Create a new file called rtc_ds1307 and add following text (copied from here) by following command:
    sudo cat <<EOF > rtc && sudo mv rtc /etc/init.d/rtc_ds1307 && sudo chmod +x /etc/init.d/rtc_1307 #! /bin/sh ### BEGIN INIT INFO # Provides: rtc_ds1307 # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: DS1307 real-time clock usage script # Description: This file should be used to construct scripts to be # placed in /etc/init.d. ### END INIT INFO # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="ds1307_rtc maintenance service" do_start() { echo "Selecting correct RTC instance" echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device sudo ln -f -s /dev/rtc1 /dev/rtc echo "Syncing system time to RTC" #You need to sync from rtc1 instead of default (rtc0) sudo hwclock -s -f /dev/rtc1 } do_stop() { echo "Syncing RTC to system time" sudo hwclock -w } case "\$1" in start) do_start ;; stop) do_stop ;; status) echo "RTC time:" hwclock -r echo "System time:" date ;; restart|force-reload) do_stop ;; *) echo "Usage: rtc_ds1307 {start|stop|status|restart}" >&2 exit 3 ;; esac EOF Update rc.d then reboot:
    sudo update-rc.d rtc_ds1307 defaults sudo reboot now Check your system time by following command:
    timedatectl  
  2. Like
    Makda Mujji got a reaction from Gunjan Gupta in NAS kit w/ NEO LTS: RTC not surviving reboots   
    Few changes to above answer:
    Edit armbianEnv.txt by
    sudo nano /boot/armbianEnv.txt And append i2c0 instead of i2c
    overlays=... i2c0 install i2c-tools
    sudo apt install i2c-tools If your "sudo i2cdetect -y 0" returns 68, run the following commands first:
    Load rtc-ds1307 by
    sudo modprobe rtc-ds1307 sudo echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device  
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines