46 lines
1.5 KiB
Nix
46 lines
1.5 KiB
Nix
{ config, lib, ... }:
|
|
{
|
|
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";
|
|
};
|
|
|
|
systemd.services.v4l2-relayd-ipu6 = {
|
|
preStart = lib.mkOverride 40 ''
|
|
mkdir -p "$(dirname "$V4L2_DEVICE_FILE")"
|
|
${config.boot.kernelPackages.v4l2loopback.bin}/bin/v4l2loopback-ctl \
|
|
add --name "Intel MIPI Camera" --exclusive-caps=1 --buffers 8 \
|
|
${toString config.hardware.ipu6.videoDeviceNumber} || [ $? -eq 17 ]
|
|
echo /dev/video${toString config.hardware.ipu6.videoDeviceNumber} > "$V4L2_DEVICE_FILE"
|
|
'';
|
|
};
|
|
}
|