WSL2编译使用6.6版本内核

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、有什么变化
  • 二、下载6.6内核
  • 三、开始编译
    • 1.安装环境
    • 2.开始编译
  • 四、使用
    • 1.杀死虚拟机
    • 2.防止内核文件
    • 3.修改配置文件
  • 总结


前言

最近出了一件不大不小的事,WSL2的内核又更新了,上次编译还是在5.10版本时,当时为了解决不能使用USB设备的问题,想想已经是好几年前的事情了。最近微软发布了6.6内核,今天就带着不太会的小伙伴体验下6.6的内核。


一、有什么变化

First WSL2 kernel release updated to v6.6 from v5.15
Release rolling-lts/wsl/6.6.36.3
Update to stable kernel version v6.6.36
New x86 and ARM64 configs including loadable modules
dxgkrnl: Do not print error messages when virtual GPU is not present
Fewer out of tree patches. Sets of patches now included from upstream:
page reporting commits (feature/page-reporting/5.15)
vpci commits (feature/vpci/5.15)
memory reclaim commits (feature/memory-reclaim/5.15)
vsock commits (fix/vsock/5.15)
Release Notes Update - July 3rd, 2024: Kernel Module Support in WSL2

We are very excited kernel module support is now available in WSL2! With this latest kernel update, a large set of loadable modules has been introduced, accompanied by an overall config file update. However, please be aware that when using a custom kernel, the default module support is disabled for now. If you’re using a custom kernel, we recommend you edit your kernel config file to build-in all of the modules that you need.

Thank you for your continued support!

kernel module support is now available in WSL2!,就是说5.15不支持module,从6.6开始正式支持。

二、下载6.6内核

我试了下还是不能通过update的方式直接升级6.6,想尝鲜的小伙伴可以自己编译,方法很简单。我也不整那些复杂的了,直接下在源代码就行了,巨硬已经给你打包好了。

6.6内核源代码zip包

在这里插入图片描述

三、开始编译

1.安装环境

建议使用Ubuntu-22.04系统,我就是这个系统,编译成功。

 sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev

2.开始编译

你可以配置自己需要的功能,使用下面的命令:

 make menuconfig KCONFIG_CONFIG=Microsoft/config-wslmake -j 6 KCONFIG_CONFIG=Microsoft/config-wsl

6是你希望使用的线程数,不加的话就是单线程编译,估摸得1-2小时,建议多线程。

你也可以用默认的配置:

make -j 6 KCONFIG_CONFIG=Microsoft/config-wsl

等待编译完成即可,成功之后build-in的代码都在bzImage这个文件里面,这个就是内核文件,一般放在arch/x86/boot/目录下。

四、使用

1.杀死虚拟机

你先退掉所有的WSL2虚拟机,记得保存数据。

不需要保存数据用下面的命令:

wsl --shutdown

2.防止内核文件

将上面编译出来的bzImage文件放在电脑的任何位置,切记不要放在WSL2虚拟机的文件系统中,放Windows文件系统中就行了。

3.修改配置文件

新内核要想生效需要改下配置文件,默认的配置文件是不存在的,你需要自己创建一个。到你用户目录(C:\Users\<你的用户名>)里新建一个文本文档把文件名和后缀都改成.wslconfig,然后贴上我的配置:

# Settings apply across all Linux distros running on WSL 2
[wsl2]# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
#memory=4GB # Sets the VM to use two virtual processors
#processors=4# Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at https://github.com/microsoft/WSL2-Linux-Kernel
#kernel=C:\\temp\\myCustomKernel
kernel=E:\\Test\\Linux\\WSL2\\6.6\\bzImage# Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6
#kernelCommandLine = vsyscall=emulate# Sets amount of swap storage space to 8GB, default is 25% of available RAM
#swap=8GB# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
#swapfile=C:\\temp\\wsl-swap.vhdx# Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free
pageReporting=true#一个布尔值,用于在 WSL 中打开或关闭对 GUI 应用程序 (WSLg) 的支持。 仅适用于 Windows 11
guiApplications=true#一个布尔值,用于在 WSL 2 发行版实例启动时打开显示 dmesg 内容的输出控制台窗口。 仅适用于 Windows 11。
#debugConsole=true# Turn off default connection to bind WSL 2 localhost to Windows localhost
#一个布尔值,用于指定绑定到 WSL 2 VM 中的通配符或 localhost 的端口是否应可通过 localhost:port 从主机连接。
#localhostforwarding=true# Disables nested virtualization
#用于打开或关闭嵌套虚拟化的布尔值,使其他嵌套 VM 能够在 WSL 2 中运行。 仅适用于 Windows 11。
#nestedVirtualization=false#如果值为 mirrored,则会启用镜像网络模式。 默认或无法识别的字符串会生成 NAT 网络。
#networkingMode=mirrored
networkingMode=NAT#如果设置为 true,则 Windows 防火墙规则以及特定于 Hyper-V 流量的规则可以筛选 WSL 网络流量。
firewall=false#更改将 DNS 请求从 WSL 代理到 Windows 的方式
#dnsTunneling=true#强制 WSL 使用 Windows 的 HTTP 代理信息
##autoProxy=true

注意上面的kernel=E:\\Test\\Linux\\WSL2\\6.6\\bzImage就是6.6内核的位置,改成你自己的就行了,之后不需要重启电脑,直接打开虚拟机发行版就行了。

注意:上面的所有参数都可以注释掉,WSL2有默认值,可以根据喜好设置。


总结

1、不难,甚至很简单,我每次都是一把成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/43814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

品牌文化五大维度,构建品牌竞争力的秘诀!

品牌文化对于企业的发展和成功至关重要。 品牌文化不仅是企业和消费者之间的纽带&#xff0c;也是企业内部员工的凝聚力。 在当今竞争激烈的市场环境中&#xff0c;建立一个有活力和影响力的品牌文化是每个企业都需要认真思考和实践的事情。 品牌文化的五大维度包括价值观、…

前端面试题31(TCP与UDP区别)

TCP (Transmission Control Protocol) 和 UDP (User Datagram Protocol) 是两种在网络通信中常用的传输层协议&#xff0c;它们在多个方面存在显著差异&#xff0c;主要体现在以下几个方面&#xff1a; 连接方式&#xff1a; TCP 是面向连接的协议。在数据传输开始之前&#xf…

数字身份管理发展趋势:IAM 和数据安全相结合

数据安全和IAM作为网络安全领域中不同的学科而存在。然而&#xff0c;随着越来越多的组织利用云服务&#xff0c;情况发生了显著的转变。许多公司现在将重要的安全控制(例如管理存储、应用程序和网络的控制)委托给他们选择的云服务提供商(CSP)。 图&#xff1a;用户与云服务商职…

oracle(表空间分类、表空间操作、默认表空间)

文章目录 oracle数据库默认表空间列表表空间是什么&#xff1f;表空间的分类1.永久性表空间&#xff1a;2.临时性表空间&#xff1a;3.撤销表空间&#xff1a; 表空间的作用Oracle 系统自动建立的表空间默认表空间1&#xff0e;SYSTEM 表空间2&#xff0e;SYSAUX表空间3&#x…

01:简易的电动车防盗报警器

简易的电动车防盗报警器 1、震动传感器模块的使用2、使用震动传感器模块控制继电器开关3、433M无线发射接收模块的使用 需要材料&#xff1a; 1、51单片机 2、震动传感器模块 3、继电器模块 4、高功率喇叭 5、433M无线发射接收模块 6、弱干杜邦线 1、震动传感器模块的使用 接好…

u盘电脑格式化恢复,这里有3种简单有效的方法和视频教程!

我们今天将探讨如何在电脑格式化后恢复U盘数据。数据丢失是一个常见问题&#xff0c;尤其是当我们需要快速清理U盘或不慎执行了格式化操作时。在本文将分享几种简单而有效的方法&#xff0c;帮助您从格式化后的U盘中恢复数据。此外&#xff0c;我们还提供了相关的视频教程&…

大话光学原理:3.干涉与衍射

一、干涉 这是一束孤独的光&#xff0c;在真空的无垠中悄无声息地穿行。忽然&#xff0c;一堵高耸的墙壁挡住了它的去路&#xff0c;它别无选择&#xff0c;只能硬着头皮冲撞而去。在摸索中&#xff0c;它意外地发现墙壁上竟有两道孔隙&#xff0c;笔直而细长&#xff0c;宛如量…

嵌入式代码升级——IAP

目录 IAP的特点 实现 IAP 功能 STM32 正常的程序运行流程 STM32 加入IAP后的运行流程 程序执行流程 BootLoader程序 APP1程序 APP2程序 验证操作步骤 IAP&#xff08;In-Application Programming&#xff09;指的是在应用程序运行时对其自身的Flash存储器进行编程的操作…

【2024——CUMCM】Matlab快速入门

目录 常识 disp and input 字符串合并 sum 提取矩阵指定位置的元素 指定行列 指定行or指定列&#xff08;返回行/列向量&#xff09; 指定某些行 指定全部元素&#xff0c;按列拼接 size repmat 矩阵的运算 基本运算 形状相同的矩阵运算 每个元素同时和常数相乘或相…

异步主从复制

主从复制的概念 主从复制是一种在数据库系统中常用的数据备份和读取扩展技术&#xff0c;通过将一个数据库服务器&#xff08;主服务器&#xff09;上的数据变更自动同步到一个或多个数据库服务器&#xff08;从服务器&#xff09;上&#xff0c;以此来实现数据的冗余备份、读…

【2】A-Frame核心设计

一、基于HTML和Primitives的表达 1.HTML - 超文本标记语言 A-Frame 基于 HTML 和 DOM 之上&#xff0c;使用自定义元素的 polyfill。 HTML 是 Web 的构建块&#xff0c;提供了最易于访问的计算语言之一。无需安装或构建步骤&#xff0c;使用 HTML 创建仅涉及 HTML 文件中的文…

【STM32/HAL】嵌入式课程设计:简单的温室环境监测系统|DS18B20 、DHT11

前言 板子上的外设有限&#xff0c;加上想法也很局限&#xff0c;就用几个传感器实现了非常简单的监测&#xff0c;显示和效应也没用太复杂的效果。虽说很简单&#xff0c;但传感器驱动还是琢磨了不久&#xff0c;加上串口线坏了&#xff0c;调试了半天才发现不是代码错了而是…

ORA-12537: TNS:连接关闭/Io 异常: Got minus one from a read call

在另外一个数据库建立dblink的时候&#xff0c;发现执行命令报错&#xff1a; 被连接的数据库我也上去过&#xff0c;用工具尝试登陆也报错&#xff1a; IO Error: Got minus one from a read call, connect lapse 1 ms., Authentication lapse 0 ms. Got minus one from a …

设计模式探索:装饰器模式

1. 装饰器模式定义 装饰器模式&#xff08;Decorator Pattern&#xff09; 装饰器模式是一种结构型设计模式&#xff0c;允许向一个对象动态添加行为。在不改变类的接口的情况下&#xff0c;装饰器模式在原始类上增加额外的职责&#xff0c;并且支持多个装饰器嵌套使用。 装…

一个php文件怎么实现联系表单自动发送邮件

学习PHP&#xff1a;如何编写一个自动发送邮件的联系表单处理器&#xff1f; 无论是反馈意见、业务咨询&#xff0c;还是技术支持&#xff0c;联系表单都能为用户提供便捷的交流途径。AokSend将探讨如何通过一个PHP文件实现联系表单的自动发送邮件功能。 php文件&#xff1a;…

运用F5构建机器人防御,轻松应对恶意Bot威胁

数字化加快了信息的传播与交流&#xff0c;网络罪犯也借机纷纷涌向线上业务。攻击者通过暴力破解、字典攻击和撞库攻击破坏身份验证&#xff0c;导致账户被接管、欺诈、经济损失和客户不满&#xff0c;对应用的影响可能是灾难性的。面对日新月异的攻击&#xff0c;F5分布式云机…

作业/数据结构/2024/7/8

链表的相关操作作业&#xff1a; 1】 按值修改 2】按值查找&#xff0c;返回当前节点的地址 &#xff08;先不考虑重复&#xff0c;如果有重复&#xff0c;返回第一个&#xff09; 3】 逆置(反转) 4】释放链表 main.c #include "head.h"int main(int argc, con…

【IMU】 温度零偏标定

温度标定 IMU的零偏随着温度的变化而变化&#xff0c;在全温范围内形状各异&#xff0c;有些可能是单调的&#xff0c;有些可能出现拐点。 多项式误差温度标定 目的是对估计的参数进行温度补偿&#xff0c;获取不同温度时的参数值&#xff08;零偏、尺度、正交&#xff09;&…

向github远程仓库中push,要求使用token登录

Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 如上&#xff0c;当向github远程仓库push时&#xff0c;输入github的用户名和密码出现如上错误&#xff0c;要求使用token登录&#xff0c;此时只需要用户…

SpringBoot + MyBatisPlus 实现多租户分库

一、引言 在如今的软件开发中&#xff0c;多租户(Multi-Tenancy)应用已经变得越来越常见。多租户是一种软件架构技术&#xff0c;它允许一个应用程序实例为多个租户提供服务。每个租户都有自己的数据和配置&#xff0c;但应用程序实例是共享的。而在我们的Spring Boot MyBati…