[23:29:11] >>> 开始为虚拟机 [fnOS] 配置 GPU 分区
[23:29:11] 选中物理显卡: Intel(R) HD Graphics 530
[23:29:11] 设备路径:
[23:29:11] 正在执行: 环境准备...
[23:29:11] [成功] 环境准备: 策略已成功应用。
[23:29:11] 正在执行: 电源检查...
[23:29:12] [成功] 电源检查: 虚拟机已关机。
[23:29:12] 正在执行: 系统优化...
[23:29:12] [成功] 系统优化: MMIO 地址空间配置完成。
[23:29:12] 正在执行: 分配显卡...
[23:29:19] [成功] 分配显卡: GPU 分区已成功创建。
[23:29:19] 正在执行: 驱动安装...
[23:29:19] 正在扫描所有挂载硬盘的分区...
[23:29:22] 扫描完成:共发现 1 个分区,分布在 1 个磁盘上。
[23:29:22] 请手动选择操作系统所在的分区...
[23:30:36] 远程环境初始化完成,临时目录: [fnOS.vhdx] 分区 2 (63.9 GB)
[23:30:36] 正在自动启动虚拟机以初始化网络...
[23:30:40] 正在嗅探虚拟机 IP 地址...
[23:30:40] 获取到 MAC 地址: 00:15:5D:01:45:02,正在匹配 IP...
[23:30:40] 成功获取 IP 地址: 192.168.1.67
[23:31:00] >>> 开始 Linux 部署流程
[23:31:00] 连接参数 - Host: 192.168.1.67, Port: 22, User: seien
[23:31:01] 正在等待虚拟机网络就绪并获取 IP...
[23:31:01] 虚拟机 IP 已获取: 192.168.1.67,正在建立 SSH 连接...
[23:31:02] 远程环境初始化完成,临时目录: /home/seien/exhyperv_deploy
[23:31:02] 正在定位并上传宿主机 GPU 驱动...
[23:32:54] 正在上传 WSL 依赖库...
[23:33:08] 正在下载配置脚本...
[23:33:09] --2026-03-02 23:33:09-- https://raw.githubusercontent.com/Justsenger/ExHyperV/main/src/Linux/script/install_dxgkrnl.sh
[23:33:09] Connecting to 192.168.1.68:7897...
[23:35:23] failed: Connection timed out.
Retrying.
[23:35:24] --2026-03-02 23:35:24-- (try: 2) https://raw.githubusercontent.com/Justsenger/ExHyperV/main/src/Linux/script/install_dxgkrnl.sh
Connecting to 192.168.1.68:7897...
[23:35:24] connected.
[23:35:24] Proxy request sent, awaiting response...
[23:35:24] 200 OK
Length: 22398 (22K) [text/plain]
Saving to: ‘/home/seien/exhyperv_deploy/install_dxgkrnl.sh’
[23:35:24]
0K .......... ....
[23:35:25] ...... . 100% 580K=0.04s
2026-03-02 23:35:25 (580 KB/s) - ‘/home/seien/exhyperv_deploy/install_dxgkrnl.sh’ saved [22398/22398]
[23:35:25] --2026-03-02 23:35:25-- https://raw.githubusercontent.com/Justsenger/ExHyperV/main/src/Linux/script/configure_system.sh
[23:35:25] Connecting to 192.168.1.68:7897...
[23:35:25] connected.
[23:35:25] Proxy request sent, awaiting response...
[23:35:25] 200 OK
Length: 5347 (5.2K) [text/plain]
Saving to: ‘/home/seien/exhyperv_deploy/configure_system.sh’
0K ..
[23:35:25] ... 100% 11.3M=0s
2026-03-02 23:35:26 (11.3 MB/s) - ‘/home/seien/exhyperv_deploy/configure_system.sh’ saved [5347/5347]
[23:35:25] --2026-03-02 23:35:26-- https://raw.githubusercontent.com/Justsenger/ExHyperV/main/src/Linux/script/setup_graphics.sh
[23:35:25] Connecting to 192.168.1.68:7897...
[23:35:25] connected.
[23:35:25] Proxy request sent, awaiting response...
[23:35:26] 200 OK
Length: 4082 (4.0K) [text/plain]
Saving to: ‘/home/seien/exhyperv_deploy/setup_graphics.sh’
[23:35:26]
0K ... 100% 30.3M=0s
2026-03-02 23:35:26 (30.3 MB/s) - ‘/home/seien/exhyperv_deploy/setup_graphics.sh’ saved [4082/4082]
[23:35:26] 正在编译安装 dxgkrnl 内核模块 (这可能需要一些时间)...
[23:35:26] ========================================
dxgkrnl Installation Script
========================================
Initial target kernel: 6.12.18-trim
[23:35:26] Current running kernel: 6.12.18-trim
Basic dependencies are already installed.
========================================
Checking Kernel Headers
========================================
Target kernel version: 6.12.18-trim
✓ Kernel headers found for 6.12.18-trim
[23:35:26]
========================================
Preparing Source Code
========================================
Detected kernel version: 6.12
Using branch: linux-msft-wsl-6.6.y (for kernel 6.6+)
Cloning WSL2-Linux-Kernel repository...
[23:35:26] Cloning into '/tmp/WSL2-Linux-Kernel'...
[23:36:35] Already on 'linux-msft-wsl-6.6.y'
[23:36:35] Your branch is up to date with 'origin/linux-msft-wsl-6.6.y'.
[23:36:35]
========================================
Build Information
========================================
Target kernel: 6.12.18-trim
Module version: 308063c46
Source branch: linux-msft-wsl-6.6.y
========================================
Applying Patches
========================================
Applying patches for 6.6 branch...
- 0001-Add-a-gpu-pv-support.patch (Shared)
[23:36:36] Checking patch drivers/hv/dxgkrnl/dxgmodule.c...
Applied patch drivers/hv/dxgkrnl/dxgmodule.c cleanly.
[23:36:36] - 0002-Fix-eventfd_signal.patch
[23:36:37] Checking patch drivers/hv/dxgkrnl/dxgmodule.c...
Applied patch drivers/hv/dxgkrnl/dxgmodule.c cleanly.
[23:36:37]
========================================
Installing Module Files
[23:36:37] ========================================
Copying dxgkrnl driver...
[23:36:38] Copying include files...
[23:36:38] Checking eventfd_signal API compatibility...
[23:36:38] ✓ Kernel uses 1-parameter eventfd_signal API, no fix needed
Configuring Makefile...
Creating DKMS configuration...
✓ Module files installed to /usr/src/dxgkrnl-308063c46
========================================
Building and Installing DKMS Module
========================================
Verifying kernel headers...
[23:36:38] ✓ Headers path: /usr/src/linux-headers-6.12.18-trim
[23:36:38] Removing existing dxgkrnl/308063c46...
[23:36:38] Deleting module dxgkrnl-308063c46 completely from the DKMS tree.
[23:36:38]
Adding module to DKMS...
[23:36:38] Creating symlink /var/lib/dkms/dxgkrnl/308063c46/source -> /usr/src/dxgkrnl-308063c46
[23:36:38]
Building module (this may take a few minutes)...
[23:36:38] Sign command: /lib/modules/6.12.18-trim/build/scripts/sign-file
[23:36:38] Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
[23:36:38]
Building module:
Cleaning build area...
[23:36:38] make -j2 KERNELRELEASE=6.12.18-trim -C /lib/modules/6.12.18-trim/build M=/var/lib/dkms/dxgkrnl/308063c46/build...
[23:36:40] (bad exit status: 2)
[23:36:40] Error! Bad return status for module build on kernel: 6.12.18-trim (x86_64)
Consult /var/lib/dkms/dxgkrnl/308063c46/build/make.log for more information.
[23:36:40]
========================================
Build Failed
========================================
DKMS build failed. Please check the build log for details:
/var/lib/dkms/dxgkrnl/308063c46/build/make.log
Common issues:
1. Kernel version too new - patches may not be compatible
2. Missing dependencies - ensure all build tools are installed
3. Kernel headers mismatch - verify headers match kernel version
Showing last 50 lines of build log:
----------------------------------------
[23:36:41] DKMS make.log for dxgkrnl-308063c46 for kernel 6.12.18-trim (x86_64)
Mon Mar 2 11:36:39 PM CST 2026
make: Entering directory '/usr/src/linux-headers-6.12.18-trim'
CC [M] /var/lib/dkms/dxgkrnl/308063c46/build/dxgmodule.o
CC [M] /var/lib/dkms/dxgkrnl/308063c46/build/hmgr.o
/var/lib/dkms/dxgkrnl/308063c46/build/hmgr.c: In function ‘expand_table’:
/var/lib/dkms/dxgkrnl/308063c46/build/hmgr.c:196:13: error: implicit declaration of function ‘vzalloc’; did you mean ‘kzalloc’? [-Werror=implicit-function-declaration]
196 | vzalloc(new_table_size * sizeof(struct hmgrentry));
| ^~~~~~~
| kzalloc
/var/lib/dkms/dxgkrnl/308063c46/build/hmgr.c:195:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
195 | new_entry = (struct hmgrentry *)
| ^
/var/lib/dkms/dxgkrnl/308063c46/build/dxgmodule.c: In function ‘dxg_pci_probe_device’:
/var/lib/dkms/dxgkrnl/308063c46/build/dxgmodule.c:615:43: wa
[23:36:41] rning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
615 | DXG_TRACE("err: %d", ret);
| ^
/var/lib/dkms/dxgkrnl/308063c46/build/hmgr.c:205:17: error: implicit declaration of function ‘vfree’; did you mean ‘kvfree’? [-Werror=implicit-function-declaration]
205 | vfree(table->entry_table);
| ^~~~~
| kvfree
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:229: /var/lib/dkms/dxgkrnl/308063c46/build/hmgr.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/usr/src/linux-headers-6.12.18-trim/Makefile:1932: /var/lib/dkms/dxgkrnl/308063c46/build] Error 2
make: *** [Makefile:224: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-6.12.18-trim'
----------------------------------------
[23:36:41] [回滚] Linux 部署失败,正在移除 GPU 分区...
[23:36:41] >>> [严重错误] Linux 部署失败: Linux 配置失败: dxgkrnl 编译脚本执行失败,请检查日志。
日志如下