at 18.03-beta 57 lines 1.5 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 nativeBuildInputs = kernel.moduleBuildDependencies; 24 25 hardeningDisable = [ "pic" ]; 26 27 preBuild = '' 28 substituteInPlace Makefile \ 29 --replace "\$(shell uname -r)" "${kernel.modDirVersion}" \ 30 --replace "/lib/modules" "${kernel.dev}/lib/modules" 31 ''; 32 33 installPhase = '' 34 mkdir -p $out/lib/modules/${kernel.modDirVersion}/misc 35 cp bbswitch.ko $out/lib/modules/${kernel.modDirVersion}/misc 36 37 mkdir -p $out/bin 38 tee $out/bin/discrete_vga_poweroff << EOF 39 #!/bin/sh 40 41 echo -n OFF > /proc/acpi/bbswitch 42 EOF 43 tee $out/bin/discrete_vga_poweron << EOF 44 #!/bin/sh 45 46 echo -n ON > /proc/acpi/bbswitch 47 EOF 48 chmod +x $out/bin/discrete_vga_poweroff $out/bin/discrete_vga_poweron 49 ''; 50 51 meta = with stdenv.lib; { 52 description = "A module for powering off hybrid GPUs"; 53 platforms = platforms.linux; 54 homepage = https://github.com/Bumblebee-Project/bbswitch; 55 maintainers = with maintainers; [ abbradar ]; 56 }; 57}