自宅サーバーとして使用しているRaspberry Pi 3Bがなぜかよく落ちるため、原因を調べて対策してみました。
GPIO給電により電源を多重化することで、まったく落ちることがなくなりましたので、具体的な対策方法を紹介していきたいと思います。
ラズパイが落ちる原因は電圧不足
nextcloudなどをインストールし、自宅サーバーとして活用しているRaspberry Pi 3B。
これまでもアクセスが集中したり、重い処理を実行したりすると、なぜか落ちてしまうことがありました。SSHすら繋がらなくなり、電源を抜いて再起動するしかなくなってしまいます。
あまり気にせず使用していましたが、ラズパイにはSSDも接続されており、何度も電源断するのも気になるので、本腰を入れて原因を調べてみることにしました。
dmesgコマンドで落ちたときのカーネルメッセージを確認してみたところ、以下のような表示が。
Under-voltage detected! (0x00050005)
なるほど。ラズパイあるあるの電圧不足が原因だったようです。
一般的にこのような低電圧エラーは無視していても問題ないことが多いです。
最近はラズパイにUSBカメラも接続しており、使用電力が増していたため、電圧降下によってフリーズしてしまっていたものと考えられます。
ACアダプターは手堅くRaspberry Pi専用品を使用していたのですが、それでもUSBカメラ+SSDが接続されているため、十分な電力供給ができていなかったのでしょう。
・・・といったんは納得したのですが、さすがに出力3AものACアダプタでも落ちるというのはおかしいのでは・・・?
ラズパイ対応品のACアダプターでもダメな理由
▼すいません。久しぶりに読み返してみたら、以下の説明はちょっとおかしいです。
状況を鑑みるに、ラズパイ対応品のACアダプターを使っていても、十分な電力供給ができていないことは確かなようです。しかし、アダプターの出力は要求電力を十分カバーしているはずなのに、なぜでしょうか。
原因はおそらくUSBの規格にあります。
microUSB規格の最大電流はおよそ2A。どんなに高性能なACアダプターを使っても、電源に使用する端子がmicroUSBでは供給できる電流値は2A前後に制限されてしまいます。現行モデルのRaspberry Pi 4BはUSB-Cになっており、電流の制約は緩和されていますが、microUSBが採用されている3B以前のラズパイでは、高負荷時に十分な電流を流せないことが考えられるのです。
どんなに強力なACアダプターを使用しても、接続部分がボトルネックになってしまうため、十分に電力を供給できないものと考えられます。
そこでGPIO給電の出番!
ではどうすれば?不足分をGPIOから給電してしまえばよいのです。
ラズパイにはGPIOピンが設置されており、GPIO上の5VピンとmicroUSBの5Vピン、そしてラズパイ本体の電源5Vはすべて直結されています。よって、GPIO5Vピンに5Vを印加しても、電源を供給することが可能となっています。
当然ながらmicroUSBとGPIOは並列関係にありますので、両方に同時に電源を接続することができます。
GPIOピンも単独では1A程度が上限のようですが、microUSBからの給電にプラスしてGPIOにも電源を接続しておけば、トータル3A以上は安定して供給できる計算になります。これなら電流不足(電圧低下)せずに、高い負荷がかかっても安定して動作してくれるようになるはずです。
やってみた!
善は急げでさっそくやってみました。
ほこりが写っていて恐縮ですが、別のUSB充電器からの5VをGPIOの5Vピンに接続しています。アダプタ側のUSBにはUSBシリアルコンバーターを接続し、USBをGPIOピンに変換しています。もちろんUSB端子にGPIOをはんだ付けしたほうが、抵抗やコンバーター部分での消費電力もなくなりベストですが、手持ちの部品がなかったため、このようなやり方にしました。
GPIOの接続ピンは以下のとおりです。
5V(上図の2番または4番)とGND(6番など)にアダプタの出力を接続します。当然ながらラズパイの5Vにはアダプタの5Vを接続、GNDにはGNDを接続します。逆に接続したり、誤ったピンに接続すると一瞬で故障しますので、慎重に接続しましょう。万が一ミスったときに備え、接続時はSDカードやSSDを外しておいたほうがいいかもしれません。変な電圧印加でデータ損失するかもしれませんからね。
もちろん、microUSBにもこれまで通り給電しています。別のアダプタを使っているため、片方のACアダプターが死んでもラズパイは動き続けるようになります。電源強化と同時に、まるで高級サーバーのような電源多重化も可能となります。
効果てきめん!落ちることはなくなりました!
対策して1ヶ月。対策前とサーバーの使い方はまったく同じですが、一度も落ちることはなくなりました。GPIO給電、おすすめです。
ラズパイを自宅サーバーにしてもう3年くらいになりますが、ホントに高性能です。使いかたを少し工夫するだけで、十分な性能のサーバーとして動作してくれます。
その分電源がキツイです。高性能なだけあり、十分な電力供給を行わないとあっさり落ちてしまいます。SSDなどの周辺機器を接続した場合はさらにキツくなります。実質的にUSBだけでの安定運用は難しいため、「USB給電はお試し用、GPIO給電をプラスして標準」と考えておいたほうがよいかもしれませんね。
ラズパイが落ちてしまい困っている方、ラズパイの電源安定化に苦戦している方はぜひお試しください。
コメント