Czy linux może bezpośrednio zmienić funkcjonalność sprzętu?

0

Edytuj: Wybrana odpowiedź nie rozwiązała mnie, ale była najbliższa i może być pomocna dla innych.

Mam laptopa Lenovo Y720, który ma klawiaturę RGB. Niestety RGB działa tylko w systemie Windows, ponieważ wymaga programu o nazwie „Lenovo Nerve Sense”, który kontroluje światła. Ponieważ ten program jest dostępny tylko w systemie Windows, czy w jakikolwiek sposób można zapalić klawiaturę na Ubuntu? Próbowałem każdego pojedynczego wątku, który odnosi się do tcpi lub thinkpadów, xled, xset led i wszystkich tych funkcji, które nie działają. Ubuntu nie może nawet zobaczyć, że mam diody LED na klawiaturze, może widzieć tylko caps lock i numlock, ponieważ są one na poziomie oprogramowania układowego, a podświetlenie klawiatury nie.

Czy Linux jest w stanie dokonać zmian w sprzęcie, takich jak znalezienie jakiegoś rejestru światła RGB? Lenovo nie pomoże w tym, jak powiedzieli, ani nie przenosi programu do Linuksa.

StudentCoderJava
źródło
2
Tak, możesz napisać oprogramowanie do sterowania tymi diodami z Linuksa. Nie, nie możesz tego zrobić bez dokumentacji lub inżynierii wstecznej aplikacji Windows.
Daniel B
Innymi słowy, to dla mnie niemożliwe?
StudentCoderJava
2
Jeśli nie masz doświadczenia w programowaniu na niskim poziomie Windows i / lub inżynierii odwrotnej, jest to prawie niemożliwe lub przynajmniej bardzo, bardzo ciężko.
gronostaj
No cóż, może się po prostu poddać.
StudentCoderJava
Jeśli jest to klawiatura USB, google do „inżynierii odwrotnej USB” - to nie takie trudne, a narzędzia można łatwo znaleźć teraz. Jeśli Lenovo było naprawdę miłe (mało prawdopodobne), może nawet znajdować się w deskryptorze HID ... Jednak przygotuj się na dużo czasu, a będziesz musiał przeczytać wiele standardów technicznych itp
dirkt

Odpowiedzi:

2

Możliwa odpowiedź (może nie dotyczyć konkretnej maszyny):

Na moim Lenovo P50 na moim magazynie Kubuntu 16.04:

  • Jest katalog /proc/acpi/ibm/ w /proc pseudo-system plików (Lenovo odziedziczył markę laptopa IBM)
  • W tym katalogu znajduje się kilka plików, w tym jeden o nazwie /proc/acpi/ibm/kbdlight
  • cat /proc/acpi/ibm/kbdlight mówi:

    status:         0
    commands:       0, 1, 2
    
  • następnie

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

    właściwie świeci klawiaturę (używając echo 1 przyciemnia go i echo 0 wyłącza go).

Być może masz już coś podobnego na swoim laptopie, więc cat pliki i eksperyment. Uwaga: Polecenie sudo jest nieco wymyślone, ponieważ bardziej naturalne sudo echo 2 >/proc/acpi/ibm/kbdlight nie działa od przekierowania do /proc/acpi/ibm/kbdlight jest wykonywane przez nieprzypisany identyfikator użytkownika.

PS: dodatkowo na moim P50, Fn - przestrzeń Kombinacja klawiszy natywnie kontroluje światła klawiatury.

PPS: Podstawowym modułem jest thinkpad_acpi kierowca który jest teraz częścią jądra Linuksa (od późnych wersji 2.6) i wydaje się być aktywnie utrzymywany (dodatki w kwietniu obsługujące P50 ...). Zauważ, że dokumentacja mówi, że użycie /proc/acpi jest przestarzały i należy go użyć /sys/devices/platform/thinkpad_acpi/ zamiast.

xenoid
źródło
Czy wiesz, jaki moduł jądra udostępnia ten interfejs (np. Spójrz na lsmod i zgadnij lub spójrz na dmesg po rozruchu)? Te informacje mogą być ważne dla innych osób, które próbują go uruchomić, jeśli moduł jądra nie rozpoznaje jeszcze ich sprzętu.
dirkt
@dirkt Zobacz rozszerzoną odpowiedź ...
xenoid