You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取WSL2 Ubuntu24.04对应的内核头文件?

WSL2 Ubuntu24.04 缺失特定内核头文件的解决方法

问题背景

在Windows 10的WSL2 Ubuntu24.04环境下,执行DKMS构建命令时出现错误:

$ sudo dkms build eatmydata/0.1
Error! Your kernel headers for kernel 5.15.133.1-microsoft-standard-WSL2 cannot be found at /lib/modules/5.15.133.1-microsoft-standard-WSL2/build or /lib/modules/5.15.133.1-microsoft-standard-WSL2/source.
Please install the linux-headers-5.15.133.1-microsoft-standard-WSL2 package or use the --kernelsourcedir option to tell DKMS where it's located.

常规的sudo apt install linux-headers-$(uname -r)无法解决,因为当前Ubuntu24.04的apt源中没有对应5.15.133.1-microsoft-standard-WSL2版本的内核头文件包。

解决方法

方法1:升级WSL2内核至最新版本

Ubuntu24.04的apt源提供的是较新的内核头文件,升级WSL2内核后可匹配:

  • 打开Windows管理员权限的PowerShell,执行:
    wsl --update
    
  • 关闭并重启WSL:
    wsl --shutdown
    
  • 重新启动Ubuntu,验证内核版本:
    uname -r
    
  • 安装对应版本的内核头文件:
    sudo apt install linux-headers-$(uname -r)
    

方法2:手动编译对应版本的WSL2内核头文件

如果需要保留当前5.15.133.1版本的内核,可手动编译头文件:

  • 克隆微软WSL2内核仓库:
    git clone https://github.com/microsoft/WSL2-Linux-Kernel.git
    
  • 切换到对应版本的标签:
    cd WSL2-Linux-Kernel
    git checkout linux-msft-wsl-5.15.133.1
    
  • 加载WSL2默认配置:
    cp Microsoft/config-wsl .config
    
  • 编译并安装内核头文件到系统目录:
    make headers_install INSTALL_HDR_PATH=/usr
    
  • 创建模块目录的软链接,让DKMS能找到头文件:
    sudo mkdir -p /lib/modules/5.15.133.1-microsoft-standard-WSL2/build
    sudo ln -s /usr/include/linux /lib/modules/5.15.133.1-microsoft-standard-WSL2/build/include/linux
    

方法3:直接指定DKMS的内核源码路径

如果已经拥有对应版本的内核源码或头文件,可在DKMS命令中直接指定路径:

sudo dkms build eatmydata/0.1 --kernelsourcedir=/path/to/your/kernel/source

内容的提问来源于stack exchange,提问作者hanshenrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 09:25:56