Raspberry pi4でCamera module v2接続時のエラーと要因解析

2021-09-27

はじめに

Raspberry pi4が届きました。こいつを使って植物の映像配信でもやろうかと思ってセットアップを行っています。 ※恐らくシステム組んだら満足してそこまでやらないと思いますが…

今回は、Rraspberry pi4にCamera moduelを差し込んで画像を表示できるようにするところまでを進めます。 その道中に出会ったエラー対応を粛々と記録に残します。

なお、こうしたら良いだろうというところまでは当たりを付けましたが解決まで出来ていないです。

camera moduleのセットアップ

フラットケーブルを差し込んでおきます。

vcgencmd get_camera
supported=1 detected=1

となれば準備完了です。detected=1とならない場合はフラットケーブルが逆に刺さっているとか、差し込みが甘いとかそのあたりを疑いましょう。

gst-rpicamsrcのビルド

先ずは必須パッケージをインストールします。 その後、gitからソースコードを落としておいて準備OKです。

sudo apt install libgstreamer1.0-dev  libgstreamer-plugins-base1.0-dev
sudo git clone https://github.com/thaytan/gst-rpicamsrc.git

ビルドしてインストールしていおきます。

sudo chown -R pi:pi gst-rpicamsrc/
cd gst-rpicamsrc/
./autogen.sh  --prefix=/usr --libdi=/usr/lib/am-linux-gnueabihf/
sudo make
sudo make install
gst-inspect-1.0 | grep rpicamsrc

このコマンドを打ち込み、結果としてこのようなものが表示されたらイントール成功とします。

rpicamsrc:  rpicamsrc: Raspberry Pi Camera Source
rpicamsrc:  rpicamsrcdeviceprovider (GstDeviceProviderFactory)

これで使えるようになったはずです。

Camneraを使ってjpeg画像を保存してみる

動作確認のために、画像を保存してみましょう。

sudo raspistill -o test.jpeg

そうなのです。通常これで動くんですよ。 動かないことがあるんですねぇ。

 Error対応

こんなエラーが出たら震えてください。貴方は運が良い。 クソみたいなエラー対応地獄を味わえるのだから…

sudo raspistill -o image.webp
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

VRAMサイズを大きくしてみる

VRAMのサイズが小さいから大きくしたらなおるよってやつ。 当方の環境では駄目でした。

sudo cp /boot/config.txt /boot/config.txt.back
sudo vim /boot/config.txt

gpu_mem=128 とあるのでこれをgpu_mem=144に変えると良いらしいです。

ツール群のアップデート対応

これで結構治ることもあるんですけどね…駄目でしたね。

sudo apt update
sudo apt full-upgrade

更新をして行きましょう。カーネルやファームウェアはパッケージとしてインストールされているのでこの手順更新されます。

この方法での間違った対応

調べていると幾つか誤った対応というものも転がっています。 100%間違いってわけでもないですが…適切ではないです。

sudo rpi-update

このコマンドの場合、プレリリース版がインストールされます。 不安定な動作もあることがあるため、リスクのあるコマンドだと理解して使用したほうが良いです。

公式ドキュメント

カメラを専有してるプロセスを殺す

その他の事例では、PiCamをすでに別のプログラムで専有していることがあってこのエラーが出ることもあるようです。

ps -aux |grep なんか使ってそうなツール名

これで調べてプロセス殺すのが鉄板対応ですかね。

OS再インストール

ほかはmmal関係のプログラムが衝突して動かないってパターンもあるみたいです。

リセットボタン押せとか、再起動しろとかそんな生ぬるい。 クソ環境を作った代償は、環境の再構築で治すしかない。畜生…

一つ一つ調べて潰すのは酷なので、OSインストール対応が良さそうです。

【真因】Raspberry pi camera module enable “Raspistill”

Raspberry pi camera module enable “Raspistill”

This problem only occur in camera raspberry pi V2.1 (IMX219) from Element14. But in camera raspberry pi V2.1 from OKdo, i don't get this error

Raspberry pi4と、Element14のCamera moduel V2.1の組み合わせで使うとErrorがでるようです。 ひとまず回避策としては、別の動くCamera moduleを使って、raspistillを実行して初期化してあげれば良いようなのですが… さて一つだけの場合はどうしたものか。

 まとめ

Raspi cameraは通常そこまでハマるポイントは潜んでいないのですが、ハズレを引くとホント駄目。つかれたよパトラッシュ・・・

Raspi上カメラも検出されて、設定も許可されているのにエラーがでたときは色々ためすのも一つですが、諦めてOS再インストールが良いかもしれないですね。 あとは動いている機材が手元にあるのであれば、切り替えて試すのも一つです。 むしろカメラを利用するなら一番初めに動かせることを確認して試すのがいいかと。