Skip to content

Instantly share code, notes, and snippets.

@Semdevmaster
Last active September 5, 2022 05:57
Show Gist options
  • Select an option

  • Save Semdevmaster/ce013cef6fad864b9de1e7fca82ffee8 to your computer and use it in GitHub Desktop.

Select an option

Save Semdevmaster/ce013cef6fad864b9de1e7fca82ffee8 to your computer and use it in GitHub Desktop.
Сборка ядра Linux для WSL2 из исходников
  1. Скачать любой дистрибутив для WSL2, пример будет на Ubuntu-22.04
  2. В консоли Ubuntu, в папке пользователя клонируем официальный репозиторий ядра WSL2 в папку wsl
git clone --recursive https://github.com/microsoft/WSL2-Linux-Kernel.git wsl
  1. Заходим в папку wsl и меняем там файл Microsoft/config-wsl, в нем нужно изменить Название ядра с дефолтного на свое и сохранить изменения
CONFIG_LOCALVERSION="-WSL2-CUSTOM-KERNEL"
  1. Нужно будет поставить в Ubuntu несколько пакетов для компиляции ядра, в моем случае нужны были следующие:
sudo apt update && sudo apt dist-upgrade -y
sudo apt install make build-essential flex bison libssl-dev libelf-dev dwarves
  1. При компиляции ядра могут вылезать ошибки, из-за нехватки нужных пакетов, их просто нужно доустонавливать и снова запускать компиляцию, благо она будет продолжаться с момента остановки, а не с начала.
make O=out KCONFIG_CONFIG=Microsoft/config-wsl
  1. В итоге после успешной компиляции ядра в консоли будет написан путь по которому лежит свежеиспеченное ядро, идем забираем его и копируем в какую-нибудь папку windows
#Путь до скомпилированного ядра обычно такой
\\wsl$\Ubuntu-22.04\home\user\wsl\out\arch\x86\boot\bzImage
#Копируем его, например в
C:\CutomLinuxKernel\bzImage
  1. Создаем в папке пользователя windows файл .wslconfig с таким содержанием
[wsl2]
kernel=C:\\CutomLinuxKernel\\bzImage
  1. Полностью гасим подсистему WSL2 со всеми дистрибутивами через PowerShell
wsl --shutdown
  1. Готово! Запускаем любой дистрибутив и проверяем версию ядра
uname -a
  1. Для штатного обновления ядра для WSL2 вообще предусмотренна команда wsl --update, но у меня она не работала
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment