현재 저는 GPIO 세트를 실시간으로 모니터링하는 RPi 애플리케이션을 개발 중입니다. 여기서 GPIO가 높아지는 정확한 시간은 내 애플리케이션에 매우 중요합니다.
Arch Linux 운영 체제는 RPi의 시간을 어떻게 처리하며 UDP NTP 시간 서버와 동기화합니까? 그렇다면 다른 Linux 설치와 마찬가지로 백그라운드 스레드/데몬에서 지속적으로 업데이트됩니까? 아니면 get time이 호출될 때마다 업데이트됩니까?
두 개 이상의 GPIO에서 두 개의 이벤트가 동시에 발생할 수 있으므로 실시간 기능을 얻으려면 가장 빠른 솔루션을 구현해야 합니다.
특정 이벤트가 발생하면 실제 날짜가 중요하지 않고 다른 이벤트와 관련된 정확한 시간이 중요합니다. 기록된 데이터는 그래프로 표시되며, 이벤트 간 간격은 최대한 정확해야 합니다.
Arch Linux의 RPi에서 시간은 어떻게 처리됩니까? 멀티스레드 환경에서는 얼마나 정확합니까?
답변1
Arch의 대부분의 기능과 마찬가지로 여러 가지 중에서 선택할 수 있는 기본 시간 관리 도구가 설정되어 있지 않습니다.시간 동기화 옵션.
RaspberryPi의 단점을 고려하여실시간 시계, 마지막 시간을 디스크에 저장하는 도구를 사용한 다음 시작 시 해당 도구를 참조하여 시계를 변경하는 것이 좋습니다.유닉스 시대의 시작.
조합 사용시스템 시간 동기화/etc/systemd/timesyncd.conf
및 선호하는 시간 서버에 대한 선택적 구성 파일시스템 네트워크부팅 시 네트워크를 시작하고 시계의 드리프트를 수정합니다.최대한 빨리. 그런 다음 데몬은 시계를 주기적으로(약 30분마다) 동기화합니다.