WSL 최신 커널 컴파일해서 적용하기
WSL(Windows Subsystem for Linux)은 Windows에서 리눅스 환경을 제공하는 강력한 도구이지만, 때로는 최신 기능이나 특정 드라이버 지원을 위해 커널을 업데이트해야 할 필요가 있습니다. 이 포스팅에서는 WSL의 커널 소스코드를 직접 다운로드하고 컴파일하여, 여러분의 시스템에 맞는 최적화된 커널을 구축하는 전체 과정을 단계별로 안내해드리겠습니다. 최신 커널 컴파일을 통해 WSL의 성능을 향상시키고, 새로운 하드웨어 지원과 보안 패치를 적용할 수 있습니다.
테스트 환경
- Windows 11 Pro 23H2
- WSL 2 (Ubuntu 20.04 LTS)
단계별 가이드
최신 커널 컴파일해서 적용하기
먼저 WSL 터미널을 열고 Ubuntu 20.04를 실행합니다. 다음 명령어로 커널 빌드에 필요한 패키지들을 설치합니다:
sudo apt update && sudo apt install build-essential flex bison libssl-dev libelf-dev bc python3 dwarves
Microsoft Linux 커널 소스 빌드
GitHub에서 Microsoft의 Linux 커널 소스를 클론하고 아래 명령어로 커널을 빌드합니다. 빌드 과정에서 몇 가지 설정을 물어볼 수 있습니다. 대부분의 경우 기본값을 사용하면 됩니다. 추가로 커널 모듈 및 헤더를 설치 합니다.
git clone https://github.com/microsoft/WSL2-Linux-Kernel.git --depth=1 -b linux-msft-wsl-6.1.y
cd WSL2-Linux-Kernel
make -j$(nproc) KCONFIG_CONFIG=Microsoft/config-wsl
sudo make modules_install headers_install
빌드된 커널 이미지 복사
새로 빌드된 커널 이미지를 Windows 파일 시스템으로 복사합니다:
mkdir /mnt/c/WSL
cp arch/x86/boot/bzImage /mnt/c/WSL/
WSL 설정 파일 수정
Windows에서 %USERPROFILE%.wslconfig 파일을 생성하거나 수정합니다. 내용은 다음과 같아야 합니다. 아래의 예는 C밑에 WSL 폴더를 생성하고 이미지를 넣은 경우 입니다.
[wsl2]
kernel=C:/WSL/bzImage
WSL 재시작
관리자 권한으로 PowerShell을 열고 다음 명령어를 실행합니다:
wsl --shutdown
새 커널 확인
WSL을 다시 시작하고 새 커널 버전을 확인합니다:
wsl
uname -r
출력이 "6.1.x-microsoft-standard-WSL2"와 유사하게 나오면 성공입니다.
문제 해결
만약 새 커널이 적용되지 않았다면:
- .wslconfig 파일의 내용을 다시 확인합니다.
- C:\WSL\bzImage 파일이 실제로 존재하는지 확인합니다.
- WSL을 완전히 종료하고 다시 시작해봅니다.
- C:\Windows\Temp\WSL 폴더에서 관련 로그 파일을 확인합니다.
참고사이트
- Microsoft 공식 WSL 문서: https://docs.microsoft.com/en-us/windows/wsl/ Microsoft의 공식 문서로, WSL의 설치, 구성, 사용법 등에 대한 가장 신뢰할 수 있는 정보를 제공합니다.
- WSL2-Linux-Kernel GitHub 저장소: https://github.com/microsoft/WSL2-Linux-Kernel Microsoft에서 관리하는 WSL2용 Linux 커널 소스 코드 저장소입니다. 최신 커널 소스와 관련 문서를 확인할 수 있습니다.
- WSL 커뮤니티 포럼: https://github.com/microsoft/WSL/discussions WSL 사용자들과 개발자들이 모여 정보를 공유하고 문제를 해결하는 공간입니다. 커널 업그레이드와 관련된 다양한 경험과 팁을 얻을 수 있습니다