WSL2下linux header的安装

WSL2下linux header的安装

正常的linux发行版执行linux-headers-$(uname -r)命令就能装上内核头文件,但WSL2作为一个不一般的linux发行版,并没有直接给出安装包,要手动安装才能正常使用。

安装步骤

确认Kernel版本

1
uname -r

安装相应依赖

1
2
sudo apt install libelf-dev build-essential pkg-config
sudo apt install bison build-essential flex libssl-dev libelf-dev bc

下载相应版本源码

https://github.com/microsoft/WSL2-Linux-Kernel/releases下载刚才得到对应版本的源码。

解压刚下载的包并编译

1
2
3
4
5
tar -zvxf linux-msft-wsl-5.15.90.1.tar.gz
cd WSL2-Linux-Kernel-linux-msft-wsl-5.15.90.1
zcat /proc/config.gz > .config
sudo make -j $(nproc)
sudo make -j $(nproc) modules_install

安装过程中出现一下错误:

1
2
3
4
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1218: vmlinux] Error 1

原因是系统缺少dwarves软件包,故我们需要安装相应的软件包

1
sudo apt-get install dwarves

软链接

1
2
sudo ln -s ~/Kernel/WSL2-Linux-Kernel-linux-msft-wsl-5.15.90.1 usr/src/linux-
headers-5.15.90.1-microsoft-standard-WSL2

参考:WSL2下kernel header的安装


WSL2下linux header的安装
https://gstarmin.github.io/2023/05/09/WSL2下linux_header安装/
作者
Starmin
发布于
2023年5月9日
许可协议