Arducam 64MP camera on Raspberry Pi 4 fails recording above 1080p with buffer errors

Hi everyone, I’m stuck with an Arducam 64MP camera on my Raspberry Pi 4. When I run the Arducam installer it errors out with:

Cannot find the corresponding package, please send the following information to [email protected]

  • Hardware Revision: d03115
  • Kernel Version: 6.1.19-v8+
  • Package: 64mp_pi_hawk_eye_kernel_driver – bullseye-arm64-v5

Separately, I can’t get anything above 1080p to work. I’ve bumped GPU memory and CMA, but every resolution higher than 1920x1080 gives me buffer errors. Has anyone got this camera running at a higher resolution?

Welcome. That kernel version 6.1.19-v8+ is a hint - it usually means you ran rpi-update at some point. The driver package you’re trying to install (64mp_pi_hawk_eye_kernel_driver) is built against the stock bullseye-arm64-v5 kernel, so the installer can’t find a matching package for your kernel.

To help with the resolution issue, can you post your /boot/config.txt, /boot/cmdline.txt, and the picamera2 config you’re using for the working 1080p setup?

Here’s what I have. My working 1080p config is:

config = picam2.create_video_configuration(main={“size”: (1920,1080)}, display=None)

/boot/config.txt has:
gpu_mem=256
dtoverlay=vc4-kms-v3d,cma-512

And I added this to /boot/cmdline.txt:
alloc_in_cma_threshold=16

1080p records fine. Anything bigger just gives buffer errors.

OK, there are two separate things going on.

  1. The package error is because of that unsupported kernel. 6.1.19-v8+ comes from rpi-update. The Arducam 64MP kernel driver package is built for bullseye-arm64-v5, so the installer literally can’t find a matching package for your kernel.

  2. Trying to run the full 64MP resolution tends to produce that size error. 16MP (4624x3472) is the resolution that works well.

Here’s what I’d do:

  • Flash the official Raspberry Pi OS image from Raspberry Pi OS downloads – Raspberry Pi and don’t run rpi-update afterwards.
  • Add the Arducam 64MP device tree overlay. Run:
    sudo nano /boot/config.txt
    Then under the [all] section at the bottom add:
    dtoverlay=arducam-64mp
  • Reboot.
  • Use 4624x3472 (16MP). The highest resolution may still give the size error, but 16MP should work.

I tried the 4624x3472 resolution but video recording still fails. When it tries to start the H264 encoder I get ProcessLookupError: [Errno 3] No such process. Full log:

root@rpicamera-0004:/home/pi# python video-test.py
[23:21:57.504375418] [5812] INFO Camera camera_manager.cpp:299 libcamera v0.0.0+4225-74d023d8
[23:21:57.526716757] [5817] WARN CameraSensorProperties camera_sensor_properties.cpp:243 No static properties available for ‘arducam_64mp’
[23:21:57.526770109] [5817] WARN CameraSensorProperties camera_sensor_properties.cpp:245 Please consider updating the camera sensor properties database
[23:21:57.554703644] [5817] WARN RPI raspberrypi.cpp:1357 Mismatch between Unicam and CamHelper for embedded data usage!
[23:21:57.555601449] [5817] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/arducam_64mp@1a to Unicam device /dev/media2 and ISP device /dev/media1
[23:21:57.561419365] [5812] INFO Camera camera.cpp:1028 configuring streams: (0) 4624x3472-XBGR8888
[23:21:57.561748490] [5817] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/arducam_64mp@1a - Selected sensor format: 4624x3472-SRGGB10_1X10 - Selected unicam format: 4624x3472-pRAA
Traceback (most recent call last):
File “/home/pi/video-test.py”, line 25, in
picam2.start_recording(encoder, output, Quality.VERY_HIGH)
File “/usr/lib/python3/dist-packages/picamera2/picamera2.py”, line 1507, in start_recording
self.start_encoder(encoder, output, pts=pts, quality=quality)
File “/usr/lib/python3/dist-packages/picamera2/picamera2.py”, line 1466, in start_encoder
self.encoder.start()
File “/usr/lib/python3/dist-packages/picamera2/encoders/encoder.py”, line 212, in start
self._start()
File “/usr/lib/python3/dist-packages/picamera2/encoders/h264_encoder.py”, line 69, in _start
super()._start()
File “/usr/lib/python3/dist-packages/picamera2/encoders/v4l2_encoder.py”, line 136, in _start
fcntl.ioctl(self.vd, VIDIOC_STREAMON, typev)
ProcessLookupError: [Errno 3] No such process

video-test.py line 25 is:
picam2.start_recording(encoder, output, Quality.VERY_HIGH)

Any ideas what else I can try?

Thanks for the full log. Can you confirm what you’re actually running right now? In particular:

  • uname -r
  • cat /proc/cpuinfo | grep Revision
  • libcamera version
  • whether dtoverlay=arducam-64mp is present in /boot/config.txt

The sensor does register in the log, so the camera is detected. But the encoder dying at VIDIOC_STREAMON points again at the kernel/driver mismatch. I want to check whether you’re still on the rpi-update kernel.

Here’s my current environment:

  • Raspberry Pi 4 Model B
  • Arducam 64MP (arducam_64mp)
  • libcamera v0.0.0+4225-74d023d8
  • Kernel: 6.1.19-v8+
  • Hardware Revision: d03115
  • Package: 64mp_pi_hawk_eye_kernel_driver – bullseye-arm64-v5
  • gpu_mem=256
  • dtoverlay=vc4-kms-v3d,cma-512
  • alloc_in_cma_threshold=16 in /boot/cmdline.txt

I’ve already tried bumping GPU memory and CMA and added alloc_in_cma_threshold=16. 1080p is still the only resolution that works - anything higher gives buffer errors.

You’re still on kernel 6.1.19-v8+. That’s the rpi-update kernel, and that’s the core issue here. Adding dtoverlay=arducam-64mp and changing the resolution won’t help if the kernel underneath doesn’t match what the Arducam driver package expects.

To wrap it up:

  • Flash the official Raspberry Pi OS image and stay on its stock kernel (bullseye-arm64-v5). Don’t run rpi-update.
  • Make sure dtoverlay=arducam-64mp is in /boot/config.txt under [all], then reboot.
  • Use 4624x3472 (16MP). The full 64MP resolution can produce the size/buffer error, but 16MP works well.

Once you’re genuinely on the stock bullseye-arm64-v5 kernel, the installer should find the 64mp_pi_hawk_eye_kernel_driver package, and the encoder should start cleanly instead of dying at VIDIOC_STREAMON.