From 4235bd751823613a08e2b1a77ab62bac525cb928 Mon Sep 17 00:00:00 2001 From: Bart van der Braak Date: Sat, 9 Nov 2024 01:24:13 +0100 Subject: [PATCH] Refactor parts of yt6801 module --- tongfang/nixos/hardware-configuration.nix | 2 +- tongfang/nixos/yt6801/default.nix | 41 +++++++++++++---------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/tongfang/nixos/hardware-configuration.nix b/tongfang/nixos/hardware-configuration.nix index 7179604..3789c30 100644 --- a/tongfang/nixos/hardware-configuration.nix +++ b/tongfang/nixos/hardware-configuration.nix @@ -5,7 +5,7 @@ let yt6801 = import ./yt6801/default.nix { - inherit (pkgs) stdenv lib fetchzip bc; + inherit (pkgs) stdenv lib fetchzip; kernel = pkgs.linuxPackages.kernel; }; in diff --git a/tongfang/nixos/yt6801/default.nix b/tongfang/nixos/yt6801/default.nix index 718af5d..8c040ac 100644 --- a/tongfang/nixos/yt6801/default.nix +++ b/tongfang/nixos/yt6801/default.nix @@ -1,35 +1,40 @@ -{ kernel, stdenv, lib, fetchzip, bc }: +{ + kernel, + stdenv, + lib, + fetchzip, +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "yt6801"; version = "1.0.29"; src = fetchzip { url = "https://www.motor-comm.com/Public/Uploads/uploadfile/files/20240812/yt6801-linux-driver-1.0.29.zip"; sha256 = "sha256-oz6CeOUN6QWKXxe3WUZljhGDTFArsknjzBuQ4IchGeU="; + stripRoot = false; }; - hardeningDisable = [ "pic" "format" ]; - KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}"; - nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies; + nativeBuildInputs = kernel.moduleBuildDependencies; + + preConfigure = "cd src"; configurePhase = "true"; buildFlags = [ "modules" ]; - makeFlags = [ - "ARCH=${stdenv.hostPlatform.linuxArch}" - "KSRC_BASE=${KERNELDIR}" - "KSRC=${KERNELDIR}/build" - "KDST=kernel/drivers/net/ethernet/motorcomm" - "INSTALL_MOD_PATH=${placeholder "out"}" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; + makeFlags = + [ + "ARCH=${stdenv.hostPlatform.linuxArch}" + "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "CROSS_COMPILE=${stdenv.cc.targetPrefix}" + ]; installPhase = '' mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/ethernet/motorcomm - find . -name "*.ko" -exec cp {} $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/ethernet/motorcomm/ \; + cp src/yt6801.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/ethernet/motorcomm/ ''; enableParallelBuilding = true; @@ -37,8 +42,10 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Motorcomm yt6801 Network Interface Card driver"; homepage = "https://www.motor-comm.com/product/ethernet-control-chip"; - license = with licenses; [ gpl2Plus gpl2Only ]; + license = with licenses; [ + gpl2Plus + gpl2Only + ]; platforms = platforms.linux; - maintainers = with maintainers; [ bartvdbraak ]; }; }