Kann Linux die Hardware-Funktionalität direkt ändern?

446
StudentCoderJava

Edit: Die gewählte Antwort hat es für mich nicht gelöst, war aber die engste und vielleicht könnte sie anderen helfen.

Ich habe einen Lenovo Y720 Laptop, der über eine RGB-Tastatur verfügt. Leider funktioniert RGB nur unter Windows, da es ein Programm namens "Lenovo Nerve Sense" erfordert, das die Beleuchtung steuert. Da dieses Programm nur unter Windows verfügbar ist, ist es in irgendeiner Weise möglich, die Tastatur unter Ubuntu zu beleuchten? Ich habe jeden einzelnen Thread da draußen ausprobiert, der sich auf tcpi oder thinkpads, xled, xset led und all diese Funktionen bezieht, die nicht funktionieren. Ubuntu kann nicht einmal sehen, dass ich LEDs in meiner Tastatur habe, es kann nur Caps Lock und Numlock sehen, da sich diese auf Firmware-Level befinden, während die Tastaturbeleuchtung nicht leuchtet.

Kann Linux Änderungen an der Hardware vornehmen, z. B. ein Register für das RGB-Licht finden? Lenovo werde dabei nicht helfen, sagten sie auch nicht, portiere das Programm nicht auf Linux.

0
Ja, Sie können Software schreiben, um diese LEDs von Linux aus zu steuern. Nein, Sie können dies nicht ohne Dokumentation oder Reverse-Engineering der Windows-Anwendung tun. Daniel B vor 6 Jahren 2
Mit anderen Worten, für mich ist es unmöglich? StudentCoderJava vor 6 Jahren 0
Wenn Sie keine Erfahrung mit Windows-Programmierkenntnissen und / oder Reverse Engineering-Erfahrung auf niedrigem Niveau haben, ist dies nahezu unmöglich oder zumindest sehr, sehr schwer. gronostaj vor 6 Jahren 2
Na gut, dann könnte ich einfach aufgeben. StudentCoderJava vor 6 Jahren 0
Wenn es sich um eine USB-Tastatur handelt, suchen Sie nach "USB-Reverse-Engineering" von Google - es ist nicht so schwer und Werkzeuge können jetzt leicht gefunden werden. Wenn Lenovo wirklich nett war (unwahrscheinlich), könnte es sogar im HID-Deskriptor sein ... Seien Sie jedoch darauf vorbereitet, viel Zeit zu investieren, und Sie müssen viele technische Standards usw. lesen. dirkt vor 6 Jahren 0
Es ist ein Laptop, den ich benutze StudentCoderJava vor 6 Jahren 0

1 Antwort auf die Frage

2
xenoid

Mögliche Antwort (trifft möglicherweise nicht auf Ihre spezifische Maschine zu):

Auf meinem Lenovo P50 auf meinem Lager Kubuntu 16.04:

  • Es gibt ein Verzeichnis /proc/acpi/ibm/im /procPseudo-Dateisystem (Lenovo hat IBMs Laptop-Marke übernommen)
  • In diesem Verzeichnis befinden sich mehrere Dateien, darunter auch eine /proc/acpi/ibm/kbdlight
  • cat /proc/acpi/ibm/kbdlight sagt:

    status: 0 commands: 0, 1, 2 
  • dann

    sudo bash -c 'echo 2 >/proc/acpi/ibm/kbdlight' 

    leuchtet die Tastatur tatsächlich auf ( echo 1schaltet sie ab und echo 0schaltet sie aus).

Möglicherweise haben Sie bereits etwas Ähnliches auf Ihrem Laptop, also catdie Dateien und experimentieren. Hinweis: Der Sudo-Befehl ist ein wenig durchdacht, da der natürlichere Befehl sudo echo 2 >/proc/acpi/ibm/kbdlightnicht funktioniert, da die Umleitung zu /proc/acpi/ibm/kbdlightIhrer nicht privilegierten Benutzer-ID erfolgt.

PS: Bei meinem P50 steuert die Fn- spaceTastenkombination auch die Tastaturbeleuchtung nativ.

PPS: Das zugrunde liegende Modul ist der thinkpad_acpiTreiber, der nun Teil des Linux-Kernels ist (seit Ende 2.6-Versionen) und anscheinend aktiv beibehalten wird (Ergänzungen im April zur Unterstützung des P50 ...). Beachten Sie, dass die Dokumentation besagt, dass die Verwendung von /proc/acpiveraltet ist und /sys/devices/platform/thinkpad_acpi/stattdessen verwendet werden sollte.

Wissen Sie zufällig, mit welchem ​​Kernel-Modul diese Schnittstelle verfügbar ist (z. B. "lsmod" und eine Vermutung oder "dmesg" nach dem Booten)? Diese Informationen können für andere Leute wichtig sein, die versuchen, sie zum Laufen zu bringen, wenn das Kernel-Modul (noch) keine Hardware erkennt. dirkt vor 6 Jahren 0
@dirkt Siehe erweiterte Antwort ... xenoid vor 6 Jahren 0