From 62e9429908605b5f2a1449cf413f8a890d23de82 Mon Sep 17 00:00:00 2001 From: Arie Middelkoop Date: Thu, 26 Jan 2012 01:02:22 +0000 Subject: Added the 'bbswitch' module, which is a more conventient module for powering off/on nvidia graphics cards than possible via the acpi_call module. svn path=/nixpkgs/trunk/; revision=31840 --- pkgs/os-specific/linux/bbswitch/default.nix | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 pkgs/os-specific/linux/bbswitch/default.nix (limited to 'pkgs/os-specific/linux/bbswitch') diff --git a/pkgs/os-specific/linux/bbswitch/default.nix b/pkgs/os-specific/linux/bbswitch/default.nix new file mode 100644 index 00000000000..d64701a1d07 --- /dev/null +++ b/pkgs/os-specific/linux/bbswitch/default.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchurl, kernel }: + +let + + version = "0.4.1"; + name = "bbswitch-${version}"; + +in stdenv.mkDerivation { + inherit name; + + src = fetchurl { + url = "http://github.com/downloads/Bumblebee-Project/bbswitch/${name}.tar.gz"; + sha256 = "d579c6efc5f6482f0cf0b2c1b1f1a127413218cdffdc8f2d5a946c11909bda23"; + }; + + preBuild = '' + kernelVersion=$(cd ${kernel}/lib/modules && ls) + substituteInPlace Makefile \ + --replace "\$(shell uname -r)" "$kernelVersion" \ + --replace "/lib/modules" "${kernel}/lib/modules" + ''; + + installPhase = '' + kernelVersion=$(cd ${kernel}/lib/modules && ls) + ensureDir $out/lib/modules/$kernelVersion/misc + cp bbswitch.ko $out/lib/modules/$kernelVersion/misc + + ensureDir $out/bin + tee $out/bin/discrete_vga_poweroff << EOF + #!/bin/sh + + echo -n OFF > /proc/acpi/bbswitch + EOF + tee $out/bin/discrete_vga_poweron << EOF + #!/bin/sh + + echo -n ON > /proc/acpi/bbswitch + EOF + chmod +x $out/bin/discrete_vga_poweroff $out/bin/discrete_vga_poweron + ''; + + meta = { + platforms = stdenv.lib.platforms.linux; + description = "A module for powering off hybrid GPUs"; + }; +} -- cgit 1.4.1