接続する場所を間違えてて2時間ぐらい悩んだ・・・
遭遇したエラー
$ raspistill -w 1920 -h 1080 -o try.jpg
mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
mmal: Failed to create camera component
mmal: main: Failed to create camera component
mmal: Camera is not detected. Please check carefully the camera module is installed correctly
どうやらカメラが認識できていないようだ・・・
接続場所
HDMI端子とAV端子の間が正しい。
SDカードを差し込む所の上に同じような端子があるがそこではない。
(ここにカメラモジュールを接続するとLEDが常時光りっぱなしになるので、疑わなかった。。。)
どうやらDISPLAY用のスロットらしい。
ちなみに正しい挙動は撮影時にのみ、LEDライトが光る。
調べたこと
接続場所の間違いに気づくまでにいろいろ調べたことも一応メモしておく。
認識されない事例が多かっただけに余計発覚が遅れた。
カメラが有効になっているかどうか
$ sudo raspi-config
5 Interfacing Options
=> P1 Camera
=> Yes
カメラが認識できているかどうか
$ vcgencmd get_camera
supported=1 detected=0
接続場所が違ったので当然認識されてない。
カメラ自体の確認
カメラモジュールのレンズの下のSUNNYと書かれている端子が外れていると認識されないらしい。
外れてたらしっかりと差し込もう。
今回はちゃんと接続されていた。
他ドライバとの干渉
spiやi2cと干渉するかもしれないとの記事を発見したので。
modprobeのblacklistを作成し、ブート時にロードするモジュールを制御する。
$ sudo vi /etc/modprobe.d/raspi-blacklist.conf
blacklist spi-bcm2708
blacklist i2c-bcm2708
$ sudo chmod 644 /etc/modprobe.d/raspi-blacklist.conf
$ sudo reboot
当然変化なし。
まとめ
色々設定とか試してみる前に物理的な要素をしっかり確認しよう。
間違った端子の方を何度も差し直してみたりしたけど、もう一個同じような端子があるのに気づかなかった。