收起左侧

i915-sriov驱动(飞牛 fnOS FPK)

0
回复
23
查看
[ 复制链接 ]

5

主题

19

回帖

0

牛值

江湖小虾

fnOS1.0上线纪念勋章飞牛百度网盘玩家

fnos-i915-sriov-kmod

飞牛私有云 (fnOS) 的 Intel 核显 SR-IOV 驱动 安装包(FPK)。

它和飞牛官方应用商店里的应用不一样:这是一个「编译安装」型驱动包,不是点装即用的预编译程序。 官方应用商店里的应用都是打包好的二进制,安装即用、由飞牛统一更新;而本 FPK 装的是内核驱动,安装时会在你的飞牛上用 DKMS 现场编译内核模块(需等待几分钟,并自动补齐 gcc / make / 内核头文件),编译完刷入 initramfs、重启即生效。

底层驱动源自社区上游 strongtz/i915-sriov-dkms(GPL-2.0)。装好后飞牛(作为宿主机)可开启 Intel 核显 SR-IOV,把核显切出多个虚拟核显(vGPU / VF),分配给飞牛内的虚拟机或 Docker 使用,实现多虚拟机共享核显硬解转码。

为什么是「编译安装」而不是进官方商店? 内核驱动必须和当前内核版本严格对应——飞牛一升级内核,驱动就得针对新内核重新编译,没法像普通应用那样一次打包永久通用。本 FPK 把这件事做成了最简路径:飞牛升级内核后,你只需在应用中心卸载本 FPK、再重新安装一次,它就会自动针对新内核重新编译,不用开 SSH、不用手敲 DKMS 命令。

适用前提(务必先确认)

  1. 飞牛为物理机直装(飞牛本身是宿主机),且 CPU 为支持 SR-IOV 的 Intel 核显(典型为 11 代及之后的酷睿核显)。
  2. 受支持内核:当前仅 6.17–6.197.0(上游 dkms.confBUILD_EXCLUSIVE_KERNEL 限制)。飞牛当前内核 6.18 在范围内;若飞牛升级到不在范围的版本,模块不会编译,安装脚本会明确提示。
  3. 非 Intel 核显、或不需要给虚拟机/Docker 分配 vGPU 的机器,安装本应用没有意义。

与官方应用商店应用 / 手动编译方案的区别

官方应用商店里的应用都是预编译好的二进制、点装即用;而本 FPK 装的是内核驱动,本质是**「编译安装」。手动编译方案是“每次 SSH 手敲一遍 DKMS 命令”;本 FPK 把这套过程做成了应用中心一键安装:仅在安装时针对当前内核编译并刷新 initramfs;飞牛更新内核后应用会自动显示“已停止”,点击启动会提示卸载本 FPK 再重新安装**即可自动重新编译(无需 SSH、无需手敲命令)。

  • check_toolchain():检测 dkms / gcc / make / 当前内核头文件,缺失先尝试 apt 补装,仍失败则明确报错并给出手动命令(不静默坏)。

  • DKMS addinstall--force 现场编译,覆盖飞牛自带 i915),随后 depmod -a + update-initramfs -u -k "$(uname -r)"

  • 仅在安装时编译,运行时不做后台重编

    • 编译发生在安装本应用(service_postinst)时:针对当前内核 dkms install --force 现场编译、随后 depmod -a + update-initramfs -u -k "$(uname -r)",重启飞牛即生效。

    • 不再安装内核更新钩子,飞牛更新内核后不会自动重编。

    • 内核变化检测(比对当前 uname -r 与安装时记录的内核基准文件 /etc/i915-sriov-kver),分两处协同:

      • daemon_status(fnOS 开机和状态查询的唯一入口):内核不一致 → 直接返回"未运行",应用在飞牛界面自动显示已停止
      • start_daemon(用户点击启动时):内核不一致 → 报错并引导「前往应用中心卸载并重新安装本应用」以重新编译驱动(不会自动重编,避免并发冲突与不确定行为)。i915 为开机关键驱动、不能热换,真正接管需等下一次重启。
  • 源码随 FPK 一并打包,安装时不联网下载任何外部包

安装

  1. 在飞牛应用中心 → 手动安装 → 选择 i915-sriov-kmod_1.0.0_x86.fpk

    安装进度卡在 55% 属正常现象:此时正在后台编译驱动(DKMS 现场编译内核模块),请耐心等待,不要取消或重复安装。实测 N150 CPU 约需 6 分钟,性能越弱耗时越长。

    屏幕截图2026-07-28133908.png

  2. 安装完成后重启飞牛

  3. 验证:SSH 登录飞牛执行

    
    

    若输出中包含 renderD128(或类似 renderD* 节点),说明 SR-IOV 版核显驱动已生效,可硬解。进一步验证 SR-IOV 能力:

    
    

    需要切出 vGPU 时,向 sriov_numvfs 写入所需数量(或通过 /etc/modprobe.d/i915-set-sriov-numvfs.conf 配置后重启)。

风险与回退

  • 本驱动替换系统自带 i915 模块。安装后必须重启才能生效;重启前飞牛仍用原驱动。
  • 若编译/适配异常导致显示或硬解异常:在应用中心卸载本应用并重启飞牛,即恢复系统原 i915 驱动。
  • SR-IOV 的 VF 数量默认见 i915-set-sriov-numvfs.conf(默认 7),可修改后重启调整。

源码与许可

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则