This is an old revision of the document!
Table of Contents
How to PCF8563 RTC Module on the Odroid C2
Preparations
- ODROID-C2
- uSD-Card ⇒ over 8GB or eMMC Module
- PCF8563 RTC Module
- Linux Kernel 3.14.65-66 or higher.how-to-update-kernel
Configuration
Ubuntu
- With your ODROID-C2 insert a PCF8563 RTC Module as the following picture.
- Enable RTC Shield driver in Device Tree file and add the I2C driver
odroid@odroid:~$ sudo apt install device-tree-compiler odroid@odroid:~$ sudo fdtput -t s /media/boot/meson64_odroidc2.dtb /i2c@c1108500/pcf8563@51 status "okay" odroid@odroid:~$ echo "aml_i2c"|sudo tee -a /etc/modules odroid@odroid:~$ reboot
- Now you have the RTC on ODROID-C2 running with the current date and time the next step is to make it load when the ODROID-C2 boots.
- Check the I2C module status after reboot:
odroid@odroid:~$ cat /etc/modules aml_i2c odroid@odroid:~$
Add aml_i2c at the end of the file.
- Next you want to add the RTC on ODROID-C2 at boot by editing /etc/rc.local.
odroid@odroid:~$ sudo nano /etc/rc.local if [ -f /aafirstboot ]; then /aafirstboot start ; fi hwclock -s exit 0 ^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos ^X Exit ^R Read File ^\ Replace ^U Uncut Text^T To Linter ^_ Go To Line odroid@odroid:~$
Add the following at the bottom of the page above exit 0. ^x exit and save the file. Reboot your ODROID-C2.
odroid@odroid:~$ sudo reboot
If everything worked correctly the RTC on ODROID-C2 should be initialised on boot and the current date and time will be loaded into Linux. You need to check the existence of “rtc-pcf8563” in the output of “lsmod” command when the HW RTC doesn't work correctly.
- You can check the current time on the RTC on ODROID-C2 with:
odroid@odroid:~$ sudo hwclock -r
If this is the first time you have run the RTC on ODROID-C2 it will display a date of APR 20th 2016.
- If the ODROID-C2 is connected to the internet the correct date and time should be set automatically otherwise you can set the current date and time using:
odroid@odroid:~$ sudo date -s "20 APR 2016 18:00:00"
You can check the current linux date with the command (date).
- To save the date into the RTC chip on ODROID-C2 use the following command:
odroid@odroid:~$ sudo hwclock -w
Verify the date has been saved onto the RTC on ODROID-C2 with:
odroid@odroid:~$ sudo hwclock -r
Android
This guide works on Android 5.1 V2.8 and V2.9 images only.
Open File Manager app.
Edit /storage/internal/boot.ini like this. (near end of file).
Before edit.
movi read dtb 0 ${dtbaddr} # load kernel from vat or boot partition. movi read boot 0 ${loadaddr} #fatload mmc 0:1 ${loadaddr} Image booti ${loadaddr} - ${dtbaddr}
After edit.
movi read dtb 0 ${dtbaddr} # load kernel from vat or boot partition. #movi read boot 0 ${loadaddr} fatload mmc 0:1 ${loadaddr} Image booti ${loadaddr} - ${dtbaddr}
Load kernel image from vfat partition built rtc module.
If you could not find 'fatload' command, remove /storage/internal/boot.ini file and reboot system.
Don't use NTP service
Update
If your network firewall is blocking the ntp service or no internet connection, you must stop the ntp service. Once the NTP failed, the RTC value could be reset !!!
Credit:
This instruction was made by phaseshifter (our forum member).
Original Post
To stop ntpd:
sudo /etc/init.d/ntp stop
or
sudo service ntp stop
To prevent it from starting at boot:
sudo update-rc.d -f ntp remove