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