itsrda

Raspberry Pi Neden Rastgele Donuyor? Düşük Voltaj ve Isınma Teşhisi

Tekrarlanması zor donmalar, SD kart hataları ve beklenmedik yeniden başlatmaların arkasında çoğu zaman yetersiz güç kaynağı ya da ısınma vardır. vcgencmd ile nasıl teşhis edeceğinizi anlatıyoruz.

"Raspberry Pi'm bazen donuyor, bazen kendiliğinden yeniden başlıyor, kartı da iki kez bozuldu." Bu şikayet, 7/24 çalışan Pi'lerde en sık duyulan hatalardan biridir ve çoğu zaman yazılımla ilgisi yoktur. Kök neden büyük olasılıkla ya yetersiz güç ya da ısınmadır. İyi haber şu ki ikisini de birkaç komutla ölçebilirsiniz.

Belirtiler neye benzer?

  • Sistem açıkken bir anda donar, ağ cevap vermez; fişi çekip takınca düzelir.
  • Günlüklerde açıklanamayan dosya sistemi hataları ve SD kart bozulmaları çıkar.
  • Cihaz yük altında (yedekleme, güncelleme, yoğun veritabanı işlemi) kararsızlaşır, boşta sorunsuzdur.
  • Ekran bağlıysa sağ üst köşede yıldırım simgesi ya da termometre görünür.

Bu belirtilerin hepsi uygulamanızdaki bir hataya da işaret edebilir; bu yüzden önce donanım tarafını elemek gerekir.

Adım 1: Güç sorunlarını okuyun

Pi'nin yazılımı, voltaj düşüşlerini ve ısı kısıtlamasını bir bayrak alanında tutar. Okumak için:

vcgencmd get_throttled

Çıktı throttled=0x0 ise, açılıştan beri bir sorun kaydedilmemiştir. Sıfırdan farklı bir değer, aşağıdaki bitlerin birleşimidir:

Bit Anlamı
0x1 Şu anda düşük voltaj algılanıyor
0x2 Şu anda işlemci frekansı sınırlanmış
0x4 Şu anda kısıtlama (throttling) var
0x8 Şu anda yazılımsal sıcaklık sınırı etkin
0x10000 Açılıştan beri düşük voltaj oldu
0x20000 Açılıştan beri frekans sınırlaması oldu
0x40000 Açılıştan beri kısıtlama oldu
0x80000 Açılıştan beri sıcaklık sınırı devreye girdi

Örneğin 0x50005 değeri, hem şu anda hem geçmişte düşük voltaj ve kısıtlama yaşandığını söyler. Çekirdek günlüğünden de teyit edebilirsiniz:

sudo dmesg | grep -i -E "under-voltage|undervoltage|throttl"

Under-voltage detected! satırları görüyorsanız sorun budur.

Adım 2: Sıcaklığı ölçün

vcgencmd measure_temp

Boşta 40-55 °C arası normaldir. Yük altında 70 °C'yi aşıyorsa yakından izleyin; yaklaşık 80 °C civarında çip performansını düşürmeye başlar. Yük altındaki davranışı görmek için bir saniyelik aralıklarla izlemek yeterlidir:

watch -n 1 "vcgencmd measure_temp; vcgencmd get_throttled"

Başka bir terminalde yükü artırın (örneğin sudo apt full-upgrade ya da veritabanı yedeği) ve değerlerin nasıl değiştiğine bakın.

Güç sorununu çözmek

Düşük voltajın nedenleri, sıklık sırasıyla şunlardır:

  1. Zayıf adaptör. Telefon şarj adaptörü 5 V verdiğini söyler ama yük altında voltaj düşebilir. Pi 3 için resmi öneri 5,1 V ve en az 2,5 A'dir. Pi 4 ve 5 için daha yüksek akım gerekir.
  2. İnce veya uzun kablo. Kablonun direnci voltajı düşürür. Kısa ve kalın (düşük AWG) bir kablo kullanın; ucuz, ince kablolar tek başına soruna yol açabilir.
  3. USB'ye bağlı cihazlar. Harici disk, kamera veya yoğun akım çeken bir USB cihaz, aynı güç hattından beslenir. Gerekiyorsa kendi adaptörü olan bir USB hub kullanın.
  4. Çoklu priz ve uzatma kabloları. Gevşek temas anlık kesintilere sebep olur.

Pratik bir yöntem: adaptörü ve kabloyu değiştirip vcgencmd get_throttled değerini sıfırlayın (cihazı yeniden başlatın) ve birkaç gün izleyin. Bayraklarda 0x1xxxx biti yeniden belirmiyorsa sorun çözülmüştür.

Isınmayı çözmek

  • Pi'yi kapalı, havasız bir kutuya koymayın; özellikle yaz aylarında ortam sıcaklığı doğrudan çip sıcaklığına eklenir.
  • Soğutucu blok (heatsink) çok ucuz ve etkilidir; sürekli yük altında çalışan cihazlara mutlaka takın.
  • Bir fan, kapalı kasalarda sıcaklığı belirgin biçimde düşürür.
  • Doğrudan güneş ışığı alan ya da radyatör yanındaki yerlerden kaçının.

Bir iş yerinde teknik dolap ya da arka oda gibi ortamlarda cihazın bulunduğu odanın gerçek sıcaklığını bir kez ölçmek faydalıdır; kış ve yaz değerleri çok farklı olabilir.

Elektrik kesintisi: ayrı bir risk

Voltaj dalgalanmasından farklı olarak ani elektrik kesintisi, o sırada yazılmakta olan verinin yarım kalmasına yol açar. Bunu tamamen önlemek için küçük bir UPS ya da Pi'ye uygun bir kesintisiz güç modülü düşünebilirsiniz. Tam bir çözüm yoksa dosya sistemini ve veritabanını bu duruma dayanıklı yapmak gerekir; bu konuyu SD kart ömrü yazısında ayrıntılı ele alıyoruz.

Donmalar sürerse: yazılım tarafı

Güç ve ısı temizse sıradaki şüpheliler bellek ve disk doluluğudur:

free -h        # bellek ve swap
df -h          # disk doluluğu
journalctl -b -1 -p err   # önceki açılışta oluşan hatalar

journalctl -b -1, bir önceki açılışın kayıtlarını gösterir; cihaz donup yeniden başladıysa son satırlar olayın hemen öncesini anlatır. Günlük okumanın diğer yöntemleri için journalctl rehberine bakın. Ayrıca kendi uygulamanızın bellek tüketimini izleyin; yavaş yavaş artan bir bellek kullanımı, sistemin aylar sonra takılmasına neden olabilir.

Özet

Rastgele donma yaşayan bir Raspberry Pi'de önce vcgencmd get_throttled ve measure_temp çıktılarına bakın. Sorun varsa çözüm genellikle bir adaptör ve kablo değişikliğidir; bu, saatlerce yazılım hatası aramaktan çok daha kısa sürer. Sorun yoksa bellek, disk ve günlüklere geçin. Her iki durumda da çalışan bir yedeğiniz olmalı: donanım sorunları kartı bozabilir ve bunu önceden bilemezsiniz.

Not: Komutları üretim ortamında çalıştırmadan önce yedek alın ve önce test ortamında deneyin. Bir adım sizde farklı davranıyorsa bize yazın, rehberi güncelleyelim.