RaspberryPi+Motionでカメラ画像が極端に暗く(黒く)なる場合の対処法


TL;DR

  • Motionでカメラ画像をキャプチャしたとき、画面がほぼ真っ暗(真っ黒)になる
  • 構成はRaspberry pi OS 11.2とPiカメラv2.1互換モジュール
  • 原因はOSとカメラモジュールのバージョン相性によるもの。レガシーカメラを有効にすれば解決する
  • USBウェブカメラを使っていて画面が黒くなる場合の対処法はわかりません

構成

  • Raspberry Pi Zero W
  • Raspberry Pi OS Lite Bullseye 11.2
  • Pi Camera module v2.1(秋葉原で買った互換品)

闇しかキャプチャできない

意気揚々とMotionを立ち上げたら画面に闇が映った。完全な暗黒である。

原因がわからないのでとりあえずググり、同じ悩みに直面した海外民のconfレシピ(参考リンク欄参照)を参考にしつつ設定チューニングに勤しみ4時間、ほんの小指ほどマシになる↓

(ティッシュを撮影しているので真ん中にボヤっとしている何かがかろうじて見えるはず)
自国の言語ではあまりこれを改善とは言わない。

しかし libcamera-hello をしてみるときちんと色鮮やかに画像が撮影できるのでカメラが壊れているとかではなさそう。
さらに深追いすると、原因は全く別のところにあることがわかりました。

原因と対処法

今回の問題の原因は、レガシーカメラモジュールの設定をONにしていないことでした。
以下ONにするための手順:

  1. Raspberry pi configurationを開く。 sudo raspi-config
  2. 3 Interface Options を選択。
  3. I1 Legacy Cameraを選択。
  4. あとは出てくる質問に対してYesとかOKとか答えてRaspberry pi configurationを終了する。再起動する。

これで闇問題が解決するはずです。

なんでこんなのが必要になってるの

公式ドキュメンテーションによると、Bullseyeからカメラ周りの設定が一新された様子。経緯や背景はよくわからん…。
多分この口ぶりから察すると、そもそもBullseyeを使わなければこの問題は起きないかも。古いOSを使うのもこの問題の解決策としてアリかもしれません。(未検証ですが)

参考リンク

  • 今回の問題では見当違いだったけど、秘伝のタレ系。confファイルのチューニングの参考にどうぞ

  • レガシーカメラ何ぞや問題(あまり答え出てない)