liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

2410.nix (2475B)


      1 {
      2   fetchFromGitHub,
      3   pkgsBuildBuild,
      4   lib,
      5 }:
      6 let
      7   src = fetchFromGitHub {
      8     name = "openwrt-source";
      9     repo = "openwrt";
     10     owner = "openwrt";
     11     rev = "refs/tags/v24.10.0-rc4";
     12     hash = "sha256-7edkUCTfGnZeMWr/aXoQrP4I47iXhMi/gUxO2SR+Ylc=";
     13   };
     14   kernelVersion = "6.6.67";
     15   kernelSeries = lib.versions.majorMinor kernelVersion;
     16   doPatch = family: ''
     17     cp -av --no-preserve=mode,ownership ${src}/target/linux/generic/files/* .
     18     cp -av --no-preserve=mode,ownership ${src}/target/linux/${family}/files/* .
     19     test -d ${src}/target/linux/${family}/files-${kernelSeries}/ && \
     20     cp -av --no-preserve=mode,ownership ${src}/target/linux/${family}/files-${kernelSeries}/* .
     21     patches() {
     22       for i in $* ; do patch --batch --forward -p1 < $i ;done
     23     }
     24     patches ${src}/target/linux/generic/backport-${kernelSeries}/*.patch
     25     patches ${src}/target/linux/generic/pending-${kernelSeries}/*.patch
     26     patches ${src}/target/linux/generic/hack-${kernelSeries}/*.patch
     27     patches ${src}/target/linux/${family}/patches-${kernelSeries}/*.patch
     28     patches \
     29       ${./make-mtdsplit-jffs2-endian-agnostic.patch} \
     30       ${./fix-mtk-wed-bm-desc-ptr.patch} 
     31   '';
     32 in
     33 {
     34   inherit src;
     35 
     36   # The kernel sources typically used with this version of openwrt
     37   # You can find this in `include/kernel-5.15` or similar in the
     38   # openwrt sources
     39   kernelSrc = pkgsBuildBuild.fetchurl {
     40     name = "linux.tar.gz";
     41     url = "https://cdn.kernel.org/pub/linux/kernel/v${lib.versions.major kernelVersion}.x/linux-${kernelVersion}.tar.gz";
     42     hash = "sha256-Vj6O6oa83xzAF3FPl6asQK2Zrl7PaBCVjcUDq93caL4=";
     43   };
     44   inherit kernelVersion;
     45 
     46   applyPatches.ath79 = doPatch "ath79";
     47   applyPatches.ramips = doPatch "ramips";
     48   applyPatches.mediatek = doPatch "mediatek"; # aarch64
     49   applyPatches.mvebu = doPatch "mvebu"; # arm
     50 
     51   applyPatches.rt2x00 = ''
     52     PATH=${pkgsBuildBuild.patchutils}/bin:$PATH
     53     for i in ${src}/package/kernel/mac80211/patches/rt2x00/6*.patch ; do
     54       fixed=$(basename $i).fixed
     55       sed '/depends on m/d'  < $i | sed 's/CPTCFG_/CONFIG_/g' | recountdiff | filterdiff -x '*/local-symbols' > $fixed
     56       case $fixed in
     57         606-*)
     58           ;;
     59         611-*)
     60           filterdiff -x '*/rt2x00.h' < $fixed | patch --forward -p1
     61           ;;
     62         601-*|607-*)
     63           filterdiff -x '*/rt2x00_platform.h' < $fixed | patch --forward -p1
     64           ;;
     65         *)
     66           cat $fixed | patch --forward -p1
     67           ;;
     68       esac
     69     done
     70   '';
     71 }