Ngày giờ từ RTC không đúng

RPi đang chạy bình thường, chạy với RTC DS3231

Một ngày, lệnh hwclock -r cho ngày giờ là

Sat 01 Jan 2000 07:41:45 +07 -0.427417 seconds

1. Có thể đây là lỗi của ntp.

Các câu lệnh sau đây giúp giải quyết vấn đề

sudo service ntp stop
sudo ntpd -gq
sudo service ntp start

2. Tuy nhiên có thể đây là lỗi cài đặt kiểu Wheezy cho Jessie, khi đó không thể khởi tạo service rtc-i2c

  • Trước hết thêm vào /boot/config.txt
dtoverlay=i2c-rtc,ds3231

hoặc dùng lệnh

grep -qF "dtoverlay=i2c-rtc,ds3231" "/boot/config.txt" || echo "dtoverlay=i2c-rtc,ds3231" | sudo tee -a "/boot/config.txt"
  • Tiếp theo, mở file /lib/udev/hwclock-set, và đặt dấu # trước các dòng sau
if [ -e /run/systemd/system ] ; then
    exit 0
fi

hoặc dùng lệnh

sudo sed '/^if \[ -e \/run\/systemd\/system \]/, +2 s|^|#|' -i /lib/udev/hwclock-set
  • Sau đó gõ các lệnh
date

Nếu ngày giờ đúng thì gõ tiếp

sudo hwclock -w
sudo hwclock -s
  • Xong rồi. Bây giờ gỡ các cài đặt kiểu Wheezy rồi khởi động lại
if [ -e /lib/systemd/system/rtc-i2c.service ]; then
  sudo systemctl disable rtc-i2c.service
  sudo rm -f /lib/systemd/system/rtc-i2c.service
  sudo rm -R /etc/conf.d
  sudo rm -f /etc/udev/rules.d/rtc-i2c.rules
  sudo rm -f /etc/modules-load.d/rtc-i2c.conf
fi

 

Leave a Comment

Filed under Software

Leave a Reply