当前位置:首页>Linux>在Arch Linux上使用GVT-g直通Intel核显至Windows虚拟机

在Arch Linux上使用GVT-g直通Intel核显至Windows虚拟机

  • 2026-06-28 05:11:03
在Arch Linux上使用GVT-g直通Intel核显至Windows虚拟机

在Arch Linux上使用GVT-g直通Intel核显至Windows虚拟机#

NOTE

本文记录在 Arch Linux 主机上用 QEMU/KVM 将 Intel 核显以 GVT-g vGPU 形式分配给虚拟机的完整过程。写作时间为 2026-05,GVT-g 已经是维护状态很差的旧技术,但胜在操作简单、适合老平台折腾,作为在Arch Linux上Wine运行异常、或者必须使用Windows时的一种高性能且体验优秀的解决方案(GVT-g vGPU性能远超过其他虚拟机显卡),并不适合把它当作新硬件的长期方案。

先说结论和限制#

Intel GVT-g 是 Intel i915 驱动里的 vGPU/mdev 方案。它不是把整块核显独占直通给虚拟机,而是在宿主机继续使用核显的同时,把核显资源切成一个或多个 mediated device,再通过 VFIO 交给虚拟机。虚拟机里看到的是一块 Intel 显卡,可以安装 Intel 官方驱动,性能通常比 QXL、virtio-gpu 或纯软件渲染好得多。

但是它有几个必须先接受的限制:

  1. GVT-g 主要支持 Broadwell 到 Comet Lake 这一代区间的 Intel iGPU。Ice Lake 移动平台、Gen11 以及更新的 Xe/Gen12 架构通常不支持 GVT-g。新平台应优先看 SR-IOV 或完整设备直通。
  2. Intel 的 intel/gvt-linux 仓库已经在 2024-10-03 归档,并明确写明项目不再维护,且存在已知安全逃逸问题。因此不要把不可信虚拟机接到这个方案上。
  3. GVT-g 依赖 Intel VT-d/IOMMUi915.enable_gvt=1kvmgtmdevVFIO 以及 libvirt/QEMU 对 mdev 的支持。少一个环节都会导致 mdev_supported_types 不出现。

本文的宿主机为 Intel CPU + Intel 核显,核显 PCI 地址为 0000:00:02.0。这是多数笔记本和台式机的默认地址,但不要盲信,实际应以 lspci -D -nn 为准。

一、BIOS/UEFI 固件设置#

重启进入主板或笔记本固件设置,确认至少开启:

  • Intel Virtualization Technology
     或 VT-x:KVM 虚拟化 CPU 需要。
  • Intel VT-d
    :IOMMU/VFIO 需要,GVT-g 必须启用。
  • 核显保持启用:如果机器有独显,不要把 iGPU 完全禁用。

进入系统后可以先做硬件检查:

Terminal window

1

lscpu|grep-E'Virtualization|Model name'

2

lspci-D-nn|grep-Ei'vga|3d|display'

输出结果应类似,保证核显型号在上述允许范围内:

1

0000:00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917]

二、安装 QEMU/KVM、libvirt 和 virt-manager#

先更新系统:

Terminal window

1

sudopacman-Syyu

安装 QEMU/KVM、libvirt 和 virt-manager 以及必要依赖:

Terminal window

1

sudopacman-Sqemu-fullvirt-managerlibvirtovmfdnsmasqvde2iproute2

这里需要注意一个 Arch 包名变化:当前 Arch 官方仓库中的 OVMF 包名是 edk2-ovmf,不是 ovmf (本文写作时间为2026年5月)。如果 pacman 报 target not found: ovmf,请使用:

Terminal window

1

sudopacman-Sqemu-fullvirt-managerlibvirtedk2-ovmfdnsmasqvde2iproute2

各包的作用如下:

  • qemu-full
    :完整 QEMU 安装集合。提供 qemu-system-x86_64qemu-img、各类 block/audio/display 后端和桌面虚拟化常用模块。GVT-g 最终由 QEMU 的 vfio-pci 设备把 mdev 交给虚拟机。
  • virt-manager
    :图形化虚拟机管理器。它调用 libvirt 创建、编辑、启动虚拟机,适合先完成 Windows/Linux 虚拟机基础配置,再手动补充 GVT-g XML。
  • libvirt
    :虚拟机管理守护进程和 API。负责保存 domain XML、管理存储池、网络、权限、mdev/hostdev 设备,以及调用 QEMU。
  • edk2-ovmf
     / 老文档里的 ovmf:虚拟机 UEFI 固件。Windows 11 基本应使用 OVMF;Secure Boot 相关固件文件通常位于 /usr/share/edk2/x64/
  • dnsmasq
    :libvirt 默认 NAT 网络的 DHCP/DNS 后端。一般不要手动启动系统级 dnsmasq.service,libvirt 会为每个虚拟网络启动自己的 dnsmasq 实例。
  • vde2
    :Virtual Distributed Ethernet,QEMU 可用的虚拟以太网工具。普通 virt-manager/libvirt NAT 网络不一定直接用到它,但安装完整 QEMU 桌面环境时常见。
  • iproute2
    :提供 ipsstc 等网络工具。排查 virbr0、tap、路由和地址时必备。

如果 libvirt 默认 NAT 网络报错,还可能需要额外安装:

Terminal window

1

sudopacman-Siptables-nft

libvirt 把 dnsmasq 和 iptables-nft 都列为默认 NAT/DHCP 网络相关的可选依赖。

启用 libvirt:

Terminal window

1

sudosystemctlenable--nowlibvirtd

把当前用户加入常用虚拟化组:

Terminal window

1

sudousermod-aGlibvirt,kvm"$USER"

注销并重新登录,或者临时执行:

Terminal window

1

newgrplibvirt

启动并设置默认 NAT 网络自启:

Terminal window

1

sudovirshnet-autostartdefault

2

sudovirshnet-startdefault

3

sudovirshnet-list--all

如果 default 已经是 active,net-start 报错“already active”是正常现象。

三、设置 GRUB 内核参数#

GVT-g 需要 IOMMU 和 i915 GVT 开关。编辑:

Terminal window

1

vim/etc/default/grub

找到 GRUB_CMDLINE_LINUX_DEFAULT,加入下面这些参数:

1

intel_iommu=on iommu=pt i915.enable_gvt=1 i915.enable_guc=0 i915.enable_fbc=0

一个完整例子:

GRUB_CMDLINE_LINUX_DEFAULT

1

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"

2

3

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet intel_iommu=on iommu=pt i915.enable_gvt=1 i915.enable_guc=0 i915.enable_fbc=0"

参数解释:

  • intel_iommu=on
    :启用 Intel VT-d/IOMMU。没有它,VFIO/mdev 设备无法安全分配给虚拟机。
  • i915.enable_gvt=1
    :启用 i915 的 GVT-g 支持。没有它,通常不会出现 /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/
  • i915.enable_guc=0
    :关闭 GuC/HuC 固件加载。ArchWiki 中对 GVT-g 与 GuC/HuC 的组合有警告,为了稳定性这里按 GVT-g 文档关闭。
  • i915.enable_fbc=0
    :可选,关闭 framebuffer compression。在使用 DMA-BUF 显示的场景下更稳定。
  • iommu=pt
    :可选,把未直通设备放在 passthrough IOMMU 模式,可能降低宿主机 IOMMU 开销。

生成 GRUB 配置:

Terminal window

1

sudogrub-mkconfig-o/boot/grub/grub.cfg

然后重启:

Terminal window

1

sudoreboot

重启后确认参数生效:

Terminal window

1

cat/proc/cmdline

2

dmesg|grep-Ei'DMAR|IOMMU|GVT|i915'

能看到类似 Intel-IOMMU: enabledDMARGVTi915 的相关输出则证明配置成功。如果完全没有 IOMMU 信息,先参考第一步在 BIOS 检查 VT-d,再检查 GRUB 参数是否真的生效。

四. 启动 KVM、VFIO 和 mdev 模块#

创建 /etc/modules-load.d/kvm.conf

Terminal window

1

sudoedit/etc/modules-load.d/kvm.conf

写入:

/etc/modules-load.d/kvm.conf

1

kvm

2

kvm_intel

3

kvmgt

4

vfio

5

vfio_iommu_type1

6

mdev

说明:

  • kvm
    :KVM 核心模块。
  • kvm_intel
    :Intel CPU 的 KVM 加速模块。AMD 平台才是 kvm_amd,但本文是 Intel GVT-g。
  • kvmgt
    :Intel GVT-g 的 KVM 后端。
  • vfio
    :VFIO 核心,用于直通设备到虚拟机。
  • vfio_iommu_type1
    :VFIO IOMMU 后端,GVT-g mdev 需要它来分配给虚拟机。
  • mdev
    :Linux mediated device 框架。

有些内核会把某些模块编译进内核,lsmod 看不到不一定是坏事;但如果systemd-modules-load 明确报模块不存在,要确认当前正在运行的内核和/usr/lib/modules/$(uname -r) 是否匹配。Arch 更新内核后未重启时,很容易出现“新模块目录已安装,当前运行旧内核加载不到模块”的现象。

立即加载一次,避免等待重启:

Terminal window

1

sudomodprobekvm

2

sudomodprobekvm_intel

3

sudomodprobevfio

4

sudomodprobevfio_iommu_type1

5

sudomodprobemdev

6

sudomodprobekvmgt

检查:

Terminal window

1

lsmod|grep-E'kvm|kvm_intel|kvmgt|vfio|mdev'

再检查核显是否暴露 mdev 类型:

Terminal window

1

ls/sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/

如果目录不存在,优先排查:

  1. CPU/iGPU 是否在 GVT-g 支持范围内。
  2. BIOS 是否开启 VT-d。
  3. /proc/cmdline
     是否真的有 intel_iommu=on i915.enable_gvt=1 i915.enable_guc=0
  4. kvmgt
     模块是否成功加载。
  5. dmesg | grep -i gvt
     是否出现 Unsupported device. GVT-g is disabled

五、安装并使用 mdevctl 创建 GVT-g vGPU#

mdevctl 是 mediated device 的管理和持久化工具。它会把定义保存到 /etc/mdevctl.d/,并通过 udev 在父设备可用时自动创建设置为 auto 的 mdev。

安装 mdevctl 的 AUR 包:

Terminal window

1

yay-Smdevctl

安装后列出可创建的 mdev 类型:

Terminal window

1

mdevctltypes

具体名字由平台决定,一般来说,同一平台内编号更低的类型分配更多显存、更高分辨率或更多 GPU 时间片,但可同时创建的实例更少。创建前可以看 mdevctl types 命令的输出:

例如:

Terminal window

1

0000:00:02.0

2

i915-GVTg_V5_4

3

Availableinstances:0

4

DeviceAPI:vfio-pci

5

Name:GVTg_V5_4

6

Description:low_gm_size:128MB,high_gm_size:512MB,fence:4,resolution:1920x1080,weight:4

7

i915-GVTg_V5_8

8

Availableinstances:0

9

DeviceAPI:vfio-pci

10

Name:GVTg_V5_8

11

Description:low_gm_size:64MB,high_gm_size:384MB,fence:4,resolution:1024x768,weight:2

定义一个自动启动的 GVT-g vGPU:

Terminal window

1

sudomdevctldefine--auto--uuid $(uuidgen) --parent0000:00:02.0--typei915-GVTg_V5_4

注意:define --auto 的含义是“创建持久化定义,并设置为父设备出现时自动启动”。它不会总是等价于“当前立刻创建一个已经运行的 mdev”。为了现在就用,继续执行:

Terminal window

1

sudomdevctlstart--uuid"$GVT_UUID"

检查当前运行的 mdev:

Terminal window

1

mdevctllist

2

mdevctllist-d

3

ls-l"/sys/bus/mdev/devices/$GVT_UUID"

可以看到 GVT-g vGPU 设备成功创建,如果 virt-manager 或 libvirt 看不到新设备,重启 libvirt:

Terminal window

1

sudosystemctlrestartlibvirtd

如果要删除设备:

Terminal window

1

sudomdevctlstop--uuid"$GVT_UUID"

2

sudomdevctlundefine--uuid"$GVT_UUID"

六、用 virt-manager 创建基础虚拟机#

建议先创建一台普通虚拟机,安装好系统和驱动,再添加 GVT-g。这样排错简单,毕竟如果加 GVT-g vGPU 后黑屏,还能回退到普通显示设备。

6.1 新建虚拟机#

打开 virt-manager (安装后在DE桌面环境中名字往往是 “虚拟系统管理器”) ,在界面中:

  1. 连接到 QEMU/KVM 系统会话,不是用户会话。系统会话通常显示为 qemu:///system,权限和 mdev/VFIO 配合更省事。
  2. 点击“新建虚拟机”。
  3. 选择本地 ISO,例如 Windows 11 的镜像文件。
  4. 选择系统类型。Windows 11 请选择 Windows 11,或至少 Windows 10/11 相近模板。
  5. 分配 CPU 和内存。示例:4 vCPU、8 GiB RAM。
  6. 创建 qcow2 磁盘。示例:60 GiB 或更大。
  7. 勾选“安装前自定义配置”。

新建虚拟机

6.2 配置基础硬件#

在“概况”里调整:

  • 芯片组:Q35
  • 固件:UEFI x86_64 / OVMF。Windows 11 推荐 UEFI + TPM 2.0。
  • CPU:host-passthrough。注意在拓扑中勾选手动设置CPU拓扑,例如设置 sockets=1(插槽数)、cores=2(核心数)、threads=2(线程数)即表示共分配 1x2x2=4 个CPU核心。
  • 磁盘总线:新装系统推荐 VirtIO,但 Windows 安装时要加载 VirtIO 驱动 ISO;为了省事也可以先用 SATA,安装完再迁移。
  • 网卡:virtio 性能最好;若安装阶段缺驱动,可临时用 e1000e
  • 显示:初始安装阶段先保留 SPICE + Video QXL 或 Virtio,安装完系统和远程访问后再移除。
  • Windows 11:添加 TPM,型号选 CRB,版本 2.0

配置基础硬件

启动虚拟机,完成系统安装。Windows 客户机里建议安装:

  • VirtIO 驱动:磁盘、网卡、balloon、qemu guest agendt 等客户机驱动,可以点击下载链接跳转至Fedora People的virtio-win.iso最新版下载页面。
  • Intel 核显驱动:添加 GVT-g 后需要它接管 vGPU,可以先在 Intel 官网下载驱动程序

在虚拟机下载 virtio-win.iso 后可以直接在资源管理器中双击打开,之后分别安装 virtio-win-gt-x64.msi(图形相关驱动)和 virtio-win-guest-tools-x64.msi(增强功能工具)。安装完成后重启虚拟机。

安装 virtio-win 驱动

安装 Intel 核显驱动

安装 virtio-win 驱动后主机便可以与虚拟机共享剪贴板、传输文件、调整分辨率(但其驱动的 QXL 虚拟显卡性能远远不如接下来将要添加的 GVT-g vGPU)。

七、在 virt-manager 中添加 GVT-g vGPU#

关闭虚拟机,注意不要挂起,而是完全关闭虚拟机。

  1. 打开虚拟机“详细信息”。
  2. 点击“添加硬件”。
  3. 选择 MDEV主机设备
  4. 找到刚创建的 GVT-g vGPU mdev 设备,名称通常包含 UUID,或显示为 mdev_...
  5. 添加到虚拟机。

添加 GVT-g mdev 设备

添加后启动虚拟机,如果一切顺利,客户机里应该能看到新的 Intel 显卡设备(或除了已经添加的QXL显卡外,额外显示一个 Microsoft 标准显示适配器),安装官方的 Intel 显卡驱动后就可以使用了。

八、显示输出:使用 Looking Glass 标准共享内存#

安装好 Intel 显卡驱动后,虚拟机里通常会同时看到 QXL/virtio 虚拟显卡和 Intel GVT-g vGPU。为了让 Windows 桌面真正跑在 Intel vGPU 上,同时获得比 SPICE/QXL 更流畅的低延迟画面,本文使用 Looking Glass 作为显示输出方案。

NOTE

需要特别说明的是:Looking Glass 官方更推荐 KVMFR模块,因为KVMFR可以让 GPU 通过 DMA 访问共享内存,性能更好。但经过实测KVMFR方式会与virtiofs冲突,无法将Arch Linux主机的文件夹共享至虚拟机,原因是virtiofs依赖虚拟机内存共享来完成零拷贝的数据读写,但是virtiofs无法将KVMFR模块创建的设备的内存共享,造成冲突。因此本文按照 Looking Glass B7 文档中的IVSHMEM 共享内存方式方式配置,也就是使用/dev/shm/looking-glass 作为标准共享内存后端。

8.1 在 Windows 虚拟机中安装 Looking Glass Host#

安装步骤:

  1. 在 Windows 虚拟机里打开 Looking Glass 下载页:https://looking-glass.io/downloads。
  2. 下载与宿主机客户端版本一致的 looking-glass-host-setup.exe,例如 B7 对 B7。
  3. 右键安装器,选择“以管理员身份运行”。
  4. 按安装向导一路继续。默认选项适合大多数场景,安装器会安装 IVSHMEM 驱动和 Looking Glass Host 服务。
  5. 安装完成后,Looking Glass Host 会作为 Windows 服务运行。

安装完成后关闭虚拟机,继续下面的显示设备调整和共享内存配置。

8.2 调整虚拟机显示设备#

先关闭虚拟机,不要挂起。

打开 virt-manager(虚拟系统管理器),选择已经创建的 Windows 虚拟机,进入“虚拟机详情”:

  1. 左侧找到“显卡”设备,通常是“显卡 QXL”,点击进入。
  2. 将视频型号改为 None。这样 Windows 启动后主要显示设备就是 Intel GVT-g vGPU。
  3. 如想要保留Windows启动前的BIOS画面,把上述的视频型号改为 Ramfb 即可。

调整显示设备

8.3 添加 Looking Glass 标准共享内存设备#

在 virt-manager 的虚拟机详情界面,点击第一个 概况 ,再点击 详情 旁的 XML,滚动到最后,在 <devices> 节点内加入一个新的共享内存设备:

1

<shmemname="looking-glass">

2

<modeltype="ivshmem-plain"/>

3

<sizeunit="M">32</size>

4

</shmem>

添加共享内存设备

其中 32M 适合 1920x1080 SDR。Looking Glass 官方给出的计算方式是:

1

宽度 x 高度 x BPP x 2 = frame size in bytes

2

frame size / 1024 / 1024 = frame size in MiB

3

frame size in MiB + 10 = required size in MiB

4

向上取整到 2 的幂 = 最终大小

其中 SDR 32-bit RGB 的 BPP 为 4,HDR 64-bit 为 8。常见取值可以直接按下面选择:

分辨率
SDR
HDR
1920x1080
32M
64M
1920x1200
32M
64M
2560x1440
64M
128M
3840x2160
128M
256M

这个值不是越大越好,设得过大只会固定占用宿主机内存。若设置太小,Looking Glass 会截断画面底部并提示需要增大共享内存。

8.4 设置 /dev/shm/looking-glass 权限#

标准共享内存方式会使用 /dev/shm/looking-glass。默认情况下,这个文件可能由 QEMU 创建并归 QEMU 用户所有,普通用户运行 looking-glass-client 时无法读写。接下来我们使用 systemd-tmpfiles 预先创建并设置权限。

新建 /etc/tmpfiles.d/10-looking-glass.conf

Terminal window

1

vim/etc/tmpfiles.d/10-looking-glass.conf

写入:

/etc/tmpfiles.d/10-looking-glass.conf

1

# Type Path                    Mode UID         GID Age Argument

2

f /dev/shm/looking-glass       0660 User        kvm -

把其中的 User 改成实际的 Arch Linux 用户名。然后执行:

Terminal window

1

sudosystemd-tmpfiles--create/etc/tmpfiles.d/10-looking-glass.conf

2

ls-l/dev/shm/looking-glass

输出中应能看到文件归 Arch Linux 所使用的用户和 kvm 组所有,权限为 rw-rw----

如果后续修改了 <size unit='M'>...</size> 的大小,需要先关闭虚拟机,再删除旧共享内存文件再重新创建:

Terminal window

1

sudorm-f/dev/shm/looking-glass

2

sudosystemd-tmpfiles--create/etc/tmpfiles.d/10-looking-glass.conf

8.5 在 Arch Linux 宿主机安装 Looking Glass Client#

Arch 上可从 AUR 安装 Looking Glass 客户端。AUR 包名是 looking-glass,安装后提供的命令是 looking-glass-client

Terminal window

1

yay-Slooking-glass

安装完成后在 virt-manager 启动 Windows 虚拟机,再打开桌面环境中的 Looking Glass Client 即可看到虚拟机画面,并且在安装 Intel 驱动后,直通的显卡也正常使用,其性能远超过普通的虚拟机自带显卡,完全可以作为在Arch Linux上必须使用Windows时的解决方案。

Looking Glass Client 显示虚拟机画面

九、验证虚拟机的 GVT-g vGPU 是否正常工作#

虚拟机启动前确认 mdev 存在:

Terminal window

1

mdevctllist

2

ls/sys/bus/mdev/devices/

启动虚拟机后查看 QEMU 日志:

Terminal window

1

sudojournalctl-ulibvirtd-b

2

sudols/var/log/libvirt/qemu/

3

sudotail-n200/var/log/libvirt/qemu/<虚拟机名称>.log

虚拟机内验证:设备管理器中应出现 Intel 显卡;安装 Intel 驱动后不应是 Microsoft基本显示适配器。

宿主机验证 GPU 活动可用:

Terminal window

1

sudopacman-Sintel-gpu-tools

2

sudointel_gpu_top

如果虚拟机观看视频时能看到 render/blitter/video 活动变化,说明 vGPU 在工作。

十、常见故障#

10.1 /mdev_supported_types 不存在#

检查:

Terminal window

1

cat/proc/cmdline

2

lsmod|grep-E'kvmgt|mdev|vfio'

3

dmesg|grep-Ei'gvt|i915|dmar|iommu'

4

lspci-D-nn|grep-Ei'vga|display'

常见原因:

  • 硬件不是 Broadwell 到 Comet Lake 这类 GVT-g 支持平台。
  • BIOS 没开 VT-d。
  • GRUB 参数没有生效。
  • i915.enable_guc=0
     没设置,或 GuC/HuC 配置与 GVT-g 冲突。
  • kvmgt
     没加载。
  • 内核升级后未重启,导致当前内核找不到匹配模块。

10.2 mdevctl define/start 报没有空间或没有实例#

检查可用实例数:

Terminal window

1

cat/sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V4_1/available_instances

如果是 0,说明该类型已经被占用,或显存资源不够。可以换更小类型,例如从 V4_1 换成 V4_2V4_4,具体以 mdevctl types 输出为准。

10.3 virt-manager 看不到 mdev#

先确认 mdev 已启动:

Terminal window

1

mdevctllist

再重启 libvirt:

Terminal window

1

sudosystemctlrestartlibvirtd

还可以用 libvirt 节点设备命令看:

Terminal window

1

virshnodedev-list--capmdev

2

virshnodedev-list--capmdev_types

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 03:48:35 HTTP/2.0 GET : https://f.mffb.com.cn/a/491989.html
  2. 运行时间 : 0.082264s [ 吞吐率:12.16req/s ] 内存消耗:4,761.95kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=48f5d4d345fd4d73ea751bc4d63b13f5
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000652s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000930s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001417s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000300s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000835s ]
  6. SELECT * FROM `set` [ RunTime:0.000234s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000767s ]
  8. SELECT * FROM `article` WHERE `id` = 491989 LIMIT 1 [ RunTime:0.000616s ]
  9. UPDATE `article` SET `lasttime` = 1783108115 WHERE `id` = 491989 [ RunTime:0.003124s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000279s ]
  11. SELECT * FROM `article` WHERE `id` < 491989 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000517s ]
  12. SELECT * FROM `article` WHERE `id` > 491989 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000471s ]
  13. SELECT * FROM `article` WHERE `id` < 491989 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000849s ]
  14. SELECT * FROM `article` WHERE `id` < 491989 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001770s ]
  15. SELECT * FROM `article` WHERE `id` < 491989 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001740s ]
0.083874s