mirror of
https://github.com/bartvdbraak/dotfiles.git
synced 2025-04-27 14:41:20 +00:00
Working example of extra yt6801 module
This commit is contained in:
parent
1f1bdeff07
commit
f8ef5a9505
2 changed files with 29 additions and 36 deletions
|
@ -4,23 +4,20 @@
|
|||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
let
|
||||
yt6801Overlay = (final: prev: {
|
||||
yt6801-driver = import ./yt6801-driver.nix {
|
||||
inherit (pkgs) lib stdenv fetchFromGitHub nukeReferences bc;
|
||||
yt6801 = import ./yt6801-driver.nix {
|
||||
inherit (pkgs) lib stdenv fetchzip nukeReferences bc;
|
||||
kernel = pkgs.linuxPackages.kernel;
|
||||
};
|
||||
});
|
||||
in
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
nixpkgs.overlays = [ yt6801Overlay ];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ pkgs.yt6801-driver ];
|
||||
boot.extraModulePackages = [ yt6801 ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/c7cf28c3-5744-45cc-8a81-456d24e44b7a";
|
||||
|
|
|
@ -1,44 +1,40 @@
|
|||
{ lib, stdenv, fetchFromGitHub, kernel, bc, nukeReferences }:
|
||||
{ lib, stdenv, fetchzip, nukeReferences, bc, kernel }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "yt6801";
|
||||
version = "1.0.29";
|
||||
name = "${pname}-${version}-${kernel.version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bartvdbraak";
|
||||
repo = pname;
|
||||
rev = "ea9c2d01c0f2a4171a774527dce4daca43e11956";
|
||||
hash = "sha256-oz6CeOUN6QWKXxe3WUZljhGDTFArsknjzBuQ4IchGeU=";
|
||||
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;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ bc nukeReferences ] ++ kernel.moduleBuildDependencies;
|
||||
buildInputs = [ kernel.dev ];
|
||||
hardeningDisable = [ "pic" "format" ];
|
||||
KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}";
|
||||
nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies;
|
||||
|
||||
preBuild = ''
|
||||
cd src
|
||||
'';
|
||||
buildFlags = [ "modules" ];
|
||||
|
||||
patchPhase = ''
|
||||
substituteInPlace ./src/Makefile \
|
||||
--replace-fail 'KSRC_BASE = /lib/modules/$(shell uname -r)' "KSRC_BASE = ${KERNELDIR}" \
|
||||
--replace-fail 'sudo ls -l $(ko_dir)' "" \
|
||||
--replace-fail 'depmod $(shell uname -r)' "" \
|
||||
--replace-fail 'modprobe $(KFILE)' "" \
|
||||
--replace-fail '@modinfo $(ko_full)' ""
|
||||
'';
|
||||
makeFlags = [
|
||||
"ARCH=${stdenv.hostPlatform.linuxArch}"
|
||||
"KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||
"EXTRA_CFLAGS=-Wall -I${kernel.dev}/include"
|
||||
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./yt_nic_install.sh \
|
||||
--replace-quiet "/lib/modules" "$out/lib/modules/${kernel.modDirVersion}" \
|
||||
--replace-quiet "/sbin/depmod" "# depmod"
|
||||
substituteInPlace ./src/Makefile \
|
||||
--replace-quiet "/lib/modules" "$out/lib/modules/${kernel.modDirVersion}" \
|
||||
--replace-quiet "KSRC_BASE = /lib/modules/$(shell uname -r)" \
|
||||
"KSRC_BASE = ${kernel.dev}/lib/modules/${kernel.modDirVersion}"
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/ethernet/motorcomm"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
nuke-refs $out/lib/modules/*/kernel/drivers/net/ethernet/motorcomm/*.ko
|
||||
'';
|
||||
|
||||
INSTALL_MOD_PATH = placeholder "out";
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
|
|
Loading…
Reference in a new issue