about summary refs log tree commit diff
path: root/pkgs/os-specific/linux/iwlwifi/default.nix
blob: 8859f7346b51543a60adffc0918bc7c019f5dd63 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{stdenv, fetchurl, kernel}:

stdenv.mkDerivation {
  name = "iwlwifi-1.2.23";

  src = fetchurl {
    url = http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-1.2.23.tgz;
    sha256 = "0a4szjgg5b2jj4ax85lakqa951ph6pw5wpwlrw3mnmvcda5ayiip";
  };

  preBuild = ''
    substituteInPlace scripts/generate_compatible \
      --replace '/usr/bin/env /bin/bash' $shell
    substituteInPlace Makefile \
      --replace /sbin/depmod true

    # Urgh, we need the complete kernel sources for some header
    # files.  So unpack the original kernel source tarball and copy
    # the configured include directory etc. on top of it.
    kernelVersion=$(cd ${kernel}/lib/modules && ls)
    kernelBuild=$(echo ${kernel}/lib/modules/$kernelVersion/source)
    tar xvfj ${kernel.src}
    kernelSource=$(echo $(pwd)/linux-*)
    cp -prd $kernelBuild/* $kernelSource

    makeFlags=KSRC=$kernelSource
    make $makeFlags || true
    make $makeFlags

    installFlags=KMISC=$out/lib/modules/$kernelVersion/misc
  ''; # */

  meta = {
    description = "Intel Wireless WiFi Link drivers for Linux";
    homepage = http://www.intellinuxwireless.org/;
  };
}