at master 64 lines 1.8 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchzip, 5 kmod, 6 kernel, 7}: 8 9let 10 modDestDir = "$(out)/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/ethernet/motorcomm"; 11 12in 13stdenv.mkDerivation (finalAttrs: { 14 pname = "yt6801"; 15 version = "1.0.30-20250430"; 16 17 src = 18 let 19 version-split = lib.strings.splitString "-" finalAttrs.version; 20 versionName = builtins.elemAt version-split 0; 21 uploadDate = builtins.elemAt version-split 1; 22 in 23 fetchzip { 24 stripRoot = false; 25 url = "https://www.motor-comm.com/Public/Uploads/uploadfile/files/${uploadDate}/yt6801-linux-driver-${versionName}.zip"; 26 sha256 = "sha256-6HeU3bbTaKOCy3X+nMpC9/bBc+0c4Ip5TdG+LGUGTKk="; 27 }; 28 29 nativeBuildInputs = kernel.moduleBuildDependencies ++ [ kmod ]; 30 31 patches = 32 lib.optionals (lib.versionAtLeast kernel.version "6.15") [ 33 ./kernel_6.15_fix.patch 34 ] 35 ++ lib.optionals (lib.versionAtLeast kernel.version "6.16") [ 36 ./kernel_6_16_fix.patch 37 ]; 38 39 postPatch = '' 40 substituteInPlace src/Makefile \ 41 --replace-fail "sudo ls -l" "ls -l" \ 42 --replace-fail 'depmod $(shell uname -r)' "" \ 43 --replace-fail 'modprobe $(KFILE)' "" 44 ''; 45 46 makeFlags = [ 47 "KERNELRELEASE=${kernel.modDirVersion}" 48 "KSRC_BASE=" 49 "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" 50 "KDST=kernel/drivers/net/ethernet/motorcomm" 51 "INSTALL_MOD_PATH=${placeholder "out"}" 52 "ko_dir=${modDestDir}" 53 "ko_full=${modDestDir}/yt6801.ko.xz" 54 ]; 55 56 meta = { 57 homepage = "https://www.motor-comm.com/product/ethernet-control-chip"; 58 description = "YT6801 Gigabit PCIe Ethernet controller chip"; 59 license = lib.licenses.gpl2Plus; 60 maintainers = with lib.maintainers; [ indexyz ]; 61 platforms = lib.platforms.linux; 62 sourceProvenance = with lib.sourceTypes; [ fromSource ]; 63 }; 64})