pinwheel: enable IPU6 MIPI webcam (ov08x40)

Adds hardware.ipu6 for the built-in MIPI camera, plus two overlay
fixes needed for it to actually work on this hardware:

- Pin icamerasrc-ipu6epmtl to the same release tag already used by
  ipu6-camera-bins/ipu6-camera-hal (20250923_ov02e). The version
  nixpkgs currently pulls is an Intel internal IoT/Panther-Lake
  validation build whose device table only lists external USB
  AR0234 test sensors, never the real ov08x40, so the camera never
  gets selected.

- Patch ipu6-camera-hal's hardcoded IVSC/CVS entity name from
  "Intel IVSC CSI" (the out-of-tree ivsc driver's name) to "Intel
  CVS" (the mainlined intel_cvs driver's name). The mismatch broke
  I2C bus address resolution for the sensor, which cascaded into
  wrong stream configs and black/missing video.
This commit is contained in:
Alexander Heldt committed 2026-09-29 08:25:37 +02:00
1 parent 64d786553e
commit c795bcd492
1 file changed
+34
+34
View File
@@ -0,0 +1,34 @@
{ ... }:
{
nixpkgs.overlays = [
(final: prev: {
ipu6epmtl-camera-hal = prev.ipu6epmtl-camera-hal.overrideAttrs (old: {
postPatch = (old.postPatch or "") + ''
substituteInPlace src/v4l2/MediaControl.cpp \
--replace-fail 'static const string ivscName = "Intel IVSC CSI";' \
'static const string ivscName = "Intel CVS";'
'';
});
gst_all_1 = prev.gst_all_1 // {
icamerasrc-ipu6epmtl = (prev.gst_all_1.icamerasrc-ipu6epmtl.override {
ipu6-camera-hal = final.ipu6epmtl-camera-hal;
}).overrideAttrs
(old: {
version = "20250923_ov02e";
src = final.fetchFromGitHub {
owner = "intel";
repo = "icamerasrc";
tag = "20250923_ov02e";
hash = "sha256-mKRK0Z3dnyvzvoL6BotpVFRtkb53GQw9wUOrHIUoEsA=";
};
});
};
})
];
hardware.ipu6 = {
enable = true;
platform = "ipu6epmtl";
};
}