Open1
Arducam B0263をRaspberry Pi 4Bで動かしたい
Arducam B0263
- Arducam 1MP*2 Stereo Camera for Raspberry Pi, Nvidia Jetson Nano/Xavier NX, Dual OV9281 Monochrome Global Shutter Camera Module
- https://www.arducam.com/product/arducam-1mp-stereo-camera-for-raspberry-pi-nvidia-jetson-nano-xavier-nx-dual-ov9281-monochrome-global-shutter-camera-module/
- https://www.switch-science.com/products/7053?_pos=1&_sid=5dd4706c8&_ss=r
Raspberry Pi 4B
- https://www.raspberrypi.com/products/raspberry-pi-4-model-b/
- RaspberryPi OSのリリースノート
- 現リリース 2022-09-22のカーネルは kernel 5.15.61
B0263のドライバ
- Camarray – Arducam 1MP*2 Stereo Camera MIPI Module
- レポジトリ
- インストールガイドではv1.0のダウンロードが指示されているがレポジトリにはすでにv2.0がある。v2.0にはカーネル4.19.118+、5.4.51+、5.4.51-v7、5.4.51-v7l+が追加された。5.4.51に対応しているのは raspios_armhf 2020-08-20
旧Rasberrypi OSにダウングレードできない問題
- カーネル5.4.xのraspiosはRaspberry 4Bでの起動に失敗する。
start4.elf is not compatible
- カーネル5.4.xはraspios_armhf-2021-01-11まで。raspios_armhf-2021-03-04でカーネル5.10.63に上げられた。このraspios以降は起動できる。
-
start4.elf
はGPU firmware。ソースコードは見つけられない。恐らく非公開なのだろう。 - raspios_armhf-2021-01-11の
/boot/start4.elf
をraspios_armhf-2021-03-04のものやgithubにある最新のものに差し替えてみたが起動中にカーネルパニックで止まってしまった。
旧ブートローダーにダウングレードできない問題
- 2021-03-18より前のcriticalブートローダーをリカバリー機能で書き込もうとしても動作しない。これ以降のブートローダーではカーネル5.4.xのraspiosでRaspberry 4Bが起動できない。
- 以下はraspios_armhf-2021-01-11でカーネルを含むパッケージ。
pi@raspberrypi:~ $ apt show raspberrypi-kernel=1.20210108-1
Package: raspberrypi-kernel
Version: 1.20210108-1
Status: install ok installed
Priority: optional
Section: kernel
Source: raspberrypi-firmware
Maintainer: Serge Schneider <serge@raspberrypi.org>
Installed-Size: 281 MB
Provides: linux-image
Breaks: raspberrypi-bootloader (<< 1.20160324-1)
Replaces: raspberrypi-bootloader (<< 1.20160324-1)
Homepage: https://github.com/raspberrypi/firmware
Download-Size: unknown
APT-Manual-Installed: yes
APT-Sources: /var/lib/dpkg/status
Description: Raspberry Pi bootloader
This package contains the Raspberry Pi Linux kernel.
ドライバーのビルドは失敗する
- 現行のraspios_armhf-2022-09-26でドライバレポジトリ内にある
build_driver.sh
でカーネルのビルドを試みて見たが、以下のエラーで失敗する。
drivers/media/i2c/arducam.c: In function ‘arducam_probe’:
drivers/media/i2c/arducam.c:1458:8: error: implicit declaration of function ‘v4l2_async_register_subdev_sensor_common’; did you mean ‘v4l2_async_register_subdev_sensor’? [-Werror=implicit-function-declaration]
1458 | ret = v4l2_async_register_subdev_sensor_common(&arducam->sd);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| v4l2_async_register_subdev_sensor
- ビルドエラーへの対応方法
RaspberryPi 4Bでraspios_armhf-2021-01-11でArducam B0263を動かす方法
概要
- RaspberryPi 4Bでraspios_armhf-2021-01-11を動かすために
/boot
にraspios_armhf-2021-03-04のファイルをコピーしてstart4.elf is not compatible
を回避する。- この
/boot
ディレクトリに含まれるファイルはfirmwareという名前のレポジトリで管理されている。 - raspios_armhf-2021-03-04以降の
/boot
ファイルでも起動できるかもしれないが、ここでは保守的に次のリリースの/boot
ファイルを用いた。
- この
- ガイドと異なりArducam_OBISP_MIPI_Camera_Moduleレポジトリをcloneし、レポジトリ内のインストールスクリプトを実行する。
Windowsを利用する場合の手順
- RaspberryPi OSをインストールするマイクロSDカードを用意し、USBポートを介してマウントしておく。
- raspios_armhf-2021-01-11のイメージファイルをダウンロードする。
- https://downloads.raspberrypi.org/
- 上記のURLから
raspios_armhf
、raspios_full_armhf
、raspios_lite_armhf
ディレクトリからいずれかの版のディレクトリを選び、選んだフォルダ以下にあるimageファイルをダウンロードする。
- raspios_armhf-2021-03-18のbootファイルをダウンロードする。
- 必要ならRaspberryPi Imagerでパスワード、起動時にSSHを有効とする設定を施しておく。
- RaspberryPi Imagerでカスタムイメージを選択し、SDカードに書き込む。
- RaspberryPi Imagerによる書き込み終了時にSDカードがアンマウントされるので、USBポートに再挿入してWindowsにマウントする。
- raspios_armhf-2021-03-18のbootファイルの中で以下のファイルをSDカードの中にコピーする。なおWindowsで見ることのできるこのSDカードのフォルダは、RaspberryPi OSにおける
/boot
パーティションなので、WindowsでこのSDカードにコピーするということは/boot
ディレクトリにコピーすることになる。
-
bootcode.bin
、*.elf
、*.dat
- SDカードを取り出し、RaspberryPi 4Bのスロットに挿入し、電源を入れて起動させる。
- RaspberryPiにデスクトップもしくはSSHでログインする。
-
pi
ユーザーフォームディレクトリで以下のリポジトリをcloneする。
git clone https://github.com/ArduCAM/Arducam_OBISP_MIPI_Camera_Module.git
- レポジトリ内にあるインストールスクリプトを実行する。
cd ~/Arducam_OBISP_MIPI_Camera_Module/Release
./install_driver.sh
- 後はガイドの手順通り。