使用DS3231时钟模块


sudo apt-get update

sudo apt-get install i2c-tools python-smbus

sudo raspi-config

a. 打开 pi 配置工具 raspi-config,

b.选择 Interfacing Options 

c.选择启用 I2C

 sudo i2cdetect -y 1

echo "ds3231 0x68" | sudo tee  /sys/class/i2c-adapter/i2c-1/new_device

sudo modprobe i2c-dev

sudo hwclock -r    #读取硬件时间
sudo hwclock -s    #将硬件时间同步到系统
sudo hwclock -w    #系统时间写入硬件

编辑/boot/config.txt   在末尾加入  
dtparam=i2c_arm=on
dtoverlay=i2c-rtc,ds3231

新内核用systemd来作为标准的系统和服务管理器,替代之前系统启动时使用的SysV init脚本。
创建两个文件
/lib/systemd/system/hwclock-start.service

[pre lang="sh" line="1" file="hwclock-start.service"][Unit]
Description=Set time from RTC on startup
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/hwclock -s
TimeoutSec=0

[Install]
WantedBy=multi-user.target

/lib/systemd/system/hwclock-stop.service
[pre lang="" line="1" file="hwclock-stop.service"][Unit]
Description=Synchronise Hardware Clock to System Clock
DefaultDependencies=no
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/sbin/hwclock --systohc

[Install]
WantedBy=reboot.target halt.target poweroff.target

运行命令
systemctl enable hwclock-start hwclock-stop

最后要删除 fake-hwclock 这个假硬件时钟才能使ds3231工作
sudo dpkg --purge fake-hwclock