RaspberryPi3にカメラモジュールをセットした際に、動作確認ができない
Q&A
Closed
M1Macとraspberry Pi3をVNC接続し、カメラモジュールをセットした際に、カメラの動作確認ができないです...
解決方法を教えて下さい。
環境
- Raspbian 10.10
- Kernel 6.1.21-v8+
$ uname -a
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
やりたいこと
カメラの動作確認
エラー内容
libcamera-hello
コマンドでカメラが撮影するか動作確認をしようとすると以下のようになり、デスクトップには何も映りません。
$ libcamera-hello
Preview window unavailable
[0:21:09.698077314] [2241] INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70
[0:21:09.742500240] [2244] WARN RPI raspberrypi.cpp:1357 Mismatch between Unicam and CamHelper for embedded data usage!
[0:21:09.743516000] [2244] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media0
[0:21:09.744433910] [2241] INFO Camera camera.cpp:1028 configuring streams: (0) 1640x1232-YUV420
[0:21:09.744811404] [2244] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1640x1232-SBGGR10_1X10 - Selected unicam format: 1640x1232-pBAA
#0 (0.00 fps) exp 5557.00 ag 1.00 dg 1.35
#1 (30.00 fps) exp 5519.00 ag 1.00 dg 1.36
#2 (30.01 fps) exp 7504.00 ag 1.00 dg 1.00
vcgencmd get_camera
でカメラの状態を確認すると
$ vcgencmd get_camera
supported=0 detected=0, libcamera interfaces=1
カメラに対応されてない設定で、カメラが検知もされていない
試したこと
Docを参考に
> sudo raspi-config
コマンドを打った後に、
Advanced Optionsを選択し、Glamorを選択して、Yesを選択
その後、再起動
$ libcamera-hello
Preview window unavailable
[0:01:35.915636706] [2139] INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70
[0:01:35.976610496] [2140] WARN RPI raspberrypi.cpp:1357 Mismatch between Unicam and CamHelper for embedded data usage!
[0:01:35.977849843] [2140] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media1
[0:01:35.978765656] [2139] INFO Camera camera.cpp:1028 configuring streams: (0) 1640x1232-YUV420
[0:01:35.979243458] [2140] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1640x1232-SBGGR10_1X10 - Selected unicam format: 1640x1232-pBAA
#0 (0.00 fps) exp 9999.00 ag 1.11 dg 1.45
#1 (30.01 fps) exp 9999.00 ag 1.11 dg 1.45
#2 (30.01 fps) exp 9999.00 ag 1.61 dg 1.00
Preview window unavailable...
上記の表を参考に
dtoverlay=imx219
をboot/config.txt
に追加
結果変わらず...
環境変数の設定ができてない?
libcamera-still、libcamera-jpeg などを実行すると、すべての場合で「プレビュー ウィンドウが使用できません」というメッセージが表示されました。
問題は非常に単純で、DISPLAY 環境変数が欠如していることが判明しました。.bashrcファイルにimport DISPLAY=:0
を追加すると、プレビュー ウィンドウが表示されます。
ということで環境変数を設定してみる。
このサイトにはimport DISPLAY=:0
と書かれているが、おそらくexport DISPLAY=:0
との間違い
.bashrcに追記
export DISPLAY=:0
忘れずにsource ./bashrc
libcamera-hello
を実行すると、カメラは映らないが、結果が変わった!
$ libcamera-hello
Made X/EGL preview window
[0:40:20.101018802] [4295] INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70
[0:40:20.164019623] [4298] WARN RPI raspberrypi.cpp:1357 Mismatch between Unicam and CamHelper for embedded data usage!
[0:40:20.165546701] [4298] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media1
[0:40:20.167734923] [4295] INFO Camera camera.cpp:1028 configuring streams: (0) 1640x1232-YUV420
[0:40:20.168619295] [4298] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1640x1232-SBGGR10_1X10 - Selected unicam format: 1640x1232-pBAA
raspi-configで設定
上記サイトを参考に以下操作を行う
raspi-configでAdvanced Options → Glamorをenableに設定
設定しないとプレビューウィンドウを表示できない。
状況変わらず...
Interface Optionsの設定ができていない?
sudo raspi-config
Interface Optionsを選択
Legacy Camera を選択
カメラを使えるようにしますかと聞かれるので、<はい>を選択
再起動
まだ終わらない
config.txt
を書き換える必要がある
エディタはなんでもいいですが、ラズベリーパイのターミナルで以下のコマンドを打ち込んでください。
sudo nano config.txt
dtoveray=
のところを自分が使っているカメラモジュールに合わせて書き換える必要がある。
私はV2 cameraを使っているので、dtoveray=imx219
を記述
保存して再起動。
以下の写真を撮るコマンドで動作確認
libcamera-jpeg -n -o test.jpg
エラーを吐かれた...
[0:03:50.389231601] [1348] INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70
[0:03:50.432973560] [1349] WARN RPI raspberrypi.cpp:1357 Mismatch between Unicam and CamHelper for embedded data usage!
[0:03:50.434190326] [1349] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media2 and ISP device /dev/media0
[0:03:50.435114281] [1348] INFO Camera camera.cpp:1028 configuring streams: (0) 1640x1232-YUV420
[0:03:50.435611050] [1349] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1640x1232-SBGGR10_1X10 - Selected unicam format: 1640x1232-pBAA
[0:03:55.559988055] [1348] INFO Camera camera.cpp:1028 configuring streams: (0) 3280x2464-YUV420 (1) 3280x2464-SBGGR10_CSI2P
[0:03:55.562837367] [1349] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 3280x2464-SBGGR10_1X10 - Selected unicam format: 3280x2464-pBAA
[0:03:55.645415121] [1349] ERROR V4L2 v4l2_videodevice.cpp:1241 /dev/video14[14:cap]: Unable to request 1 buffers: Cannot allocate memory
[0:03:55.645538298] [1349] ERROR RPI raspberrypi.cpp:1133 Failed to allocate buffers
ERROR: *** failed to start camera ***
$ vcgencmd get_camera
supported=1 detected=0, libcamera interfaces=1
supported=1
となりましたが、detected=0
となっているので、カメラが検知されていない。
こちらを確認すると、
boot/config.txtファイルを参照し、dtoverlay=vc4-fkms-v3dまたはdtoverlay=vc4-kms-v3dが現在アクティブであることを確認して
とあり、確認したところ、config.txtにdtoverlay=vc4-fkms-v3d
は記述してありました。
どなたか助けてください。
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
overscan_left=20
overscan_right=20
overscan_top=20
overscan_bottom=20
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
dtoverlay=imx219
l Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Automatically load overlays for detected cameras
start_x=1
# Automatically load overlays for detected DSI displays
display_auto_detect=1
# Enable DRM VC4 V3D driver
#dtoverlay=vc4-kms-v3d
max_framebuffers=2
# Disable compensation for displays with overscan
disable_overscan=1
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[all]
[pi4]
dtoverlay=vc4-fkms-v3d
# Run as fast as firmware / board allows
arm_boost=1
[all]
gpu_mem=128