at v206 53 lines 1.4 kB view raw
1{ stdenv, fetchurl, fetchpatch, kernel }: 2 3let 4 baseName = "bbswitch"; 5 version = "0.8"; 6 name = "${baseName}-${version}-${kernel.version}"; 7 8in 9 10stdenv.mkDerivation { 11 inherit name; 12 13 src = fetchurl { 14 url = "https://github.com/Bumblebee-Project/${baseName}/archive/v${version}.tar.gz"; 15 sha256 = "0xql1nv8dafnrcg54f3jsi3ny3cd2ca9iv73pxpgxd2gfczvvjkn"; 16 }; 17 18 patches = [ (fetchpatch { 19 url = "https://github.com/Bumblebee-Project/bbswitch/pull/102.patch"; 20 sha256 = "1lbr6pyyby4k9rn2ry5qc38kc738d0442jhhq57vmdjb6hxjya7m"; 21 }) ]; 22 23 preBuild = '' 24 substituteInPlace Makefile \ 25 --replace "\$(shell uname -r)" "${kernel.modDirVersion}" \ 26 --replace "/lib/modules" "${kernel.dev}/lib/modules" 27 ''; 28 29 installPhase = '' 30 mkdir -p $out/lib/modules/${kernel.modDirVersion}/misc 31 cp bbswitch.ko $out/lib/modules/${kernel.modDirVersion}/misc 32 33 mkdir -p $out/bin 34 tee $out/bin/discrete_vga_poweroff << EOF 35 #!/bin/sh 36 37 echo -n OFF > /proc/acpi/bbswitch 38 EOF 39 tee $out/bin/discrete_vga_poweron << EOF 40 #!/bin/sh 41 42 echo -n ON > /proc/acpi/bbswitch 43 EOF 44 chmod +x $out/bin/discrete_vga_poweroff $out/bin/discrete_vga_poweron 45 ''; 46 47 meta = with stdenv.lib; { 48 description = "A module for powering off hybrid GPUs"; 49 platforms = platforms.linux; 50 homepage = https://github.com/Bumblebee-Project/bbswitch; 51 maintainers = with maintainers; [ abbradar ]; 52 }; 53}