
나는 "The Missing Semester"의 튜토리얼을 따르고 있었습니다.여기(링크에 포함된 타임스탬프) led
에 디렉토리 가 있어야 했습니다 /sys/class
. WSL2를 사용하고 있는데 그러한 디렉터리를 찾을 수 없습니다. WSL은 일부 /sys/class
위치를 숨기나요? 그리고 내 컴퓨터를 이중 부팅하지 않고도 해당 항목에 액세스할 수 있는 방법이 있습니까?
답변1
글쎄... 아마,만약에키보드가 USB이지만 그래도 약간의 노력이 필요할 것 같습니다. USB가 아닌 버스를 통해 내부적으로 연결되는 키보드가 있는 노트북인 경우 AFAIK는 불가능합니다.
WSL에는 두 가지 버전이 있으며 어느 쪽도 이 "즉시 사용 가능"을 허용하지 않습니다.
높은 수준에서 WSL1은 Linux syscall을 Windows에 상응하는 것으로 "변환/번역"합니다. 그런 의미에서 그것은 일종의 "역방향 와인"입니다. 긍정적인 측면에서는 이하다일부 물리적 하드웨어에 직접 액세스할 수 있지만 일반적으로 제한된 방식으로만 가능합니다.
예를 들어
ip link
WSL1에서는 사용할 수 있는 모든 네트워크 인터페이스가 표시됩니다.윈도우, 그러나 이를 올리거나 내릴 수 없으며 실제로 다른 제어권을 가질 수 없습니다.WSL1에는 (비디오의 타임스탬프 바로 앞에 언급됨)이 있지만 거기에는
/sys/class/backlight
없습니다 . 그리고 WSL1에도brightness
없습니다 ./sys/class/backlight/led
WSL1에서 Microsoft는 다음에 중점을 두었습니다.Linux 시스템콜의 85%개발자가 달성할 수 있는정상적인 활동의 99%. 불행히도 키보드 LED 설정과 같은 "코너 케이스" 항목은 포함되지 않습니다.
WSL2는 Windows와 Linux 간의 상호 운용성을 지원하기 위해 약간의 변경 사항(백 업스트림 기여, AFAIK)이 적용된 실제 Linux 커널을 사용합니다. 레포를 찾을 수 있습니다여기.
WSL2에서 이 작업을 수행할 때의 문제점은 Ubuntu가 기본적으로 일련의 네임스페이스에서 컨테이너로 실행된다는 것입니다.내부에WSL2 VM(액세스할 수 없음) 해당 VM 내부에는 키보드 및 관련 LED를 포함하여 물리적 하드웨어에 대한 액세스가 제한되어 있습니다. Windows 자체는 [ 콘솔 / Windows 터미널 / WSLg / 타사 X 서버 / 등 ]을 통해 Ubuntu에 키보드 입력을 제공합니다. Ubuntu에는 키보드 장치나 LED가 표시되지 않습니다.
그러나 @muru가 댓글의 링크를 통해 언급한 것처럼 WSL2에는 다음과 같은 기능이 있습니다.USB/IP를 통해 USB 장치에 연결. 기본적으로 설치usbipd-winWindows에서는 장치를 공유하고
usbip
Ubuntu를 통해 연결합니다. 이는 모두 상당히 자동화되어 있으므로 일반적으로 Windows/PowerShell에서 단일 명령을 통해 수행할 수 있습니다.둘 다당신을 위한 연결이 종료되었습니다.불행하게도 이 기능이 있고(이미 USB/IP가 구성되어 있음) USB 키보드가 Ubuntu에 공유되어 있어도 여전히
/sys/class/led
.나는 이것을 믿는다5월WSL2 커널이 다음으로 구성되지 않았기 때문입니다.
CONFIG_NEW_LEDS
.이러한 소스를 사용하여 자신만의 WSL2 커널을 구성하고 컴파일할 수 있지만 이것이 USB/IP를 통해 USB 키보드의 LED를 제어할 수 있게 되는지 확신할 수는 없습니다.
또한 (중요한) USB/IP를 통해 키보드를 공유하는 경우 Windows에서 키보드에 대한 액세스를 잃을 수 있으며, 이는 더 이상 입력할 수 없음을 의미합니다. USB 키보드를 사용하여 원격 데스크톱을 통해 시스템에 연결했기 때문에 처음에는 이 사실을 눈치채지 못했습니다. 그러나 돌아왔을 때 어느 정도 "잠겨 있는" 것을 발견했습니다. Windows 화상 키보드(작업 표시줄 설정에서 "터치 키보드" 활성화)가 있는지 확인하여 이후에 사용할 대체 입력이 있는지 확인하세요.분리하다USB/IP에서 키보드.