WSL2編譯內(nèi)核并替換內(nèi)核
引言
WSL2支持完整的,并且支持微軟官方優(yōu)化的內(nèi)核,因此可以使用微軟官方提供的內(nèi)核代碼進(jìn)行自主編譯。
點(diǎn)擊右側(cè)的releases
可以發(fā)現(xiàn)微軟官方目前已經(jīng)發(fā)行的WSL2-Linux-Kernel一系列版本。
本次教程,以linux-msft-wsl-5.15.57.1在Ubuntu 22.04.1 LTS為例
必要準(zhǔn)備
為了順利編譯內(nèi)核,我們需要事先安裝編譯工具;
使用以下命令安裝編譯依賴
sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev
sudo apt install flex bison bc
如果編譯過程中,出現(xiàn)編譯時(shí)庫(kù)缺失,則進(jìn)行安裝即可。
下載源碼
選擇*.tar.gz
文件,右鍵獲取對(duì)應(yīng)的下載鏈接
https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-wsl-5.15.57.1.tar.gz
在終端中使用wget
命令下載
wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-wsl-5.15.57.1.tar.gz
解壓源碼
在下載完成后,我們使用以下命令解壓源碼
tar -xzf linux-msft-wsl-5.15.57.1.tar.gz
編譯源碼
進(jìn)入解壓后的WSL2-Linux-Kernel-linux-msft-wsl-5.15.57.1
文件夾
cd WSL2-Linux-Kernel-linux-msft-wsl-5.15.57.1/
使用命令
sudo make KCONFIG_CONFIG=Microsoft/config-wsl -j4
或者
sudo make KCONFIG_CONFIG=Microsoft/config-wsl
編譯源代碼
-j4,使得make最多允許編譯命令通過4個(gè)線程同時(shí)執(zhí)行,這樣可以更有效的利用CPU資源,使得編譯速度更快。
等待編譯完成即可
編譯完成后,我們可以看到,編譯好的新內(nèi)核文件bzImage
位于
arch/x86/boot/bzImage
復(fù)制內(nèi)核
使用復(fù)制命令,將其復(fù)制到Windows的D盤,Windows的D盤位于WSL的/mnt/c 或者 /mnt/d
cp arch/x86/boot/bzImage /mnt/d
于是在D盤之下,我們便獲得了編譯后的內(nèi)核文件
我們需要將其重命名為kernel
關(guān)閉WSL
在替換內(nèi)核之前,我們需要使用
wsl --shutdown
關(guān)閉WSL
替換內(nèi)核
此時(shí)我們需要找到原來的WSL的內(nèi)核位置,并且進(jìn)行替換:文章來源:http://www.zghlxwxcb.cn/news/detail-470246.html
- 通常情況下的
kernel
位于C:\Windows\System32\lxss\tools
此時(shí)只需要將之前重命名的kernel
替換當(dāng)前文件夾下的kernel
即可文章來源地址http://www.zghlxwxcb.cn/news/detail-470246.html
- 如果實(shí)在找不到
kernel
的位置,可以使用everything進(jìn)行搜索
替換掉對(duì)應(yīng)的內(nèi)核,重啟WSL,內(nèi)核即更換完成。
參考
- WSL 2(Ubuntu18.04)編譯Linux內(nèi)核(5.7.9)并替換掉WSL 2原有內(nèi)核
- github:microsoft/WSL2-Linux-Kernel
到了這里,關(guān)于WSL2編譯內(nèi)核并更改替換內(nèi)核版本的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!