1{ lib, stdenv, fetchFromGitHub, kernel }:
2
3stdenv.mkDerivation rec {
4 version = "2.8.9";
5 name = "ena-${version}-${kernel.version}";
6
7 src = fetchFromGitHub {
8 owner = "amzn";
9 repo = "amzn-drivers";
10 rev = "ena_linux_${version}";
11 hash = "sha256-9Csrq9wM7Q99qPj7+NlnQgP6KcciNHMbAAb+Wg7eYAU=";
12 };
13
14 hardeningDisable = [ "pic" ];
15
16 nativeBuildInputs = kernel.moduleBuildDependencies;
17 makeFlags = kernel.makeFlags;
18
19 # linux 3.12
20 env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
21
22 configurePhase = ''
23 runHook preConfigure
24 cd kernel/linux/ena
25 export ENA_PHC_INCLUDE=1
26 substituteInPlace Makefile --replace '/lib/modules/$(BUILD_KERNEL)' ${kernel.dev}/lib/modules/${kernel.modDirVersion}
27 runHook postConfigure
28 '';
29
30 installPhase = ''
31 runHook preInstall
32 $STRIP -S ena.ko
33 dest=$out/lib/modules/${kernel.modDirVersion}/misc
34 mkdir -p $dest
35 cp ena.ko $dest/
36 xz $dest/ena.ko
37 runHook postInstall
38 '';
39
40 meta = with lib; {
41 description = "Amazon Elastic Network Adapter (ENA) driver for Linux";
42 homepage = "https://github.com/amzn/amzn-drivers";
43 license = licenses.gpl2Only;
44 maintainers = with maintainers; [ eelco sielicki ];
45 platforms = platforms.linux;
46 };
47}