1. 内核源码
编译模块需要内核源码信息,wsl是修改过的内核无法使用下面的命令从标准镜像源上下载内核源码信息。
sudo apt-get install kernel-headers-$(uname -r)
sudo apt-get install kernel-devel-$(uname -r)
2. 下载wsl内核源码
可以考虑下载wsl的源码重新进行编译,wsl的源码仓库WSL2-Linux-Kernel,当前默认的分支是linux-msft-wsl-6.6y
,我们可以去release页面下载我们系统对应的版本。
$ uname -r
5.15.153.1-microsoft-standard-WSL2
我使用的内核版本是5.15.153.1
,下载linux-msft-wsl-5.15.153.1.tar.gz,文件大小约189.8MB,解压后大约1GB。
3. 编译内核
下载后将压缩包解压到wsl文件系统中,配置编译环境。
# 解压文件,文件在windows F:\迅雷下载\WSL2-Linux-Kernel-linux-msft-wsl-5.15.153.1.tar.gz
mkdir kernel; cd kernel
tar -zxf /mnt/f/迅雷下载/WSL2-Linux-Kernel-linux-msft-wsl-5.15.153.1.tar.gz
cd WSL2-Linux-Kernel-linux-msft-wsl-5.15.153.1
# 安装依赖包,这个是github上推荐的依赖包
sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev cpio
# 执行make menuconfig时提示缺少的安装包
sudo apt install pkg-config libncurses-dev