Soru:
Raspbian'da Gerçek Zamanlı Saat (RTC) nasıl kurulur?
greggo
2015-11-16 05:34:49 UTC
view on stackexchange narkive permalink

Elimde:

  • 2015-05-05-raspbian-wheezy ile Raspberry Pi
  • ds1307 takılı (bir Adafruit kartı, pullup dirençleri kurulu değil).

Nasıl:

  • sürücüleri yapılandırırım
  • Pi'nin başlangıçta RTC zamanını gerçekten kullandığından emin olurum?

Anlayabildiğim kadarıyla ilk bölümü gerçekten yaptım, ancak ikincide şansım yok. Adafruit talimatları da dahil olmak üzere oradaki bilgilerin çoğu bundan dolayı geçersizdir: https://www.raspberrypi.org/forums/viewtopic.php?t=97314

İlk adım: raspi-config'de I2c'yi ve sürücüleri etkinleştirirsiniz, /boot/config.txt'nin sonuna dtoverlay = i2c-rtc, ds1307 eklersiniz ve sürücüleriniz olur, ve hwclock şu anda benim için çalışıyor, görünüşe göre (i2cdetect'i çalıştıramazsınız, daha sonra bunun üzerine daha fazla).

Şimdi sahte-hwclock'u kaldırmanız ve gerçekten başlangıçta rtc'yi okur. Bu tavsiyeye uymaya çalışıyordum - bu, gördüğüm diğer şeylerle büyük ölçüde uyumlu ve çok yeni - https://www.raspberrypi.org/forums/viewtopic .php? p = 842661 # p842661

(bu farklı bir RTC içindir, ancak ben sadece sahte hwclock'u ve benzerlerini kaldırmakla ilgili ikinci bölümü takip ediyorum).

Ama şans yok ve pi'mde 'yorumlanacak satırlar' yok. Pi'm 1 Ocak 1970 00:00 ile geliyor ve hwclock -r RTC'nin bozuk olduğunu söylüyor. RTC'yi kurduğumdan ve pi'yi yeniden başlattığımdan beri gücü kapatmamış olsam bile, başlangıçta bozulmuş olmalı.

Ayrıca i2cdetect'i hiç çalıştıramadım. Aygıtların / dev / i2c (bir şey) olmadığından ve aslında olmadığından şikayet ediyor ...


Ara Güncelleme

Tamam, ben şunu tespit etti:

  • Bozulma yalnızca saat / tarih bilgisinden ibarettir. Nvram'ı bir kalıpla doldurmak için i2cset kullanırsam, bu bilgi yeniden başlatma sırasında değiştirilmez, ancak yıl 0x66'ya gider
  • config.txt dosyasında , ds1307 satırını dtoverlay = i2c-rtc, ds1307 satırından kaldırırsam, sistem RTC'yi bozmadan çıkar! Bu, sürücünün kendisinin verileri bozduğu fikrini destekler. Sürücü koduna baktım ve zamandan geçiyor ve sevmediği şeyleri değiştiriyor (örneğin 12 saatten 24 saat formatına değişiyor). Dolayısıyla, belki de sorun, sürücünün I2C bağlantı noktasının gerçekten çalışmaya hazır olmadığı bir zamanda yüklenmiş olmasıdır (belki de saatlerin hazır olmaması nedeniyle?)
  • Bunu başlangıçtan sonra yaparsam: sudo sh -c 'echo ds1307 0x68 > / sys / class / i2c-adapter / i2c-1 / new_device' rtc_ds1307 sürücüsünün yüklenmesine ve / dev / rtc0 görünmesine neden olur. Ve zaman hala iyi. Ve bu, başlangıç ​​komut dosyalarının nasıl değiştirileceğinin temeli olarak kullanılabilir
  • Eğlenceli bir ayrıntı daha: / sys / yazdıktan hemen sonra bir komut dosyasında hwclock -s kullanırsam .... / new_device, başarısız olur. uyku 0,5 veya arada bir şey olması gerekir.

Görünüşe göre artık kapatılıp başlatılabilen ve doğru zamana sahip bir sistemim var - bunu yakında düzgün bir şekilde yazacağım.

Yolsuzluk ntpdate ile ilgili olabilir (veya olmayabilir) ... https://www.raspberrypi.org/forums/viewtopic.php?p=690492#p690492
Ocak https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=97639 - Yeniden Başlat'ta micksulley için çalıştığı şekliyle config.txt dosyasına `dtparam = i2c1 = on` ekledim. Hala / dev / i2c * yok, hala i2cdetect yok.
http://raspberrypi.stackexchange.com/q/34349/5538
@goldilocks - teşekkürler, önemli bir bulmaca parçası. i2cdetect artık çalışıyor ve 1: 0x68 UU olarak görünüyor. Bugün daha sonra başka şeyler deneyecek.
Bu arada, bunu yapmanın kötü bir yolu da [adafruit öğreticisini] (https://learn.adafruit.com/adding-a-real-time-clock-to-raspberry-pi/set-rtc-time ) ve (gerekirse) öğreticiyi alt üst eden yeni özelliklere sahip olmayan eski bir Raspbian sürümü (2012-2014 arasında) kullanın.
Hangi Raspbian sürümünü kullanıyor olursanız olun, UU olarak görünmemesi gerektiğini düşünmüyorum. Bunu Adafruit'e sormak isteyebilirsiniz.
@goldilocks evet, i2c iletişiminin bir şekilde çalıştığını gerçekten kurmayı umuyordum, aksi takdirde geri kalanı zaman kaybı olabilir ... Şimdi i2cdump yapabileceğim. Anladığım kadarıyla UU, rtc-ds1307'nin onu rezerve etmesinden kaynaklanıyor, muhtemelen bu sürücü en azından 0x68'de bir 'ack' alıp alamayacağına baktı.
@Wilf - ha, yeterince doğru. Ama bunu Büyük İyilik için de yapıyorum. Bu kadar zor olmamalı (ve bu birimi başka bir nedenle yükseltmek zorunda kalacağımı kim bilir). Eminim cevabın orada, forum başlıklarına yayılmıştır. SE formatı, 'doğru cevap' zaman içinde değiştiğinde çok daha iyidir. Bununla birlikte, yaklaşımınızın şu anda% 100 emin olamadığım donanımın sağlam olduğunu belirlememe izin vereceğine katılıyorum (ancak I2C'yi 'neredeyse doğru' yapmak zor, değil mi ...), bu yüzden belki bir şans vereceğim.
UU'nun bir sürücü yüzünden olduğu konusunda haklısınız - daha önce man sayfasına bakmamıştım ve aslında sürücüsü olan bir I2C cihazı kullanmadım. Acaba özel kaplamanın bununla vidalanması mı? Önce sürücünün yüklendiğini kontrol edin (`lsmod | grep rtc`). Daha sonra, "dtoverlay =" 'i kaldırmayı ve I2C'yi genel olarak etkinleştirmek için her şeyi kullanmayı deneyin (örn. "Dtparam = i2c1 = on`), yeniden başlatın," i2cdetect "ve" lsmod "u tekrar kontrol edin. Yüklenmemişse, deneyin (`sudo modprobe ...`). Ayrıca öncesine ve sonrasına / sys / bus / i2c / devices'a bakabilirsiniz. Sürücü yer paylaşımı olmadan yüklerse, "hwclock" un ne dediğine bakın.
not `sudo invoke-rc.d hwclock.sh start` hiçbir şey yapmaz,` / run / udev` var olduğu için çıkar. Ancak `sudo invoke-rc.d hwclock.sh show` saati okur ve` sudo invoke-rc.d hwclock.sh stop` sistem saatini donanım saatine kopyalar.
Https://www.raspberrypi.org/forums/viewtopic.php?p=845588&sid=5dbf3062d81633ef97de91d18f039809#p845588 bağlantısı sorununuzla benzer görünüyor. Bunu kendim denemedim (sadece bu aşamada Pi üzerinde RTC'yi düşünerek).
@Milliways - bunu eklediğiniz için teşekkürler. Benzer konularda birçok forum tartışması buldum; genellikle tüm hikayeyi ve bağlamı çıkarmak için her şeyi dikkatlice okumayı gerektirdiğinden sinir bozucu olabilirler. Belki de bazı sorunlar 'yarış koşulları'dır ve bu nedenle SD kartın performansına duyarlıdır. Rc.local'da bir 'uyku' ile düzelttiğim sorun, açıkça bir yarış durumudur - "hwclock -s", "echo" tarafından tetiklenen eylemler tarafından oluşturulmadan önce "/ dev / rtc0" 'a erişmeye çalışıyor - belki de yolsuzluk sorunu da böyledir, bu da neden herkesin onunla karşılaşmadığını açıklayabilir.
Burada tam bir eğitim bulmam durumunda: https://tutorials.technology/tutorials/40-how-to-add-a-real-time-clock-to-raspberrypi.html
üç yanıtlar:
greggo
2015-11-19 10:23:37 UTC
view on stackexchange narkive permalink

İşte bunu nasıl çalıştırdım.

Buradaki hemen hemen her şeyin süper kullanıcı olarak yapılması gerekiyor, bu yüzden 'sudo bash' kullanın veya her şeyin önüne sudo koyun (daha önce gösterilmediyse).

Aşağıdaki temel adımlar gereklidir:

  • 'i2c' sürücülerinin mevcut olmasa bile mevcut olmasını sağlayın;
  • ek bir sürücü var rtc_ds1307 için
  • fake-hwclock'u kaldırın. Bu, normalde zamanı sağlayacak bir ağınız olmadığında kullanılacak bir alt sistemdir; sistem kapatıldığında sistem saatini bir dosyaya kaydeder ve başlangıçta aynı dosyadan yükler. Yani zaman doğru değil, ama en azından her yeniden başlattığınızda sıfıra (1 Ocak 1970) dönmüyor. RTC kuruluyken, ağ olmasa bile zaman makul ölçüde doğru başlayacaktır.
  • sistemin, başlangıçta RTC'den saati okumasını ayarlayın.

Lütfen bunun bir rev 2.0 'Pi 1' ve genişletme konektörüne takılı bir ds1307 rtc üzerindeki 2015-05-05-raspian-wheezy görüntüsü için olduğunu unutmayın. Bazıları veya çoğu diğer durumlar için geçerli olmalıdır (ancak muhtemelen daha yaşlı ahududu için değil). Bozulan RTC ile ilgili sorunun ds1307 sürücüsüne özgü olması olasıdır, bu nedenle diğer yongalar için daha basit olabilir. Ve bu sorun gelecekteki bir sürümde çözülebilir.

Ayrıca, bu talimatlar I2C veri yolu # 1'in kullanımda olduğu model 2 PCB için yazılmıştır. Rev1 PCB'niz varsa (P1'e yakın 8 pimli 'P5' konektörüne sahip olmayan) RTC'yi I2C veri yolu # 0'a bağlayacaksınız. Bu nedenle, aşağıda / i2c-1 / gördüğünüzde, bunun yerine / i2c-0 / kullanın.

Önce raspi-config'i çalıştırın, ve 'gelişmiş seçenekler' altında, I2C'yi ve I2C sürücülerini yüklemeyi etkinleştirmek için bir ayar bulacaksınız. Onları etkinleştirin.

Şimdi, prensip olarak, /boot/config.txt : dtoverlay = i2c-rtc, ds1307 'nin altına bir satır ekleyebilirsiniz, ds1307 sürücüsü; ancak - birçoğunun bulduğu gibi - sürücünün yüklenmesi saatin içeriğini bozarak amacını bozacaktır. Neden olduğuna dair hiçbir fikrim yok, ancak sürücü kaynağına baktım ve başlangıçta saati okuduğunu ve beğenmediği şeyleri bulursa (24 yerine 12 saatlik format gibi) buldum. bu ayarları yazmalarla 'düzeltir'. Bu yüzden, I2C başladıktan hemen sonra sürücünün yüklenmesi ve belki de saatlerin düzgün ayarlanmamış olması ve iletişimin bozuk olabileceğinden şüpheleniyorum. Her durumda, bu benim sahip olduğum yapılandırmayla çalışmıyor ve bu nedenle sürücünün daha sonra yüklenmesine neden olacağız.

Bu noktada, yeniden başlatabilir ve lsmod | grep i2c i2c_bcm2708 sürücüsünün yüklendiğini görmelisiniz (raspi-config'de sorulduğu gibi).

Ardından, şu komutu çalıştırın:

echo ds1307 0x68 > / sys / class / i2c-adapter / i2c-1 / new_device

veya (zaten süper kullanıcı değilse):

sudo sh -c 'echo ds1307 0x68 > / sys / class / i2c-adapter / i2c-1 / new_device'

( sudo echo şu tarihten beri çalışmıyor > , süper kullanıcı olması gereken şeydir).

Bu, rtc_ds1307 sürücüsünün yüklenmesine neden olur ve bir / dev aygıt oluşturur / rtc0 . Artık hwclock:

sudo hwclock -r

çalıştırabilmelisiniz ... Bu, RTC. Saatiniz henüz düzgün şekilde başlatılmadığından bir hata oluşturabilir. Her durumda, şimdi ayarlayacağız.

(1) sistem saatinin tarih kullanılarak ayarlandığından emin olun. Bir ağ üzerindeyseniz, önceden ayarlanmış olmalıdır; değilse, telefonunuzu veya cep saatinizi çıkarın ve

sudo date -s '18 kasım 2015 22:20:24 '

gibi bir şey deneyin

sistem saatini doğru bir şekilde ayarladığınızda - saat dilimi için doğru ayarlamaya dikkat ederek - yapabilirsiniz

sudo hwclock -w

bunu RTC'ye kopyalar.

Ve sonra hwclock -r çalışmalı, zamanı RTC'de göstermeli ve okursanız ilerlediklerini görmelisiniz birden fazla.

  18 Kasım 2015 Çar 22:48:41 EST -0.181329 saniye 18 Kasım 2015 Çarşamba 22:48:53 EST -0.013721 saniye  

Not: saat değeri UTC saat dilimine göre saklanır, ancak yerel saatte görüntülenir.

Sonraki adım: sahte hwclock'u kaldırın. Önce onu devre dışı bırakın ve hwclock.sh'nin etkinleştirildiğinden emin olun:

  sudo update-rc.d hwclock.sh ,udo update-rc.d fake-hwclock removeesudo apt-get remove fake-hwclocksudo rm /etc/cron.hourly/fake-hwclocksudo rm /etc/init.d/fake-hwclock

hwclock.sh başlangıçta hiçbir şey yapmaz - udev'in varlığını algılar ve udev'in başlatma işini yaptığını varsayar - ancak yararlı bir şey yapar, bu da sistem saatinin çalıştırma sırasında RTC'ye yazılmasına neden olur. Dolayısıyla, bir ağa bağlandığınızda, Pi zamanı ağa senkronize olur ve kapattığınızda RTC kayması düzeltilir.

Geriye bir şey kaldı - RTC'yi okumayı ayarlamamız gerekiyor. açıldığında, sistem saati ayarlanacaktır. udev'in içinde bunu yapmaya çalışan, ancak RTC sürücüsü yüklenmediği için başarısız olacak veya atlanacak bir şey var.

Bunu ayarladığım yol, bu dört /etc/rc.local üstündeki satırlar (sağ üstte, yorumların altında):

  echo 'RTC'echo ds1307 0x68 > / sys / class / i2c-adapter / i2c-1 / new_devicesleep 0.5hwclock -s  

Bu, sürücünün yüklenmesini ve sistem her başlatıldığında donanım saatinden sistem saatinin ayarlanmasını sağlar. 'Sleep 0.5' orada çünkü hwclock komutunun o olmadan çalışmayacağını buldum - eylem / sys / class / i2c-adapter / i2c-1 / yazarak tetiklendi new_device (/ dev / rtc0'ı oluşturmak dahil) görünüşe göre biraz zaman alıyor (muhtemelen 0,5 saniyenin çok altında).

İşte bu kadar. Bu /etc/rc.local kullanımından gerçekten memnun değilim - rc.local öncesinde birçok şey olduğu için çok daha erken kurulmasını tercih ederim code> çalıştırılır ve bu şeyler çalışmadan önce saatin ayarlanması çok daha iyi olur. Ama benim için çalışıyor. Daha iyi bir yol bulursam bu yanıtı güncelleyeceğim.

Referanslar https://www.raspberrypi.org/forums/viewtopic.php?t=97314 https://www.raspberrypi.org/forums/viewtopic.php?p=842661 https://www.raspberrypi.org/forums/viewtopic.php?t=85683 https://www.raspberrypi.org/blog/upcoming-board-revision/

Sipariş üzerine bir RTC almıştım ve RTC gönderilerini okuyordum. Bu, bu sitede RTC'den bahseden birkaç kişiden biridir. RTC'm geldi, en son Raspbian'da (Jessie) "config.txt" ye "dtoverlay = i2c-rtc, ds3231" ekledim. Her şey yolunda görünüyor. Özel bir yapılandırma gerekmez. Kuşkusuz bu farklı bir yonga (veri sayfası Xtal yongası haricinde hemen hemen aynı görünmesine rağmen ve 3.3V'den çalışıyor). PS `hwclock`,` sudo`ya ihtiyaç duyar
@Milliways `/ etc / rc.local` kök olarak çalışır. Ds3231'in aynı sürücüyü kullanıp kullanmadığını hatırlamıyorum ve yine de bozulmaya neyin sebep olduğunu bilmiyorum, sadece sürücü yüklendiğinde oluyor. Ayrıca, yukarıdaki bir yorumda bahsettiğim gibi, bu sorunlardan bazılarının init sırasındaki yarış koşullarından kaynaklanabileceğinden şüpheleniyorum (örneğin, rtc sürücüsü, i2c doğru şekilde kurulmadan önce yükleyebilir) ve hızından önemli ölçüde etkilenebilir. SD kart. Jessie'yi ilk çalıştırdığımda, 4. sınıf bir karttaydı ve ciddi bir şekilde kırılmıştı; garip hatalar ve "kapatmayı" yok saydı. 10. sınıfta iyiydi
@Milliways ama evet, ds3231 ile gitmenizi şiddetle tavsiye ederim, 3.3v ile çalışıyor, çok daha doğru. Ayrıca sizi bu zorluklardan kurtarıyorsa, bu büyük bir bonus.
greggo
2015-11-19 11:25:17 UTC
view on stackexchange narkive permalink

Ek Cevap - I2C araçlarıyla sorun giderme

Çalışmasını sağlamaya çalışırken, RTC'ye bakmak için i2c araçlarını kullanmayı yararlı buldum ve diğer tartışmalarda buna birçok referans bulacaksınız. Soruya onunla ne bulduğuma dair bazı bilgiler ekledim; Yararlı olması durumunda bu cevaba taşıdım.

I2C'nin etkinleştirilmiş (raspi-config) ve i2c-dev modülünün yüklü olması gerekir - bunu bir sudo modprobe ile zorlayabilirsiniz i2c-dev . RTC'nin çalışması için i2c-dev gerekli değildir, ancak i2c-araçlarının kullanılması gerekir.

sudo apt-get kullanarak i2c-tools yükleyebilirsiniz 'i2cdetect' yoksa, i2c-tools 'ı kurun.

Rev. 1 PCB'niz varsa: i2cdetect -y 1 ' i i2cdetect olarak değiştirin -y 0 ve i2cdump komutlarındaki tüm 1 0x68 'i 0 0x68 olarak değiştirin.

i2cdetect -y 1

  0 1 2 3 4 5 6 7 8 9 abcde f00: - - - - - - - yapabilirsiniz - - - - - - - 10: - - - - - - - - - - - - - - - - 20: - - - - - - - - - - - - - - - - - - 30: - - - - - - - - - - - - - - - - - - 40: - - - - - - - - - - - - - - - - 50 : - - - - - - - - - - - - - - - - 60: - - - - - - - - - 68 - - - - - - - 70: - - - - - - - -  

... ' 68 ', bir cihazın adrese 0x68 adresinde yanıt verdiğini gösterir I2C otobüsünde. Rtc_ds1307 sürücüsünü yüklediyseniz, sürücü tarafından rezerve edildiğinden 'UU' olarak görünecektir.

i2cdump -y -f -r 0-6 1 0x68 c , ds1307'nin zamanı içeren ilk 7 kaydını dökmek için kullanılabilir ('-f' yalnızca rtc sürücüsünü yüklediyseniz gereklidir; rezervasyonu geçersiz kılar).

Aşağıda: Güçlendirmeden sonra, sürücünün dtoverlay = i2c-rtc, ds307 tarafından yüklenmesi nedeniyle RTC bozulduğunda ne olur?

hwclock -r başlangıçta saat ayarının bozuk olduğunu ve aslında yılın '66' olduğunu bildiriyor.

  pi @ raspberrypi ~ $ sudo hwclock -rhwclock : Donanım Saati kayıtları geçersiz (ör. Ayın 50. günü) veya işleyebileceğimiz aralığın ötesinde (ör. Yıl 2095) .pi @ raspberrypi ~ $ sudo i2cdump -y -f -r 0-6 1 0x68 c 0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef00: 50 04 00 05 01 01 66 P?. ??? f pi @ raspberrypi ~ $ sudo i2cdump -y -f -r 0-6 1 0x68 c 0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef00: 52 04 00 05 01 01 66 R?. ??? f pi @ raspberrypi ~ $ sudo hwclock -wpi @ raspberrypi ~ $ sudo i2cdump -y -f -r 0-6 1 0x68 c 0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef00: 35 09 01 03 17 11 15 5 ?????? pi @ raspberrypi ~ $ sudo i2cdump -y -f -r 0-6 1 0x68 c 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef00: 37 09 01 03 17 11 15 7 ?????? pi @ raspberrypi ~ $ sudo hwclock -rTue 17 Kasım 2015 01:09:42 UTC -0.384866 saniye @ raspberrypi ~ $ sudo i2cdump -y -f -r 0-6 1 0x68 c 0 1 2 3 4 5 6 7 8 9 abcdef 0123456789abcdef00: 46 09 01 03 17 11 15 F ?????? 

i2cdump'taki yedi rakam: [sn min saat haftanın günü-ay yılı], tümü bcd olarak, yani son kez 17 Kasım 2015, 01:09 : 46 UTC.

'Bozuk' zaman 1-Ocak-66 ve aynı değerin ortaya çıktığını bildiren başkalarını da gördüm.

iomihai
2016-01-26 18:54:40 UTC
view on stackexchange narkive permalink

Arch Linux'a sahip iki Raspberry Pi 2 Model B'de benzer bir sorun yaşadım, biri TinyRTC (ds1307 ile) ve diğeri kapasitör RTC (ds3231 ile).

NTPD'yi şu şekilde çalıştırıyorum daemon hem RTC'nin tarihini bozdu hem de 2066/01/01 olarak ayarladı.

  #hwclock --debughwclock from util-linux 2.27 / dev arayüzünü saate kullanma. Son kayma ayarı 1420070400'de yapıldı 1969'dan saniye sonra Son kalibrasyon 1969'dan sonra 1420070 saniyede yapıldı. Donanım saatinin UTC saatinde olduğu varsayılır. Saat tiklaması bekleniyor ... / dev / rtc'de kesme işlevleri yoktur. / Dev / rtc'nin değişmesi için döngü içinde bekleniyor ... Donanım Saatinden saat tickTime okundu: 2066/01/01 00: 01: 12Donanım saatinde geçersiz değerler: 2066/01/01 00: 01: 12Sondan bu yana geçen süre ayarlama -1420070400 saniyedirHesaplanan Donanım Saat kayması 0,000000 saniyedir shwclock: Donanım Saat kayıtları geçersiz (ör. ayın 50. günü) veya işleyebileceğimiz aralığın ötesinde (ör. Yıl 2095) değerler içerir.  

Kurulum

/boot/config.txt dosyasına ekledim

  dtparam = i2c_arm = ondtoverlay = i2c-rtc, ds1307  

veya

  dtparam = i2c_arm = ondtoverlay = i2c-rtc, ds3231  

/ etc / modüllerine ekledim -load.d / raspberrypi.conf

  i2c-bcm2708i2c-dev  

systemd-timesyncd'yi devre dışı bıraktım

  # timedatectl set-ntp false  

NTP yükledim

  # pacman -S ntp  

Nasıl çözdüm

T'ye başlamadan önce NTPD'nin tek bir örneğini başlatarak Servis sistem saatini güncelliyor ve RTC'yi ayarlamıyor, ancak bundan sonra NTPD servisini başlatırsam, RTC tarihini bozmadan güncelliyor.

Bir izin sorunu olduğunu düşündüm. Varsayılan grup sestir.

  # ls -l / dev / rtc0crw-rw ---- 1 kök ses 254, 0 1 Ocak 1970 / dev / rtc0  

Test etmek için /etc/udev/40-rtc-permissions.rules oluşturdum

  KERNEL == "rtc0", GROUP = "ntp", MODE = "0666"  

ama yardımcı olmadı, ben de sildim.

Ayrıca sistem tarihini başlangıçta otomatik olarak yapılmadığından güncellemem gerekiyordu.

/etc/ntpd.service dosyasına ekledim

  ExecStartPre = - / usr / bin / hwclock -sExecStartPre = / usr / bin / ntpd -gq  

ve NTPD hizmetini etkinleştirdi

  # systemctl ntpd'yi etkinleştir  

ve tarih güncelleniyor ve önyükleme sırasında bozulmuyor.

NTPD arka plan programının ilk başlarsa RTC'yi bozmasına neyin sebep olduğunu bulamadım ve birisinin benim çözümüm ama bu benim için çalışıyor.

Gönderi için teşekkürler. Bütün gün Raspberry Pi 3'te bununla savaştım ve gönderiniz nihayet son eksik parçaları bir araya getirdi. İşletim sistemi için Fedberry çalıştırıyorum ve birimi bir IPA sunucusu olarak kurmaya çalışıyorum (neden? Çünkü 10 watt'ta Ücretsiz IPA - tadı harika, daha az dolduruyor!) Şimdi elektrik kesintilerine dayanabilecek çalışan bir IPA sunucum var manuel müdahale olmadan. Ds1307 rtc'yi kullanıyorum ve tanımladığınız saatle ilgili sorunları giderirken aynı sorunlardan bazılarıyla karşılaştım. En kötüsü, önyükleme sırasında RTC belleğinin bozulmasıydı. Dtparam = i2c_arm = on'un numara olup olmadığından emin değilim


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...