Raspberry Pi 4에 Debian/Raspbian Buster Linux를 설치하고 isl1208 RTC를 연결했습니다. 내 생각에는 RTC 자체가 작동한다고 생각합니다. 커널 모듈이 비활성화되면 Python 스크립트를 사용하여 직접 읽을 수 있습니다.
systemd timedatectl
이 명령은 RTC 시계를 표시하고
/sys/bus/i2c/devices/i2c-1/1-006f/rtc/rtc0/time
표시 시간.
하지만hwclock -r
작동하지 않습니다:
$ sudo hwclock -r
hwclock: select() to /dev/rtc0 to wait for clock tick timed out
hwclock
시스템 시간은 시작 시 RTC를 사용하여 설정해야 합니다.
hwclock -r
왜 작동하지 않는지 아시나요 ? 아니면 부팅 중에 RTC에서 시스템 시간을 설정하는 다른 방법이 있어야 합니까?
편집 1:
systemd-timedated는 /dev/rtc에서만 읽기 작업을 수행하므로 systemd는 RTC를 읽을 수 있는 것으로 보입니다. 이는 잘 작동합니다.
hwclock -r은 프로세스가 인터럽트를 기다리지만 인터럽트가 발생하지 않는 /dev/rtc에서 시간을 읽기 전에 먼저 sync_to_clock_tick_rtc를 수행합니다.
그렇다면 RTC i2c IC와 RasPi 사이에 i2c 연결만 있는 isl1208 및 RasPi에서 업데이트 중단이 작동해야 하는지 궁금합니다.
답변1
해결책은 동기화 프로세스를 수행하지 않는 busybox에서 hwclock을 사용하는 것입니다.
답변2
시도해 보셨나요:
sudo i2cdetect -y 1
텍스트 벽이 나타나는 것을 볼 수 있습니다. 68 대신 UU가 나타나면 RTC 회로용 커널 드라이버를 성공적으로 로드한 것입니다.
RTC가 정확하다면 다음을 놓쳤을 수도 있습니다.
sudo hwclock -w
이 명령은 Raspberry Pi의 시간을 RTC 모듈에 기록합니다.
자세한 단계: https://pimylifeup.com/raspberry-pi-rtc/ 또는 https://www.instructables.com/id/Set-up-Real-Time-Clock-RTC-on-Raspberry-Pi/