Raspberry Pi lấy thời gian từ đâu?


44

Tôi không phải đặt đồng hồ (ngoài múi giờ) trên Raspberry Pi. Nó lấy thời gian từ đâu? Về độ chính xác của nó?


Cài đặt mới có thời gian lấy từ nhiều nguồn khác nhau. Để biết chi tiết và về lý do tại sao bạn nên thay đổi nó thành time.nist.gov, hãy xem Hỏi & Đáp này: raspberrypi.stackexchange.com/questions/68811/
Lỗi

Câu trả lời:


45

Raspbian lấy thời gian từ Máy chủ NTP ("máy chủ thời gian").

Rút phích cắm hoàn toàn Raspberry Pi của bạn, rút ​​cáp mạng và khởi động lại Raspberry Pi. Bạn sẽ thấy ngày và giờ không chính xác.

Nếu bạn muốn / cần ngày và giờ không được thiết lập lại mà không cần cắm vào internet, bạn sẽ cần Đồng hồ thời gian thực (RTC) - ví dụ, một cái gì đó như thế này - sẽ giữ thời gian hiện tại, bằng cách sử dụng pin để chạy đồng hồ. Đây cũng là cách máy tính của bạn giữ thời gian khi nó không được cấp nguồn.

CẬP NHẬT Chỉ cần một lưu ý phụ là đồng hồ RTC ở trên không phải là cách duy nhất để giữ thời gian chính xác giữa các lần mất điện. Bạn cũng có thể sử dụng mô-đun GPS và nối với các chân GPIO.

Độ chính xác Nó khá chính xác, mặc dù nếu thời gian của đồng hồ của bạn tắt khá nhiều. Có thể mất tới 3 giờ để tự sửa, vì những thay đổi từ máy chủ được áp dụng dần dần cho đồng hồ cục bộ của bạn. Sự ổn định của mạng có tác động lớn nhất đến độ chính xác, vì một mạng không thể đoán trước (một thứ không dây hơn, như 3G ) sẽ khiến nó rất khó chính xác. Nói một cách đơn giản: Độ chính xác khá tốt, chênh lệch thời gian giữa máy tính của bạn và thời gian thực tế (từ Máy chủ NTP) thường dưới 100ms .


1
câu trả lời tốt đẹp cảm ơn vì liên kết về đồng hồ phần cứng
Scoop

1
Câu trả lời tốt đẹp; nó có thể được cải thiện bằng cách đề cập đến độ chính xác của giao thức NTP.
Alex Chamberlain

@AlexChamberlain Cảm ơn vì đã ngẩng cao đầu, tôi định thêm nó vào nhưng nó hoàn toàn làm tôi mất trí. Tôi đã thêm nó ngay bây giờ.
Vincent P

Trong khi Pi của tôi được kết nối mạng, tôi nhận thấy rằng thời gian đã trôi qua 30 phút. Là ntpd được bật theo mặc định hay tôi cần phải làm điều này bằng tay?
andig

Có lẽ là như vậy, cho đến khi Raspberry Pi 3. Tôi đã mua một hai tháng trước và cập nhật thời gian NTP bị vặn, ít nhất là trên Raspbian Jessie chính thức. Tôi đã mở ba chủ đề với vấn đề đó và mọi người đều không biết gì. Tôi đã phải mua mô-đun phần cứng để giữ thời gian để giải quyết vấn đề.
Pygmalion

21

Câu trả lời của Morgan đã cho tôi gợi ý tôi cần để giải quyết vấn đề.

  1. Truy cập http://support.ntp.org/bin/view/Servers/NTPPoolServers
    Chọn khu vực của bạn, sau đó quốc gia của bạn và một danh sách các máy chủ sẽ được hiển thị.

  2. Chỉnh sửa tập tin /etc/ntp.conf của bạn, vd

    sudo vim /etc/ntp.conf

    Thay thế danh sách các máy chủ bằng một máy chủ bạn tìm thấy trong trang web. ví dụ

    máy chủ 0.dk.pool.ntp.org
    máy chủ iburst 1.dk.pool.ntp.org
    máy chủ iburst 2.dk.pool.ntp.org
    máy chủ iburst 3.dk.pool.ntp.org iburst

    Lưu và thoát.

  3. Khởi động lại ntp deamon.

    sudo /etc/init.d/ntp khởi động lại

  4. kiểm tra xem ngày tháng có đúng không

    ngày
    Thu Jun 20 13:39:20 CEST 2013

Trong một trong những máy chủ của tôi, ngày tháng đã được thay đổi. Mặt khác, tôi đã phải chờ một vài phút.


2
Nếu bạn đang ở Vương quốc Anh (hoặc một quốc gia khác) thì bạn chỉ cần thay đổi mã quốc gia gồm hai chữ cái cho phù hợp .eg server 0.uk.pool.ntp.org iburst
Pierz

Bước 4 không làm việc cho tôi cho đến sau khoảng 15 phút. Hoặc có lẽ vì tôi đã chạy ntpq -p. Tôi đang sử dụng: "Raspbian GNU / Linux 7 (wheezy)" và "Linux raspberrypi 4.1.7+ # 817 PREEMPT Sat ngày 19 tháng 9 15:25:36 BST 2015 armv6l GNU / Linux"
Peter Mortensen

Có lẽ hwclockhoặc fake-hwclockđang can thiệp (nhưng phần "/etc/rc.conf" đã hết hạn)
Peter Mortensen


Và sau khi tắt máy 5 phút, nó chậm hơn 5 phút ( ntpq -pkhông tạo ra sự khác biệt).
Peter Mortensen

14

Nếu bạn có fake-hwclockgói , nó cũng sẽ thực hiện thủ thuật lưu dấu thời gian để ngăn đồng hồ được đặt lại. Điều đó sẽ không tăng thời gian trong khi thiết bị tắt, vì vậy nó sẽ bị tụt lại phía sau. Đồng hồ bên trong cũng sẽ trôi một chút trong khi bật.

Nếu bạn có kết nối Internet (hoặc lan với máy chủ) và chạy ntp (ntpd / ntpdate), bạn có thể nhận được thời gian qua mạng, như các câu trả lời khác chỉ ra. Khi được đồng bộ hóa, nó thực sự khá chính xác. Các máy chủ trực tuyến cũng sẽ cung cấp cho bạn sự đồng thuận "thời gian thế giới".


thú vị về fake-hwclock. Tại sao ai đó muốn đóng băng đồng hồ khi tắt máy? Tôi không thể nghĩ ra một trường hợp sử dụng cho điều đó. Lanhung?
Scoop

2
@Scoop Vì thay thế là quên thời gian, nên nó sẽ đặt lại. Điều này sẽ gây ra bất kỳ timestamps ghi dường như đến từ tương lai, vv "Freezing" đồng hồ đảm bảo thời gian tiếp tục di chuyển về phía trước, thậm chí nếu tính là tắt :)
XTL

1
Có ntp hoặc cách khác để đặt đồng hồ tất nhiên vẫn sẽ hoạt động và fake-hwclock chỉ chạy khi khởi động và tắt máy.
XtL

1
đối fake-hwclockvới Arch Linux, hãy sử dụng archplusplus.co.uk/post/40202081414/ từ
levinalex

2
Bây giờ gói này dường như được cài đặt như mặc định trên Raspbian.
Bến tàu

11

Raspberry Pi không có đồng hồ thời gian thực (RTC) tích hợp về hiệu quả chi phí: xem câu hỏi "Tại sao không có đồng hồ thời gian thực (RTC)?" trong FAQ chính thức . Điều đó có nghĩa là khi bạn rút phích cắm Raspberry Pi, nó sẽ mất thời gian. Khi bạn cấp nguồn trở lại, thời gian được khởi tạo vào ngày 1 tháng 1 năm 1970 (còn gọi là Unix epoch ).

Raspberry Pi đặt thời gian qua mạng với NTP , một giao thức để đồng bộ hóa đồng hồ giữa các máy tính. Giao thức này được sử dụng rộng rãi trên Internet để đảm bảo các máy tính có cùng thời gian và có độ tin cậy cao do một số máy được dành riêng để tính thời gian với đồng hồ nguyên tử .

ntpdlà một daemon (một phần mềm trong nền) đã khởi chạy thời gian khởi động và nó chịu trách nhiệm đồng bộ hóa thời gian bằng giao thức NTP. ntpdcó thể được cấu hình với các tập tin /etc/ntp.conf. Chẳng hạn, đây là nơi bạn có thể thiết lập các máy chủ để yêu cầu thời gian.


Nó không nhớ lần cuối sao? Tôi tắt máy Raspberry Pi một tuần trước và datebây giờ cho thấy ngày tháng cộng với, tôi nghĩ, thêm một số giờ kể từ thời gian hoạt động hôm qua và hôm nay (sau khi khởi động lại vào hôm qua và hôm nay). (Raspbian, tương ứng với giữa năm 2015).
Peter Mortensen

Chạy cat /etc/fake-hwclock.datavà bạn sẽ thấy lần cuối cùng fake-hwclocktiết kiệm thời gian (rõ ràng, vào thời gian tắt máy). fake-hwclockđược sử dụng trên RPi để bắt chước một chiếc đồng hồ thực sự. Tôi nghĩ rằng bạn đã khởi động RPi của mình mà không cần truy cập Internet hoặc không ntpdbắt đầu cập nhật thời gian. Bạn có thể xác nhận điều đó?
Morgan Courbet

5

Raspbian Stretch: NTP không được cài đặt theo mặc định

Có vẻ như đã có một chút thay đổi với Raspbian Stretch. Nói tóm lại, ntp không còn được cài đặt. Chạy dpkg -l | grep ntpkhông trả về gì cả.

Rõ ràng, Stretch đã từ bỏ ntpứng dụng có lợi cho systemd. Kiểm tra man timesyncdmục để biết chi tiết về cài đặt cấu hình. timesyncdvẫn sử dụng máy chủ ntp để cập nhật thời gian. Nếu bạn muốn cấu hình các máy chủ này theo cách thủ công, bạn có thể làm như vậy trong /etc/systemd/timesyncd.conftệp.


1
Sau khi thực hiện chỉnh sửa, hãy khởi động lại dịch vụ trước sudo systemctl restart timesyncdvà sau đó kiểm tra nhật ký bằng cách journalctl -u timesyncd -fđôi khi tường lửa của công ty chặn cổng. Trong những trường hợp như vậy, hãy sử dụng URL máy chủ ntp của công ty được cung cấp.
typelogic

Tôi tin rằng tên chính xác của daemon là systemd-timesyncd, để lệnh khởi động lại sẽ làsystemctl restart systemd-timesyncd
chb

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.