跳转到内容

KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: 权限不够 - cc-switch

Quick fix

在 Linux 运行 cc-switch 遇 DRM 权限报错白屏时,可通过设置环境变量禁用 WebKit 硬件加速、指定 NVIDIA 渲染或改用 CLI 版解决。

报错原文
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: 权限不够

该问题出现在 Linux 系统(如 Linux Mint)运行基于 Tauri2 构建的 cc-switch GUI 版本时。底层 WebKit 在尝试创建 GBM 缓冲区进行硬件加速渲染时,由于当前用户对 /dev/dri 设备缺乏写权限,或 NVIDIA 驱动渲染卸载配置不当,导致 DRM_IOCTL_MODE_CREATE_DUMB 失败并引发白屏闪退。

  1. 禁用 WebKit 硬件加速。在终端中使用以下环境变量启动 cc-switch(维护者已在后续版本中默认写入 WEBKIT_DISABLE_DMABUF_RENDERER=1 以缓解此问题): WEBKIT_DISABLE_DMABUF_RENDERER=1 WEBKIT_DISABLE_COMPOSITING_MODE=1 LIBGL_ALWAYS_SOFTWARE=1 cc-switch

  2. 针对 NVIDIA 显卡用户,强制使用独立显卡渲染。在终端中运行以下命令启动: __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only cc-switch

  3. 检查用户组权限。确保当前用户已加入 video 和 render 组(注意:部分用户反馈加入后仍报错,此时需依赖上述环境变量方法): sudo usermod -aG video,render $USER

  4. 若 GUI 版本因系统版本较低始终无法正常渲染,建议放弃 GUI,前往 https://github.com/SaladDay/cc-switch-cli 下载并使用 cc-switch 的 CLI 命令行版本。

Toolcc-switch
Version3.1.2 - 3.7.1
PlatformsLinux
将用户加入 video 和 render 组后,仍然报错 nv_gbm_create_device_native failed 怎么办?
这说明 NVIDIA 驱动与 WebKit 的 GBM 渲染存在兼容性问题。请尝试使用 WEBKIT_DISABLE_DMABUF_RENDERER=1 等环境变量关闭硬件加速,或使用 NVIDIA 专属环境变量启动。
使用 sudo 运行 AppImage 可以解决权限不够的问题吗?
不能。使用 sudo 运行不仅无法解决底层的 DRM 权限或 NVIDIA GBM 驱动问题,还会导致 D-Bus 会话总线获取失败(报错 Unable to get the session bus),请避免使用 sudo 运行。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。