Switchable Graphics über Thinkvantage Button schalten

Aus ThinkPad-Wiki

bei "klassischen" Geräten mit "Switchable Graphics"

Vom Thinkpad-Forum - Mitglied "Adun":

Will man die Grafik seines ThinkPads mit Switchable Graphics (bei Modellen ohne NVIDIA Optimus oder AMD Enduro) mit nur einem Klick schalten, so kann man für diesen Zweck den Thinkvantage Button nutzen, falls man diesen nicht schon anderweitig belegt hat.


Batch-Datei erstellen

Man muss zuerst eine Batchdatei erzeugen, mit welcher sich die Grafik umschalten lässt. Um dabei die Dateiendung auf "bat" ändern zu können, ist es erforderlich, die Option "Erweiterungen bei bekannten Dateitypen" im Explorer vorab zu deaktivieren.

  • Rechtsklick auf dem Desktop - "Neues Textdokument" - Dateiname: "Grafik.bat"
  • Rechtsklick auf "Grafik.bat" > "Bearbeiten"

Inhalt der Batchdatei:

@echo off
ECHO Switching to discrete graphics...
"C:\Program Files (x86)\ThinkPad\Utilities\PWMUIAux.exe" /HighPerformanceGpu /ShowDialog
ECHO Switching to integrated graphics...
"C:\Program Files (x86)\ThinkPad\Utilities\PWMUIAux.exe" /EnergySavingGpu /ShowDialog
  • "Datei" - "Speichern"

diese Datei kopiert man nun an einen x-beliebigen Ort, z.B. nach C:\

Anmerkung:

Dass die beiden Anweisungen zum Umschalten der Grafik hintereinander stehen, spielt keine Rolle.


Thinkvantage - Taste belegen

Das Belegen der ThinkVantage - Taste nimmt man in der Registry vor:

  • Win-Taste+R > regedit > Enter
  • Navigiert zu
HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\
  • und erstellt dort, sofern noch nicht vorhanden, den Schlüssel "8001" (Wenn Thinkvantage Toolbox installiert ist oder war, sollte der Schlüssel 8001 vorhanden sein)
HKEY_LOCAL_MACHINE\SOFTWARE\IBM\TPHOTKEY\8001
  • Im Schlüssel 8001, die Zeichenfolge "File" erstellen

Doppelklick drauf und zu der Grafik.bat verlinken

C:\Grafik.bat

Probleme

Bei mir stürzte Firefox immer ab sobald ich die Grafik umgeschaltet habe. FF einfach neu starten, der Browser kommt mit dem Wechsel der Grafikkarte nicht zurecht.

Bei Optimus-Geräten

Allgemeine Hinweise

Bei Optimus-Geräten gestaltet sich die ganze Sache etwas schwieriger, da hier eine Deaktivierung (um z.B. Akkustrom zu sparen) nur über den Geräte-Manager möglich ist. Jedoch bietet Microsoft die Möglichkeit an, Aufgaben im Geräte-Manager per Konsole zu erledigen. Dazu muss das Tool "devcon" (devcon ist ein Konsolenbasiertes Programm, mit dem Aufgaben des Gerätemanagers erledigt werden können) heruntergeladen und installiert werden. Im folgenden gehe ich davon aus, dass dies über das "Windows Driver Kit (WDK)" (bitte entsprechend eures Betriebssystem die richtige Version runterladen!) erfolgt ist und es sich um ein 64bit-Windows 8.1 handelt.
Bei anderen Installationen muss der Pfad

C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\

im folgenden Quelltext entsprechend umgeändert werden!

Ermitteln der HW-ID

Ihr benötigt außerdem die Device-ID eurer nVidia. Diese könnt ihr mit Hilfe des Geräte-Managers ermitteln. Dazu einfach das Eigenschaften-Fenster der GPU öffnen, zum Karteireiter "Details" wechseln und im Dropdown-Menü "Hardware-IDs" auswählen. Den ersten Eintrag benötigen wir. Netterweise bietet Windows bei Rechtsklick auf diesen direkt an, den Wert zu kopieren, sodass ihr ihn nur noch in dem Script unten einfügen müsst.

CMD-Datei

Als erstes erstellt ihr eine CMD-Datei nach dem o.g. Schema für die BAT-Datei. Als Dateiname könnt ihr bspw.

killswitch.cmd

nehmen ;)

@echo offSETLOCAL
:START
CLS
echo Optimus-Killswitch-Toggle
echo --------------------------
echo 1.) nVidia deaktivieren
echo 2.) nVidia aktivieren
echo 3.) Exit
echo.
SET /P selection=Please enter your choice:
if %selection%x==1x goto GPUDISABLE
if %selection%x==2x goto GPUENABLE
GOTO END
:GPUDISABLE
"C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\devcon" disable "Deine Device-ID"
GOTO END
:GPUENABLE
"C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\devcon" enable "Deine Device-ID"
GOTO END
PAUSE
:END
ENDLOCAL

devcon benötigt übrigens zwingend Admin-Rechte. D.h. wenn ihr nicht dauerhaft mit einem Admin-Konto aktiv seid, müsst ihr noch ein bisschen weitertricksen, da cmd-Dateien keine Admin-Rechte zulassen.

Verknüpfung und Hotkey erstellen

Also Rechtsklick auf eure cmd-Datei und "Verknüpfung Erstellen" auswählen.
Bei der neu erstellten per Rechtsklick das "Eigenschaften"-Fenster öffnen und im Karteireiter "Verknüpfung" den Punkt "Erweitert" auswählen. Dort den Haken bei "Als Administrator ausführen" setzen.
Zu guter Letzt wollen wir die Windows-Boardmittel ausnutzen und auch den Fakt, dass Verknüpfungen mittels Hotkey gestartet werden können. Dazu verschiebt ihr die Verknüpfung in euren Startmenü-Ordner (sonst werden die Tastenkombinationen ignoriert). Dieser befindet sich üblicherweise am Ort

C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

Rechtsklick auf die Verknüpfung am neuen Ort und in das Kästchen "Tastenkombination" klicken. Jetzt könnt ihr der Verknüpfung eine Hotkey-Kombination zuweisen. Ich empfehle [Strg][Alt][E], weil diese Kombi nicht belegt ist und abgekürzt "Exterminate" heißen könnte. :D
Das ganze in Bildern:

WARNHINWEIS

Achtung! Die digitalen Bildausgänge der Optimus-Geräte funktionieren nur mit aktivierter nVidia! Das heißt bspw. vor dem Eindocken unbedingt wieder mit dem gleichen Script die nVidia wieder aktivieren!