Open1

Arducam B0263をRaspberry Pi 4Bで動かしたい

A.しおまねきA.しおまねき

Arducam B0263

Raspberry Pi 4B

B0263のドライバ

旧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を利用する場合の手順

  1. RaspberryPi OSをインストールするマイクロSDカードを用意し、USBポートを介してマウントしておく。
  2. raspios_armhf-2021-01-11のイメージファイルをダウンロードする。
  • https://downloads.raspberrypi.org/
  • 上記のURLからraspios_armhfraspios_full_armhfraspios_lite_armhfディレクトリからいずれかの版のディレクトリを選び、選んだフォルダ以下にあるimageファイルをダウンロードする。
  1. raspios_armhf-2021-03-18のbootファイルをダウンロードする。
  1. 必要ならRaspberryPi Imagerでパスワード、起動時にSSHを有効とする設定を施しておく。
  2. RaspberryPi Imagerでカスタムイメージを選択し、SDカードに書き込む。
  3. RaspberryPi Imagerによる書き込み終了時にSDカードがアンマウントされるので、USBポートに再挿入してWindowsにマウントする。
  4. raspios_armhf-2021-03-18のbootファイルの中で以下のファイルをSDカードの中にコピーする。なおWindowsで見ることのできるこのSDカードのフォルダは、RaspberryPi OSにおける/bootパーティションなので、WindowsでこのSDカードにコピーするということは/bootディレクトリにコピーすることになる。
  • bootcode.bin*.elf*.dat
  1. SDカードを取り出し、RaspberryPi 4Bのスロットに挿入し、電源を入れて起動させる。
  2. RaspberryPiにデスクトップもしくはSSHでログインする。
  3. piユーザーフォームディレクトリで以下のリポジトリをcloneする。
git clone https://github.com/ArduCAM/Arducam_OBISP_MIPI_Camera_Module.git
  1. レポジトリ内にあるインストールスクリプトを実行する。
cd ~/Arducam_OBISP_MIPI_Camera_Module/Release
./install_driver.sh
  1. 後はガイドの手順通り。