1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 ivsc-driver,
6 kernel,
7 kernelModuleMakeFlags,
8}:
9
10stdenv.mkDerivation rec {
11 pname = "ipu6-drivers";
12 version = "unstable-2025-02-19";
13
14 src = fetchFromGitHub {
15 owner = "intel";
16 repo = "ipu6-drivers";
17 rev = "7af071481f3d2d3cef1e70113c10f62ac6351723";
18 hash = "sha256-pe7lqK+CHpgNWpC8GEZ3FKfYcuVuRUaWlW18D9AsrSk=";
19 };
20
21 patches = [
22 "${src}/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch"
23 ];
24
25 postPatch = ''
26 cp --no-preserve=mode --recursive --verbose \
27 ${ivsc-driver.src}/backport-include \
28 ${ivsc-driver.src}/drivers \
29 ${ivsc-driver.src}/include \
30 .
31 '';
32
33 nativeBuildInputs = kernel.moduleBuildDependencies;
34
35 makeFlags = kernelModuleMakeFlags ++ [
36 "KERNELRELEASE=${kernel.modDirVersion}"
37 "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
38 ];
39
40 enableParallelBuilding = true;
41
42 preInstall = ''
43 sed -i -e "s,INSTALL_MOD_DIR=,INSTALL_MOD_PATH=$out INSTALL_MOD_DIR=," Makefile
44 '';
45
46 installTargets = [
47 "modules_install"
48 ];
49
50 meta = {
51 homepage = "https://github.com/intel/ipu6-drivers";
52 description = "IPU6 kernel driver";
53 license = lib.licenses.gpl2Only;
54 maintainers = [ ];
55 platforms = [ "x86_64-linux" ];
56 # requires 6.10
57 broken = kernel.kernelOlder "6.10";
58 };
59}