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

使用Weston(Wayland 显示服务器的参考实现)小记

背景

基于weston使用qt或者gtk等UI框架显示应用程序的时候,使用wayland平台。

指令差异:

weston --backend=drm-backend.so --tty=7 --use-pixman(使用软件渲染

weston --backend=drm-backend.so --tty=7(使用硬件GPU渲染

维度命令 1(软件渲染)weston --backend=drm-backend.so --tty=7 --use-pixman命令 2(硬件 GPU 渲染)weston --backend=drm-backend.so --tty=7
渲染方式基于 pixman 库的软件渲染(CPU 计算图形数据)基于 GPU 的硬件渲染(依赖显卡驱动加速图形处理)
核心依赖仅依赖 CPU 和 pixman 库(无需 GPU 驱动支持)依赖 DRM 兼容的 GPU 硬件 + 对应的开源驱动(如 Intel i915、AMD radeon)
性能表现性能较低(CPU 负载高),适合简单界面(如终端、轻量 GUI)性能高(GPU 分担计算),支持复杂界面、动画、高分辨率显示
适用场景1. GPU 硬件不支持 DRM 渲染;2. GPU 驱动未正确安装 / 加载;3. 调试图形驱动问题1. 有 DRM 兼容 GPU(如 Intel/AMD 集成显卡、部分 ARM GPU);2. 需高性能图形显示(如桌面、多媒体)

关键参数解析

两条命令共享部分核心参数,需先理解其作用:

  1. --backend=drm-backend.so

指定 Weston 使用 DRM 后端(Direct Rendering Manager,直接渲染管理器)—— 这是 Linux 下访问显卡硬件、控制显示输出的核心接口,也是硬件渲染的基础。(Weston 还支持其他后端,如 x11-backend.so(在 X11 上运行)、fbdev-backend.so(帧缓冲后端),但 DRM 后端是硬件加速的主流选择。)

  2.--tty=7指定 Weston 在 第 7 个虚拟终端(TTY) 启动。Linux 系统默认有多个 TTY(通常 1-6 为纯文本终端,7 及以上可分配给图形界面),需确保该 TTY 未被其他进程占用。

   3.--use-pixman(仅命令 1)

强制 Weston 使用 pixman 库进行软件渲染

  • pixman 是一个跨平台的 2D 图形库,负责像素级计算(如绘制、缩放、合成),完全依赖 CPU 完成,不调用 GPU 资源
  • 该参数会覆盖硬件渲染,即使 GPU 可用,也会强制走软件路径,主要用于调试或硬件不兼容场景。

使用前提与注意事项

1. 通用前提(两条命令均需满足)
  • 权限:Weston 访问 DRM 设备(如 /dev/dri/card0)需要 root 权限,需通过 sudo 执行命令(或给当前用户添加 video 用户组:sudo usermod -aG video $USER,注销后生效)。
  • DRM 设备存在:需确保系统识别 GPU 并生成 DRM 设备文件(ls /dev/dri/ 应看到 card0 等设备),若不存在,可能是 GPU 驱动未安装(如 Intel/AMD 需开源 mesa 驱动,NVIDIA 需 nvidia-drm 模块)。
  • TTY 切换:执行命令后,需通过 Ctrl+Alt+F7 切换到第 7 个 TTY 查看 Weston 界面;退出 Weston 可按 Ctrl+Alt+Backspace(需配置启用),或在 Weston 终端中执行 weston-terminal 后输入 exit
2. 命令 1(软件渲染)的特殊注意
  • 性能限制:软件渲染依赖 CPU,若 CPU 性能较弱或界面复杂(如高分辨率、动画),会出现明显卡顿,仅适合简单测试。
  • 调试用途:若硬件渲染失败(如 Weston 启动崩溃、黑屏),可尝试此命令排查问题 —— 若软件渲染能正常启动,说明问题出在 GPU 驱动或 DRM 硬件兼容;若仍失败,则可能是 Weston 本身或系统环境问题(如依赖库缺失)。
3. 命令 2(硬件渲染)的特殊注意
  • GPU 与驱动兼容性
    • 支持硬件渲染的 GPU 需满足 DRM KMS(Kernel Mode Setting) 支持(主流 Intel/AMD 集成显卡、ARM Mali/Tegra 显卡均支持,部分老旧 GPU 或冷门型号可能不支持);
    • NVIDIA 显卡需特别注意:开源 nouveau 驱动支持 DRM 渲染,但闭源 nvidia 驱动需开启 nvidia-drm.modeset=1 内核参数(在 grub 配置中添加,重启生效),否则可能无法启用硬件渲染。
  • 验证硬件渲染是否生效:启动 Weston 后,在 weston-terminal 中执行 weston-info,查看输出中是否有 renderer: "GL"EGL API version: 1.x(EGL 是 GPU 渲染的接口)—— 若显示 renderer: "pixman",则说明硬件渲染未生效,需排查驱动或参数。

常见问题与排查

  1. Weston 启动失败,提示 “could not open DRM device”

    • 原因:权限不足或 DRM 设备不存在;
    • 解决:用 sudo 执行命令,或检查 GPU 驱动是否安装(glxinfo | grep "OpenGL renderer" 可验证驱动是否加载)。
  2. 命令 2(硬件渲染)启动后黑屏,但命令 1(软件渲染)正常

    • 原因:GPU 驱动不兼容、DRM KMS 未启用(如 NVIDIA 闭源驱动未开 modeset),或显示器分辨率不支持;
    • 解决:
      • 检查内核参数(NVIDIA 需 nvidia-drm.modeset=1);
      • 尝试指定分辨率启动:weston --backend=drm-backend.so --tty=7 --mode=1920x1080(需替换为显示器支持的分辨率,可通过 weston-info 查看可用模式)。
  3. 软件渲染卡顿严重

    • 原因:CPU 负载过高,或 pixman 未启用优化;
    • 解决:若需临时使用,可降低界面分辨率;长期使用需优先解决硬件渲染问题(安装正确驱动、更换支持 DRM 的 GPU)
  4. 某些情况下在weston下运行demo时候会报错:Could not connect to display,通常网上的分析和采用的方法如下所示:

    该错误是由于在远程或者串口终端环境下没有正确设置DISPLAY导致的。

    在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处。直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0.0, 此时可以打开终端, 输出GUI程序的名称来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:

    DISPLAY=:0.0       解决办法 :   export DISPLAY=':0.0'

参考链接:

https://blog.csdn.net/yikunbai5708/article/details/104783572/

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

相关文章:

  • 可以制作网站的软件是什么房地产行业网站建设报价方案
  • 潍坊企业免费建站网站建设 应酷
  • Django + Vue3 前后端分离技术实现自动化测试平台从零到有系列 <第三章> 之 基础架构搭建
  • 深入解析:什么是矩阵系统源码搭建定制化开发,支持OEM贴牌
  • Nginx高并发原理与Tomcat实战全解析:从IO模型到HTTPS配置与故障排查(第七周)
  • 网站推广一般在哪个网做百度快照优化推广
  • STM32 外设驱动模块:Tracking 循迹模块
  • 新版发布!“零讯”微信小程序版本更新
  • 广西建设厅微信网站网站正在建设中的
  • 模板板网站wordpress前台登录插件
  • 河北网站制作报价网站优化公司服务
  • 人脸特征可视化进阶:用 dlib+OpenCV 绘制面部轮廓与器官凸包
  • display ip routing-table故障判断及题目
  • 晨控CK-GW04S与欧姆龙PLC配置Ethernet/IP通讯连接手册
  • 动态IP的特点
  • 团购网站推广怎么做微信公众号怎么创建要多少钱
  • CMDLET使用教程详解
  • 短视频流量|基于SprinBoot+vue的短视频流量数据分析系统(源码+数据库+文档)
  • 安装测试用例
  • ubuntu 网络监听工具及使用方法详解
  • 微信公众号网站自己做导航条WordPress在手机能更新
  • STM32 单片机开发 - FreeRTOS 实时操作系统
  • 网站如何续费深圳网上创建公司
  • UNet改进(41):基于PyTorch的轻量量化UNet
  • [vscode] Tab键无法缩进
  • 网站vr用什么做网站推广的技术有哪些
  • ubuntu24.04安装todesk远程工具
  • GPT-4 赋能恶意软件 GPT-MalPro:国内首现动态生成规避检测的勒索程序技术深度解析
  • ubuntu22.04安装cuda11.4版本
  • 网站建设与用户需求分析网络营销案例ppt课件