Raspberry Pi地デジ関連記事
※22.12.25追記:Raspbrry Pi 4をお持ちの場合、令和5年(2023年)版最新記事が御座います。
以下、令和2年(2020年)以前の記事になります。
- 2020年最終版
- 32ビット検証
- Ubuntu 20.04.1添付のffpmegは使ってはダメよ検証
- DLNA配信
Raspberry Piの地デジ録画環境を作成して、7ヶ月ほど試してみたのですが。
実は、最初に作成した「Raspberry Pi 4で地デジ4チャンネル同時録画するには」は、半年ほどで動かなくなりました。ある日突然、microSDカードが故障して起動しなくなりました。←重大
また日々の動作も不安定で、1週間おきにRaspberry Pi本体・ストレージ・チューナーともにコンセントを抜いて、再起動しないと安定しない状況でした。
その後、いくつか改良を加えて、現在は再起動しなくても安定した動作になっています。
そのあたりの、動作の安定化の工夫を記録しておこうと思います。
目次
初期の不安定な録画環境
こちらが不安定だったときの環境です。次のような特徴です。
- OSはRaspbian(32ビット)を使用
- Raspberry Pi本体はプラケースを使用。空冷用のファンなし。
- ストレージ(HDD)とRaspberry Pi本体、チューナーを密着
上述の通り、この状況では、1週間おきに再起動が必要になりました。またmicroSDカードが破損して起動しなくなりました。
ここから、原因を考察してみます。
動作が不安定な理由の考察
本体の熱暴走
動作不安定な原因の1つが、熱暴走のようです。
以前、motionEye OSが安定動作せず、原因を探ったことがありました。
このときと同様に、地デジ録画でも、Raspberry Piの発熱量が大きく、プラケースでは熱暴走していたようです。
Raspberry Pi本体は、絶対的にアーマーケースがおすすめです。
他にアルミケース・プラケース、そして空冷用のファンを組み合わせる方法があります。
こちらはカメラやGPSモジュール等を内蔵して持ち歩く場合は向いていると思います。
サーバとして利用する場合ですが。ファンによる空冷は、騒音と電力の問題があります。よって、最初にアーマーケースで様子を見て、放熱能力が不足する場合、ファンを付けるほうが良いように思いました。
地デジチューナーの熱暴走
チューナーの動作も不安定になる場合があるようです。放熱の効率が上がるように、放熱用の穴が空いた面を上にして配置したほうが良いと思います。
OSを64ビット化
わたしのおうちで試した限りですが、使用するOSは、32ビットよりも64ビットのほうが安定している感じです。安定する理由は、同じ「地デジ録画」という動作でも、負荷(ロードアベレージ)が異なるからです。
負荷が異なる理由は、32ビットOSよりも、64ビットOSのほうが、同じ時間で取り扱えるデータが倍程度多いからだと思います。
地デジ録画は、ストリーム(電波信号)のデコード(映像に変換する)処理や、映像をファイルに保存する処理など、大量のデータを扱う系の動作かと思います。
このため、32ビット→64ビット化による効果や恩恵が大きいように思えます。
そのような理由から、同じ処理(地デジの録画)なら、64ビット環境のほうが、32ビットよりも負荷が少なく、発熱量が小さく、安定動作に貢献している感じがします。
microSDカードではなくHDDからブート
Mirakurunのログを見ていると、かなり高い頻度でEPGデータの受信が行われています。そしてEPGStationでmariadbを使用していますが、GRデータの入出力も頻繁かつ大量かと思います。
そのような感じで、microSDカードの寿命が短くなるような使い方になっています。
録画のためにRaspberry Pi 4のUSB 3.0端子にストレージを接続していますが、本当は、microSDカードではなくそちらからOSを起動したほうが、長期的な安定動作につながるかと思います。
このあたりは、Fedora 31のUEFIサポートと類似なのですが、Raspberry Pi 4のUSBストレージ起動のファームウェアの完成を待っている感じです。
※20.9.14追記:microSDカードさようなら
9月に入って、USB起動可能なブートローダーがリリースされました
まあ、今動かしている64ビット版の地デジ録画用microSDカードがどのくらいで壊れるかきになr人柱d
USB HDD起動に切り替えたところ、動作もずいぶん快適になりました。
ストレージの空き容量を多めに確保する
※21.1.1追記:
上記の対策を行ったにも関わらず、9月から12月にかけて、1ヶ月おきにフリーズすることがありました。これは仮説なのですが、どうもストレージの空き容量が20%を切ると、動作が不安定になる感じがしました。
安定動作のため、ストレージの空き容量は多めに(全体の30%、三分の一程度)開けておいたほうが良いように思えます。
そもそも、Raspberry PiをUSBストレージから起動した場合、microSDカードから起動した場合と比較して、レスポンス(応答速度)が早くキビキビと動く反面、定常時の負荷が高くなる傾向があるように思えます。具体的には、USBストレージから起動すると、ロードアベレージが常に1.0以上になります。
このあたり、本体の負荷/USBストレージの状態/動作の安定度に、なにか相関があるのかもしれません。
現在の安定した録画環境
現在は次の構成になりました。
- OSはUbuntu 20.04(64ビット)を使用
- Raspberry Pi本体はアーマーケースを使用
- ストレージ(HDD)とRaspberry Pi本体、チューナーを離して置く
- 注意:2020年9月現在、ハードウェア・エンコードは使用できないようです
- USB接続HDDブート
- Raspberry Pi 4でUSB接続HDDから64ビットUbuntu 20.04.1を起動してみました
microSDカードの負荷が大きいため、もしかすると32ビット版=半年よりも早く壊れるかもしれません。重要なファイルは必ずUSBストレージに置いて、microSDは壊れる前提で使いましょう。
このようなちょっとした変更ですが、今は1週間おきの再起動は不要で、安定した録画環境になりました。
さらに、HDDブートの64ビットOSに変えてから、サーバとしての反応が驚くほど軽くなりました。EPGStationの番組表表示や、番組の視聴・再生開始時の反応等、32ビット+microSDカードの時よりずいぶんキビキビと動くようになりました。
とはいえこれで完成ではなく、264ハードウェアデコーダー等、まだまだ改良すべき部分がありますので、追々記事にしたいと思います。
Raspberry Pi地デジ関連記事
- 2020年最終版
- 32ビット検証
- Ubuntu 20.04.1添付のffpmegは使ってはダメよ検証
- DLNA配信