概要
ラズパイで使ったことのある、RTCモジュール DS3231 を、ASUS TinkerBoardで使ってみる。
環境
-
TinkerOS debian 2.0.1 beta
linaro@linaro-alip:~$ uname -a Linux linaro-alip 4.4.71+ #1 SMP Thu Aug 17 00:28:01 CST 2017 armv7l GNU/Linux
DS3231 module (I2C)
tl;dr
-
Kernel setting & Sync RTC
# Switch to 'root' sudo -s # Get files wget https://raw.githubusercontent.com/mt08xx/files/master/TinkerBoard/kernel_module/lib/modules/4.4.71/kernel/drivers/rtc/rk3288-miniarm.dtb wget https://raw.githubusercontent.com/mt08xx/files/master/TinkerBoard/kernel_module/lib/modules/4.4.71/kernel/drivers/rtc/rtc-ds1307.ko # rk3288-miniarm.dtb : backup & copy [ ! -e /boot/rk3288-miniarm.dtb.org ] && mv -v /boot/rk3288-miniarm.dtb /boot/rk3288-miniarm.dtb.org mv -v ./rk3288-miniarm.dtb /boot/rk3288-miniarm.dtb # rtc-ds1307.ko mkdir -p /lib/modules/4.4.71+/kernel/drivers/rtc/ mv -v ./rtc-ds1307.ko /lib/modules/4.4.71+/kernel/drivers/rtc/ # depmod -a # Reboot sync && sleep 5 && reboot # After reboot, you can see /dev/rtc1 .
=>
/dev/rtc1
が現れる -
ファイルを4つ編集 / Edit 4 files.
-
rtc0
=>rtc1
/etc/default/hwclock... ... HCTOSYS_DEVICE=rtc1
/lib/udev/rules.d/85-hwclock.rulesKERNEL=="rtc1", RUN+="/lib/udev/hwclock-set $root/$name"
/lib/udev/rules.d/50-udev-default.rulesSUBSYSTEM=="rtc", KERNEL=="rtc1", SYMLINK+="rtc", OPTIONS+="link_priority=-100"
-
Comment out
/lib/udev/hwclock-set#if [ -e /run/systemd/system ] ; then # exit 0 #fi
-
-
RTCモジュールの時刻同期 / Sync time for RTC module
# Switch to 'root' sudo -s # Check Current RTC time. hwclock --rtc=/dev/rtc1 --get # Stop ntp service systemctl stop ntp # ntpdate -v time.nist.gov # Update RTC time : --systohc hwclock --rtc=/dev/rtc1 -w # Check Current RTC time again. hwclock --rtc=/dev/rtc1 --get # # Reboot reboot
ビルド / build
- Prepare Build Environment ( cross / self ...they may need to be updated...)
git clone --depth 1 -b linux4.4-rk3288 https://github.com/TinkerBoard/debian_kernel.git
-
drivers/rtc/rtc-ds1307.ko
drivers/rtc/rtc-ds1307.komake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- miniarm-rk3288_defconfig echo "CONFIG_RTC_DRV_DS1307=m" >> .config make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
-
arch/arm/boot/dts/rk3288-miniarm.dtb
arch/arm/boot/dts/rk3288-miniarm.dtsdiff --git a/arch/arm/boot/dts/rk3288-miniarm.dts b/arch/arm/boot/dts/rk3288-miniarm.dts index cf11a15..85e80c4 100755 --- a/arch/arm/boot/dts/rk3288-miniarm.dts +++ b/arch/arm/boot/dts/rk3288-miniarm.dts @@ -589,6 +589,10 @@ reg = <0x4c>; status = "disabled"; }; + rtc: ds1307@68 { + compatible = "dallas,ds1307"; + reg = <0x68>; + }; }; &i2c3 {
arch/arm/boot/dts/rk3288-miniarm.dtbmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs