当前位置: 首页 > news >正文

Ubuntu22.04 双显卡系统使用集显 DRM 渲染的完整流程记录

Ubuntu22.04 双显卡系统使用集显 DRM 渲染的完整流程记录

在一台搭载 Intel 集成显卡(HD Graphics 4000)和 NVIDIA 独立显卡(GeForce GT 640M)的 Dell 笔记本上,我尝试让系统使用集显进行 DRM 渲染,并解决了 NVIDIA 驱动加载但无法接管显示输出的问题。以下是完整的排查与解决过程。


🧭 系统环境与硬件信息

通过 lspci 命令确认显卡配置:

00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller
01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GT 640M]

系统识别了双显卡架构:Intel 集显 + NVIDIA 独显。


⚙️ 安装 NVIDIA 驱动

使用 Ubuntu 推荐方式安装 NVIDIA 驱动:

sudo ubuntu-drivers autoinstall

安装完成后重启系统,并验证驱动是否加载成功:

nvidia-smi

输出显示 NVIDIA 驱动已加载,但 glmark2-drm 报错:

Failed to grab modeset ownership
Could not initialize canvas

🔍 确认 framebuffer 控制权

通过 dmesg 查看 framebuffer 绑定情况:

dmesg | grep drm | grep fb

输出:

fbcon: i915drmfb (fb0) is primary device

说明 Intel 集显控制了显示输出,NVIDIA 虽然驱动已加载,但无法接管 framebuffer。


🧪 尝试使用 i915 的 DRM 接口

确认设备归属:

ls -l /sys/class/drm/card*/device/driver

输出:

card0 → nvidia
card1 → i915

✅ 使用 kmscube 成功调用 i915 DRM

安装并运行 kmscube

sudo apt install kmscube

在图形界面下运行:

kmscube -D /dev/dri/card1

输出显示成功识别 Intel 显卡,但报错:

failed to set mode: Permission denied

🧨 解决权限问题:切换到纯 tty 环境

在图形界面下, framebuffer 被 Xorg/Wayland 占用,导致 kmscube 无法设置显示模式。解决方法:

  1. 按下 Ctrl + Alt + F3 切换到 tty 终端

  2. 登录后运行:

    kmscube -D /dev/dri/card1
    

✅ 成功渲染出旋转立方体,说明 i915 的 DRM 接口工作正常!

http://www.dtcms.com/a/392284.html

相关文章:

  • Coze源码分析-资源库-删除工作流-后端源码-IDL/API/应用/领域
  • MySQL库和表的操作语句
  • python、类
  • NumPy高级技巧:向量化、广播与einsum的高效使用
  • GD32VW553-IOT 基于 vscode 的 msdk 移植(基于Cmake)
  • Filter 过滤器详解与使用指南
  • 养成合成小游戏抖音快手微信小程序看广告流量主开源
  • 在 Ubuntu 系统下安装 Conda
  • ac8257 android 9 SYSTEM_LAST_KMSG
  • ARM 架构与嵌入式系统
  • ARM(14) - LCD(1)清屏和画图形
  • Linux第十九讲:传输层协议UDP
  • 计算机网络学习(四、网络层)
  • 开启科学计算之旅:《MATLAB程序设计》课程导览
  • MATLAB | 数学模型 | 传染病 SIR 模型的参数确定
  • MATLAB基本运算(2)
  • 小红书数据分析面试题及参考答案
  • SpringCloudStream:消息驱动组件
  • ret2text-CTFHub技能树
  • VirtualBox 7 虚拟机的硬盘如何扩大?
  • React新闻发布系统 权限列表开发
  • 23种设计模式之【策略模式】-核心原理与 Java 实践
  • 前端实战从零构建响应式井字棋游戏
  • Java中的equals()与hashCode()
  • 【绕过open_basedir】
  • 如何用户细分
  • 福彩双色球第2025109期篮球号码分析
  • 思考:客户端负载均衡和服务器负载均衡有什么区别?
  • 网络编程day04/05原始套接字
  • Yarn命令与npm命令的区别与联系(npm:Node.js的官方包管理工具;Yarn:Facebook开发的JavaScript包管理工具)