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:
- 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.
- İ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.
- 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.
- Ç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.