1. 环境准备与依赖安装
在开始WSL2内核编译之前,我们需要确保环境准备充分。我自己在第一次尝试时因为漏掉几个依赖包,编译过程中断了好几次,后来才发现是基础工具没装全。这里把必备的依赖清单列出来,避免大家踩坑。
首先打开WSL2的Ubuntu终端,更新软件包列表:
sudo apt update
接下来安装编译所需的工具链和开发库。这些包包括编译器、链接器、内核配置工具等:
sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev bc ncurses-dev
这里解释几个关键包的作用:build-essential 提供了GCC编译器和make工具;flex 和 bison 是语法分析器生成器,内核配置需要它们;dwarves 包含处理调试信息的工具;libssl-dev 和 libelf-dev 提供加密和ELF文件格式支持;bc 是数学计算工具;ncurses-dev 则为menuconfig提供文本界面支持。
安装完成后,建议验证一下gcc版本:
gcc --version
确保gcc版本在9.0以上,否则可能会遇到兼容性问题。我在旧系统上用的是gcc 7.5,编译时一堆警告,升级到gcc 11后问题就消失了。
2. 获取WSL2内核源码
微软官方维护了WSL2专用的Linux内核仓库,我们需要下载与当前运行内核版本一致的源代码。先查看当前内核版本:
uname -r
输出可能是 "5.15.146.1-microsoft-standard-WSL2" 这样的格式。记下这个版本号,然后到GitHub的WSL2-Linux-Kernel仓库下载对应版本的源码包。
使用wget下载源码压缩包(请将URL中的版本号替换为你的实际版本):
wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-wsl-5.15.146.1.tar.gz
下载完成后解压源码:
tar -xzf linux-msft-wsl-5.15.146.1.tar.gz
cd WSL2-Linux-Kernel-linux-msft-wsl-5.15.146.1/

443

被折叠的 条评论
为什么被折叠?



