Kategorien

DIY (3) Gnome Extension (3) Laptop (1) Linux (8) Server (2) Windows (1)

08 Juni 2016

EC-Control Database

Erweiternd zum EC-Control und EC-Control Gnome Shell Extension Artikel, möchte ich hier die Erstellung einer eigenen Datenbank erklären.

Es ist möglich eigene Datenbanken zu erstellen um weitere Geräte bzw. Laptops zu unterstützen. Es gibt mehrere Wege, mögliche Werte aus einem EC auszulesen und anschließend auszuwerten.
  • Der Fenster Weg: unter Windows mittels RW-Everything
  • Der Freie Weg: unter Linux mittels od, xxd und dd
  • ACPI Tabellen durchforsten, siehe im NBFC Wiki
Ich gebe es ungerne zu, aber einfacher ist es über dem Fenster Weg, die ACPI Tabellen waren mir leider keine große Hilfe. Dazu habe ich in meinem Falle einfach das Gigabyte Tool geöffnet, in dem ich sämtliche Optionen setzen kann (siehe Bild links).

Parallel dazu RW-Everything gestartet, siehe Bild rechts, kann man sich dazu die Innereien des EC's anschauen. Dazu klickt ihr auf dem EC Symbol (siehe im Bild rechts die grüne Markierung) im RW-Everything, ein Fenster öffnet sich in dem der EC Register mit seinen Werten sichtbar wird. Beobachtet nun den EC Register und aktiviert/deaktiviert innerhalb euer Steuersoftware (bei mir das Gigabyte Tool) beispielsweise das Bluetooth. So wie ihr es bewerkstelligt, sollte sich im EC etwas rühren. Wiederholt den Vorgang einfach bis ihr sicher seit, dass es dieser sich verändernder Wert ist den ihr sucht. Schreibt euch den gefundenen Wert auf, klickt auf ihm, dann seht ihr oben links im EC Fenster, in roter Schrift auf gelben Hintergrund, den so genannten OffSet. Der ist wichtig um den Ort des Wertes im Register zu bestimmen. Am besten notiert ihr euch den wie im folgenden Beispiel:
Bluetooth:

OffSet 1 : 42 Aus - C2 An
Das Spiel könnt ihr nun mit jeder Funktion die ihr innerhalb eures Linux haben möchtet wiederholen.

Das schwierige dabei ist, wenn zum Beispiel in einem Offset gleich mehrere Funktionen bedient werden. War bei mir der Fall mit Bluetooth und Webcam. Außerdem unterscheidete er auch noch ob im Batterie Modus oder am Stromnetz. Das sah dann wie folgt aus:
#########################################################################################################
# Device:       Laptop / Notebook
# Manufacturer: Gigabyte
# Modell:       P57 / P57W
# Year:         2016
# BIOS:         FB0B
# EC:           F00B
#########################################################################################################
# Version:      1.0.1
# Maintainer:   Sven Kramer
#########################################################################################################
#   NAME        |   STATE   |   VALUE   |   TARGET  |   OFFSET  |   COMMENT
#########################################################################################################
Bluetooth       |   ON      |   C2      |   42      |   1       |   Bluetooth On (Camera On) (Battery)
Bluetooth       |   ON      |   82      |   02      |   1       |   Bluetooth On (Camera Off) (Battery)
Bluetooth       |   OFF     |   42      |   C2      |   1       |   Bluetooth Off (Camera On) (Battery)
Bluetooth       |   OFF     |   02      |   82      |   1       |   Bluetooth Off (Camera Off) (Battery)
Bluetooth       |   ON      |   C3      |   43      |   1       |   Bluetooth On (Camera On)
Bluetooth       |   ON      |   83      |   03      |   1       |   Bluetooth On (Camera Off)
Bluetooth       |   OFF     |   43      |   C3      |   1       |   Bluetooth Off (Camera On)
Bluetooth       |   OFF     |   03      |   83      |   1       |   Bluetooth Off (Camera Off)

Datenbank:

Kommen wir zur Datenbankerstellung. Schnappt euch einen Texteditor eurer Wahl, bei mir war es der GEdit, unter Windows empfehle ich Notepad++.

Vorab: In der Datenbank können beliebige Kommentare eingefügt werden, jedoch stets beachten dass die betroffene Zeile immer als erstes Zeichen mit einem # anfängt. 

Ein Datenbankeintrag wird immer in folgender Reihenfolge gemacht:
#   NAME    |   STATE   |   VALUE   |   TARGET  |   OFFSET  |   COMMENT
  • NAME: Beliebiger Name der Funktion
  • STATE: Schaltstatus wie ON oder OFF, oder wenn mehrere Stufen zu schalten sind 0, 1, 2, 3 etc.
  • VALUE: Der Wert der dazu geschrieben werden muss
  • TARGET: Der Wert der als nächstes geschrieben wird
  • OFFSET: Der zum Wert gehörige OffSet
  • COMMENT: Beliebiger Text, wird beim schalten im Gnome Panel so angezeigt

Wir machen ein Beispiel:
Bluetooth      |    ON       |   C2      |   42      |   1       |   Bluetooth On (Camera On) (Battery)
Bluetooth      |    OFF      |   42      |   C2      |   1       |   Bluetooth Off (Camera On) (Battery)
Wir nehmen an, die erste Zeile ist der IST Zustand und Ihr löst nun in der Gnome Extension ein klick auf dem "Bluetooth ON" Menü aus. Anhand des TARGET Wert schreibt die Extension nun im Offset 1 ein Wert 42.

Datenbanknamen:

Als Datenbank Namen bitte den eures Rechners nehmen, um den Namen zu ermitteln gebt in der Konsole mit Administrationsrechten "su" folgendes ein:
su
echo "`dmidecode -s system-manufacturer`_`dmidecode -s system-product-name`.db"
Oder mittels "sudo":
echo "`sudo dmidecode -s system-manufacturer`_`sudo dmidecode -s system-product-name`.db"
Bei meinem Gigabyte Laptop ergibt dies "GIGABYTE" und "P57". Also setzt sich der Datenbank Name aus den beiden werten zusammen: "GIGABYTE_P57.db".

Sollte der ein oder andere eine Datenbank erstellt haben, so würde ich mich freuen die hier publizieren zu dürfen.

Sollten noch Fragen offen sein, schreibt mir eine Mail oder nutzt die Kommentarfunktion.

Keine Kommentare: