{ stdenv, lib, fetchurl, fetchFromCodeberg, linuxManualConfig, ... }: let pmaportsRev = "ecd710af96ac54650e945a268639f4a7cbc47960"; pmaports = "https://gitlab.postmarketos.org/postmarketOS/pmaports/-/raw/${pmaportsRev}/device/community/linux-postmarketos-allwinner"; patches = [ { file = "0001-dts-add-dontbeevil-pinephone-devkit.patch"; hash = "sha256-zNUKUmg2Nfyeep3QxV0TKxU8HKrRrHZ4oRsE0DO7f2s="; } { file = "0002-dts-add-pinetab-dev-old-display-panel.patch"; hash = "sha256-TDlsfSeG5aPLKTKLEtKr/SMecVruWPW8vgcYUmRhMcs="; } { file = "0003-dts-pinetab-add-missing-ohci1.patch"; hash = "sha256-7rQ0O8yabfSyAL/cvrh9fIC3tMOkEkE7BfUDSOd+Mc8="; } { file = "0004-dts-pinetab-make-audio-routing-consistent-with-pinep.patch"; hash = "sha256-pt0zF7pEW2rtcI+HziOfOmCwoza2xKWZXrwUDai4OL8="; } { file = "0005-dts-pinephone-drop-modem-power-node.patch"; hash = "sha256-aPkA5Zz2Dt0VcixVNoT43EEcTzFdahEiThNfkmJ8jn8="; } { file = "0006-drm-panel-simple-Add-Hannstar-TQTM070CB501.patch"; hash = "sha256-9Dw9EXCB2TLzysQlqvnOenTqjF86tF14VjN9b4hMbrs="; } { file = "0007-ARM-dts-sun6i-Add-GoClever-Orion-70L-tablet.patch"; hash = "sha256-LardzbENRbPjDZrfd+r5sTYBd4hfy0EbkISK1zlJT/U="; } { file = "0008-drm-panel-simple-Add-Hannstar-HSD070IDW1-A.patch"; hash = "sha256-Ojb0+9yLyJzH2AM2ayvOdZKg7DFnMOvyp4sFALbJiOQ="; } { file = "0009-ARM-dts-sun6i-Add-Lark-FreeMe-70.2S-tablet.patch"; hash = "sha256-IchiHgAUEwED/biPUmpJiT+SBeEoDhywBM7Vz7RVsBY="; } { file = "0010-eMMC-workaround.patch"; hash = "sha256-ZlBH99pI74/1BkbAXUrrNyaUIvDqSKaI0FopA72Y6IQ="; } { file = "0011-arm64-dts-allwinner-orangepi-3-fix-ethernet.patch"; hash = "sha256-MIx4plKsTxhJAthGATi1Fh0er8YuMNrPqGqFuIsHfTI="; } ]; config-aarch64 = fetchurl { url = "${pmaports}/config-postmarketos-allwinner.aarch64"; hash = "sha256-tr2J3pu+jquA7P0pp/G4FFq5sypxGEK/WYvCM0KVaS0="; }; config-armv7 = fetchurl { url = "${pmaports}/config-postmarketos-allwinner.armv7"; hash = "sha256-YIIhFtcKlX+PVC9SobCm4c4keSvE2BHQYZzm4x+xkSU="; }; in linuxManualConfig rec { version = "6.18.3"; src = fetchFromCodeberg { owner = "megi"; repo = "linux"; rev = "orange-pi-6.18-20260105-0049"; hash = "sha256-Gb2L8t8DBnTHNeUtYSM2FC0DthlBIwjRzsXyVCH76Ms="; }; kernelPatches = lib.map (patch: { name = (lib.replaceString ".patch" "" patch.file); patch = fetchurl { url = "${pmaports}/${patch.file}"; hash = patch.hash; }; }) patches; configfile = if stdenv.hostPlatform.isAarch64 then config-aarch64 else if stdenv.hostPlatform.isAarch32 then config-armv7 else throw "Unsupported architecture: ${stdenv.hostPlatform.system}"; allowImportFromDerivation = true; extraMeta = { description = "Kernel fork with Pine64 patches (megi's tree, slightly patched)"; homepage = "https://megous.com/git/linux/"; license = lib.licenses.gpl2Only; maintainers = []; }; }