Add i2c clock
This commit is contained in:
parent
e6060ff9bc
commit
607a9374db
1
roles/i2c-clock/files/etc/modules-load.d/rtc-ds1307.conf
Normal file
1
roles/i2c-clock/files/etc/modules-load.d/rtc-ds1307.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
rtc-ds1307
|
20
roles/i2c-clock/files/etc/systemd/system/rtc-i2c.service
Normal file
20
roles/i2c-clock/files/etc/systemd/system/rtc-i2c.service
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[Unit]
|
||||||
|
ConditionCapability=CAP_SYS_TIME
|
||||||
|
ConditionVirtualization=!container
|
||||||
|
DefaultDependencies=no
|
||||||
|
Wants=dev-rtc_i2c.device
|
||||||
|
After=dev-rtc_i2c.device
|
||||||
|
Before=systemd-timesyncd.service ntpd.service chrony.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
CapabilityBoundingSet=CAP_SYS_TIME
|
||||||
|
PrivateTmp=yes
|
||||||
|
ProtectSystem=full
|
||||||
|
ProtectHome=yes
|
||||||
|
DeviceAllow=/dev/rtc_i2c rw
|
||||||
|
DevicePolicy=closed
|
||||||
|
ExecStart=/usr/bin/echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device && /sbin/hwclock --s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=time-sync.target
|
6
roles/i2c-clock/files/etc/udev/rules.d/55-rtc-i2c.rules
Normal file
6
roles/i2c-clock/files/etc/udev/rules.d/55-rtc-i2c.rules
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#/lib/udev/rules.d/50-udev-default.rules:SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc"
|
||||||
|
#/lib/udev/rules.d/50-udev-default.rules:SUBSYSTEM=="rtc", KERNEL=="rtc0", SYMLINK+="rtc", OPTIONS+="link_priority=-100"
|
||||||
|
|
||||||
|
# I2C RTC, when added and not the source of the sys clock (kernel), is used ;
|
||||||
|
# separate name to ensure rtc-i2c.service will not be run on anything else
|
||||||
|
ACTION=="add", SUBSYSTEMS=="i2c", SUBSYSTEM=="rtc", KERNEL=="rtc0", ATTR{hctosys}=="0", SYMLINK+="rtc_i2c", TAG+="systemd"
|
25
roles/i2c-clock/tasks/install.yml
Normal file
25
roles/i2c-clock/tasks/install.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
- become: yes
|
||||||
|
block:
|
||||||
|
- name: install i2c-tools
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
pkg:
|
||||||
|
- i2c-tools
|
||||||
|
|
||||||
|
- name: enable automatic module load
|
||||||
|
copy:
|
||||||
|
src: etc/modules-load.d/rtc-ds1307.conf
|
||||||
|
dest: /etc/modules-load.d/rtc-ds1307.conf
|
||||||
|
|
||||||
|
- name: add systemd service
|
||||||
|
copy:
|
||||||
|
src: etc/systemd/system/rtc-i2c.service
|
||||||
|
dest: /etc/systemd/system/rtc-i2c.service
|
||||||
|
|
||||||
|
- name: enable systemd service
|
||||||
|
systemd:
|
||||||
|
name: rtc-i2c.service
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
6
roles/i2c-clock/tasks/main.yml
Normal file
6
roles/i2c-clock/tasks/main.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: install.yml
|
||||||
|
|
||||||
|
- import_tasks: set-time.yml
|
||||||
|
|
||||||
|
- import_tasks: remove-fake-clock.yml
|
8
roles/i2c-clock/tasks/remove-fake-clock.yml
Normal file
8
roles/i2c-clock/tasks/remove-fake-clock.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- name: uninstall fakehw
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
state: absent
|
||||||
|
pkg:
|
||||||
|
- fake-hwclock
|
16
roles/i2c-clock/tasks/set-time.yml
Normal file
16
roles/i2c-clock/tasks/set-time.yml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
- become: yes
|
||||||
|
block:
|
||||||
|
- name: load hwclock
|
||||||
|
shell:
|
||||||
|
cmd: |
|
||||||
|
modprobe rtc-ds1307
|
||||||
|
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
|
||||||
|
- name: update time
|
||||||
|
shell:
|
||||||
|
cmd: |
|
||||||
|
hwclock -w
|
||||||
|
- name: read time
|
||||||
|
shell:
|
||||||
|
cmd: |
|
||||||
|
hwclock -r
|
Loading…
Reference in New Issue
Block a user