From 71bbb9821913172cd1f4475d606a49b9b668279b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Mon, 29 Jul 2019 11:58:43 -0300 Subject: [PATCH] Add scripts for controlling Optimus laptop. --- script/.local/bin/darktable-launcher | 9 +++++++++ script/.local/bin/disablegpu | 24 ++++++++++++++++++++++++ script/.local/bin/enablegpu | 21 +++++++++++++++++++++ script/.local/bin/nv-settings | 4 ++++ 4 files changed, 58 insertions(+) create mode 100755 script/.local/bin/darktable-launcher create mode 100755 script/.local/bin/disablegpu create mode 100755 script/.local/bin/enablegpu create mode 100755 script/.local/bin/nv-settings diff --git a/script/.local/bin/darktable-launcher b/script/.local/bin/darktable-launcher new file mode 100755 index 0000000..6d4e9a6 --- /dev/null +++ b/script/.local/bin/darktable-launcher @@ -0,0 +1,9 @@ +#!/usr/bin/env fish + +kdesu enablegpu +sleep 2 + +darktable $argv + +kdesu disablegpu + diff --git a/script/.local/bin/disablegpu b/script/.local/bin/disablegpu new file mode 100755 index 0000000..5723194 --- /dev/null +++ b/script/.local/bin/disablegpu @@ -0,0 +1,24 @@ +#!/bin/sh + +echo "Restarting bumblebee service." +systemctl restart bumblebeed.service +sleep 1 + +echo "Removing modules." +modprobe -r nvidia_drm +modprobe -r nvidia_uvm +modprobe -r nvidia_modeset +modprobe -r nvidia + +echo "Changing power settings." +# Change NVIDIA card power control +echo -n auto > /sys/bus/pci/devices/0000\:01\:00.0/power/control +sleep 1 +# change PCIe power control +echo -n auto > /sys/bus/pci/devices/0000\:00\:01.0/power/control +sleep 1 + +echo "Moving config files." +# Lock system form loading nvidia module +mv /etc/modprobe.d/disable-nvidia.conf.disable /etc/modprobe.d/disable-nvidia.conf +mv /home/ericonr/.local/share/vulkan/icd.d/nvidiaegl_icd.json /home/ericonr/.local/share/vulkan/icd.d/nvidiaegl_icd.json.disable diff --git a/script/.local/bin/enablegpu b/script/.local/bin/enablegpu new file mode 100755 index 0000000..125d5b4 --- /dev/null +++ b/script/.local/bin/enablegpu @@ -0,0 +1,21 @@ +#!/bin/sh + +echo "Moving config files." +# allow to load nvidia module +mv /etc/modprobe.d/disable-nvidia.conf /etc/modprobe.d/disable-nvidia.conf.disable +# add ICD layer for vulkan +mv /home/ericonr/.local/share/vulkan/icd.d/nvidiaegl_icd.json.disable /home/ericonr/.local/share/vulkan/icd.d/nvidiaegl_icd.json + +echo "Changing power settings." +# Remove NVIDIA card (currently in power/control = auto) +echo -n 1 > /sys/bus/pci/devices/0000\:01\:00.0/remove +sleep 1 +# change PCIe power control +echo -n on > /sys/bus/pci/devices/0000\:00\:01.0/power/control +sleep 1 +# rescan for NVIDIA card (defaults to power/control = on) +echo -n 1 > /sys/bus/pci/rescan + +echo "Loading modules." +# someone said that modprobe nvidia is needed also to load nvidia, to check +modprobe nvidia diff --git a/script/.local/bin/nv-settings b/script/.local/bin/nv-settings new file mode 100755 index 0000000..542b66c --- /dev/null +++ b/script/.local/bin/nv-settings @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +optirun -b none nvidia-settings -c=:8 +