
Ich habe ein Tutorial von „The Missing Semester“ verfolgt.Hier(Zeitstempel im Link enthalten). Es sollte ein led
Verzeichnis in geben /sys/class
. Ich verwende WSL2 und konnte kein solches Verzeichnis finden. Verbirgt WSL einige der /sys/class
Speicherorte? Und gibt es eine Möglichkeit, auf diese zuzugreifen, ohne meinen Computer dual booten zu müssen?
Antwort1
Vielleicht,WennIhre Tastatur ist USB, aber es sieht so aus, als ob es selbst dann einige Mühe kosten würde. Wenn es sich um einen Laptop mit einer Tastatur handelt, die intern über einen Nicht-USB-Bus angeschlossen wird, ist dies meines Wissens nach nicht möglich.
Es gibt zwei Versionen von WSL und keine von beiden ermöglicht dies sofort.
Auf einer höheren Ebene „konvertiert/übersetzt“ WSL1 Linux-Systemaufrufe in das Windows-Äquivalent. In diesem Sinne ist es eine Art „umgekehrtes WINE“. Positiv zu vermerken ist, dass diestutErlauben Sie den direkten Zugriff auf physische Hardware, normalerweise jedoch nur auf eingeschränkte Weise.
Beispielsweise
ip link
werden in WSL1 alle verfügbaren Netzwerkschnittstellen angezeigt fürWindows, aber Sie können sie weder hoch- noch runterbringen, und Sie haben auch sonst keine wirkliche Kontrolle über sie.Auf WSL1 habe ich ein
/sys/class/backlight
(direkt vor dem Zeitstempel im Video erwähnt), aber da ist keinbrightness
drin. Und ich habe auch kein/sys/class/backlight/led
auf WSL1.In WSL1 konzentrierte sich Microsoft auf die85 % der Linux-SystemaufrufeDamit können Entwickler erreichen,99 % ihrer normalen Aktivitäten. Leider sind darin einige der eher „exklusiven“ Dinge wie das Einstellen der Tastatur-LEDs nicht enthalten.
WSL2 verwendet einen echten Linux-Kernel mit geringfügigen Änderungen (soweit ich weiß, wurden diese vom Upstream bereitgestellt), um die Interoperabilität zwischen Windows und Linux zu unterstützen. Das Repo finden SieHier.
Die Herausforderung dabei unter WSL2 besteht darin, dass Ubuntu im Wesentlichen als Container in einer Reihe von Namespaces ausgeführt wird.innendie WSL2-VM (auf die Sie keinen Zugriff haben). Innerhalb dieser VM besteht nur eingeschränkter Zugriff auf die physische Hardware, einschließlich natürlich Ihrer Tastatur und der zugehörigen LEDs. Windows selbst stellt Ubuntu die Tastatureingabe über [Konsole / Windows-Terminal / WSLg / X-Server eines Drittanbieters / usw.] zur Verfügung. Ubuntu erkennt weder ein Tastaturgerät noch LEDs.
Wie @muru jedoch über einen Link in den Kommentaren erwähnt, hat WSL2 die Möglichkeit,Verbindung zu USB-Geräten über USB/IP herstellenIm Wesentlichen installieren Sieusbipd-winin Windows, geben Sie das Gerät dort frei und stellen Sie über Ubuntu eine Verbindung dazu her
usbip
. Dies ist alles ziemlich automatisiert, sodass Sie es normalerweise über einen einzigen Befehl in Windows/PowerShell erledigen können, der dann einrichtetbeideEnden der Verbindung für Sie.Leider gibt es, auch wenn dies eingerichtet ist (ich habe USB/IP bereits konfiguriert) und meine USB-Tastatur für Ubuntu freigegeben ist, immer noch kein
/sys/class/led
.ich glaube dasMaikann daran liegen, dass der WSL2-Kernel nicht mit
CONFIG_NEW_LEDS
.Sie können mit diesen Quellen Ihren eigenen WSL2-Kernel konfigurieren und kompilieren, aber ich kann Ihnen nicht mit Sicherheit sagen, ob Sie damit die LEDs auf Ihrer USB-Tastatur über USB/IP steuern können.
Auch (wichtig) Randbemerkung: Wenn Sie die Tastatur über USB/IP freigeben, verlieren Sie unter Windows möglicherweise den Zugriff darauf, was bedeutet, dass Sie nicht mehr tippen können. Ich habe das zunächst nicht bemerkt, da ich über Remote Desktop mit meiner USB-Tastatur mit dem System verbunden war, aber als ich zurückkam, war ich bis zu einem gewissen Grad „ausgesperrt“. Stellen Sie einfach sicher, dass Sie die Windows-Bildschirmtastatur haben (aktivieren Sie „Touch-Tastatur“ in den Taskleisteneinstellungen), damit Sie eine Ersatzeingabe haben, mit der Sie späterablösendie Tastatur über USB/IP.