UOS启用wayland

2023-11-09

目录

系统wayland情况分析

后记:


系统wayland情况分析

UOS默认启用的是x11,但是华为L410 L420这种麒麟芯片的机器,默认启用的是wayland(原因后面再推测),所以也想看看非麒麟平台如何能切换到wayland试试效果。

系统里面查看,其实已经安装了支持wayland的窗管相关的包

$dpkg -l | grep -i wayland
ii  dde-wayland-config                                         1.0.7-1                              amd64        This package is the configuration file to adapt to the wayland environment
ii  deepin-greeter-wayland                                     5.5.19-1                             amd64        deepin desktop-environment - dde-session-shell module config files
ii  kwayland-data                                              4:5.57.0.10-1+eagle                  all          Qt library wrapper for Wayland libraries - data files
ii  kwayland-integration:amd64                                 5.14.5-1                             amd64        kwayland runtime integration plugins
ii  kwin-wayland                                               4:5.15.10.12-1                       amd64        KDE window manager, wayland version, PREVIEW release
ii  kwin-wayland-backend-drm                                   4:5.15.10.12-1                       amd64        KDE window manager drm plugin
ii  libkf5waylandclient5:amd64                                 4:5.57.0.10-1+eagle                  amd64        Qt library wrapper for Wayland libraries
ii  libkf5waylandserver5:amd64                                 4:5.57.0.10-1+eagle                  amd64        Qt library wrapper for Wayland libraries
ii  libqt5waylandclient5:amd64                                 5.15.1.7-1+dde                       amd64        QtWayland client library
ii  libqt5waylandcompositor5:amd64                             5.15.1.7-1+dde                       amd64        QtWayland compositor library
ii  libva-wayland2:amd64                                       2.4.0-1                              amd64        Video Acceleration (VA) API for Linux -- Wayland runtime
ii  libwayland-bin                                             1.16.0-1                             amd64        wayland compositor infrastructure - binary utilities
ii  libwayland-client0:amd64                                   1.16.0-1                             amd64        wayland compositor infrastructure - client library
ii  libwayland-client0:i386                                    1.16.0-1                             i386         wayland compositor infrastructure - client library
ii  libwayland-cursor0:amd64                                   1.16.0-1                             amd64        wayland compositor infrastructure - cursor library
ii  libwayland-cursor0:i386                                    1.16.0-1                             i386         wayland compositor infrastructure - cursor library
ii  libwayland-dev:amd64                                       1.16.0-1                             amd64        wayland compositor infrastructure - development files
ii  libwayland-egl1:amd64                                      1.16.0-1                             amd64        wayland compositor infrastructure - EGL library
ii  libwayland-egl1:i386                                       1.16.0-1                             i386         wayland compositor infrastructure - EGL library
ii  libwayland-server0:amd64                                   1.16.0-1                             amd64        wayland compositor infrastructure - server library
ii  libwayland-server0:i386                                    1.16.0-1                             i386         wayland compositor infrastructure - server library
ii  qtwayland5:amd64                                           5.15.1.7-1+dde                       amd64        QtWayland platform plugin
ii  qtwayland5-doc                                             5.15.1.7-1+dde                       all          Qt 5 Wayland Compositor documentation
ii  wayland-protocols                                          1.17-1                               all          wayland compositor protocols
ii  xwayland                                                   2:1.20.4.20-1+dde                    amd64        X server for wayland
$dpkg -l kwin-wayland
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称           版本           体系结构     描述
+++-==============-==============-============-====================================================
ii  kwin-wayland   4:5.15.10.12-1 amd64        KDE window manager, wayland version, PREVIEW release

而且系统也安装了好wayland-session的桌面加载session文件、

$ls /usr/share/xsessions/
cairo-dock.desktop  deepin.desktop  dwm.desktop  i3.desktop  i3-with-shmlog.desktop  newdeepin.desktop  twm.desktop  xfce.desktop
$ls /usr/share/wayland-sessions/
DeepinOnXwayland.desktop  Wayland.desktop

 但默认的dde-session-shell这个包的配置并未开启读取/usr/share/wayland-session目录下的桌面session配置文件。

启动过程大致过程位 lightdm.service 启动lightdm,lightdm的配置文件配置如下:

$grep -v \# /etc/lightdm/lightdm.conf 
[LightDM]

[Seat:*]
greeter-session=lightdm-deepin-greeter
user-session=deepin

[XDMCPServer]

[VNCServer]

主要配置了greeter-session 即登陆session位lightdm-deepin-greeter(对应配置应该是/usr/share/xgreeters/lightdm-deepin-greeter.desktop
),用户session位deepin(对应配置位/usr/share/xsessions/deepin.desktop),这样就定义了登陆界面的程序和加载整个dde桌面环境的命令,完成从启动登陆界面到登陆到系统后进入桌面操作系统。

在系统deepin-session-shell这个软件包中有一个定义文件  /usr/share/dsg/configs/org.deepin.dde.lightdm-deepin-greeter/org.deepin.dde.lightdm-deepin-greeter.json

其中有一个开关就是配置是否显示桌面wayland-session文件夹里面定义的session。

more /usr/share/dsg/configs/org.deepin.dde.lightdm-deepin-greeter/org.deepin.dde.lightdm-deepin-greeter.json
{
    "magic": "dsg.config.meta",
    "version": "1.0",
    "contents": {
        "useSolidBackground": {
            "value": false,
            "serial": 0,
            "flags": ["global"],
            "name": "UseSolidBackground",
            "name[zh_CN]": "使用纯色背景",
            "description": "是否使用纯色背景,默认为否。开启配置时,那么将不会加载背景图片,降低内存占用。禁用设置时,加载背景图片,比较美观,但是会增加内存占用。",
            "permissions": "readwrite",
            "visibility": "private"
        },
        "allowSwitchingToWayland": {
            "value": false,
            "serial": 0,
            "flags": ["global"],
            "name": "AllowSwitchingToWayland",
            "name[zh_CN]": "允许用户切换到wayland",
            "description": "是否允许用户切换到wayland,默认为否。开启配置时,如果用户安装了wayland和其它桌面环境,登录界面会显示桌面环境切换按钮,点击后用户可以选择wayland桌
面环境。关闭配置时,就算用户安装了wayland环境,也会默认隐藏起来,不让用户切换到wayland环境",
            "permissions": "readwrite",
            "visibility": "private"
        },
        "defaultSession": {
            "value": "deepin",
            "serial": 0,
            "flags": ["global"],
            "name": "DefaultSessionName",
            "name[zh_CN]": "默认桌面环境名称",
            "description": "默认的桌面环境名称,默认为deepin。新建用户首次登录的时候,默认的桌面由此配置决定",
            "permissions": "readwrite",
            "visibility": "private"
        },
        "numLockState": {
            "value": [],
            "serial": 0,

这个文件应该是由 /usr/share/xgreeters/lightdm-deepin-greeter.desktop定义的登陆界面程序读取,用于判断是否显示/usr/share/wayland-session/下面的桌面加载session。

修改配置文件的allowSwitchingToWayland的值为true,注销后登陆界面就能看到wayland选项了。

 

查看启动wayland的桌面,发现最终效果是加载了kwin_wayland 并通过startdde-wayland带起来整个wayland桌面。并启动了一个Xwayland 。

虚拟机里面测试了下,卡的不行,估计还是驱动问题,有时间物理机上试试,真显卡应该不一样。

后记:

intel集成显卡机器上实际测试了下直接黑屏,看来驱动不对啊。

再来聊一聊华为麒麟系列芯片机器和其他机器的不同,结论均为个人推测,仅供参考。

麒麟990这个芯片本来就是手机芯片,华为芯片生产受限后,就干脆把这些芯片做成笔记本,台式机的CPU,由于本来是为手机设计的,再加上7nm加持,能耗比非常好,L410这个笔记本本待机时间超长。

但是麒麟系列芯片的机器有个致命伤,软件生态非常不好。

因为本来linux和windows比,生态就烂的不行,arm 平台的Linux生态就更差了,如果是这样就不说了,但麒麟芯片系列配套的操作系统,由于是CPU芯片集成了GPU,图形协议用的是wayland而不是X11,导致在arm平台比如飞腾,鲲鹏上能运行的一部分程序在麒麟芯片的机器上不兼容不能运行,从而导致这些机器上可以运行的应用程序更少了。

选择wayland而不是x11,我想华为是为了追求节能和高效,因为ARM公司的mali图形驱动内核部分是闭源的,对应的userspace部分也是闭源的,而且userspace的闭源驱动很多型号只支持wayland不支持x11,我推测麒麟990自带的显卡G系列ARM公司提供的也是闭源且只支持wayland的驱动。所以就自然选择了wayland,但是强大如华为,在软件生态面前也没办法。

本来L410这个笔记本颜值高,摄像头指纹齐全,屏幕尺寸也大,待机时间据说能达到18小时,应该是可以秒杀一切国产笔记本的。但是由于软件生态上的问题,让这个笔记本二手鱼上价格沦落到1800-2500之间,能买这个本二手的人也就这些国产厂商用来测试的人吧,其他人买来真是用不了。

参考debian的wiki,

MaliGraphics - Debian Wikihttps://wiki.debian.org/MaliGraphicsdebian11 已经全面专享逆向ARM的驱动,不再使用arm官网提供的mali系列驱动,用户态驱动在mesa里面。但能效以及稳定性如何,目前还不得而知,这个本以后会不会走debian逆向的驱动,现在很难说。但二手鱼上越来越多的这个系列二手本,说明用户买来用不了,就只有一个选择,回收(垃圾桶)。

国产难啊,路漫漫其修远兮,我辈还需加倍努力!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UOS启用wayland 的相关文章

随机推荐

  • MyBatis 配置 typeAliases 详解

    0x00 前言参考 之前的 MyBatis 中 SqlMapConfig 配置文件详解 记了一下 MyBatis 中的核心配置文件各个标签的作用和使用场景 这篇文章细说一下配置文件中 typeAliases 标签的详细使用 0x01 标签介
  • FOXBORO FBM233 电源模块

    FOXBORO FBM233 是一种电源模块 通常用于工业自动化和控制系统中 为其他设备和模块提供所需的电源供应 以下是可能与这种电源模块相关的一些常见功能 电压输出 FBM233 电源模块通常提供稳定的电压输出 以供其他设备和模块使用 这
  • 把握机器人教育朝AI智能化发展的趋势

    一般机器人是指不具有智能 只具有一般编程能力和操作功能的机器人 到目前为止 在世界范围内还没有一个统一的智能机器人定义 大多数专家认为智能机器人至少要具备以下三个要素 一是感觉要素 用来认识周围环境状态 二是运 动要素 对外界做出反应性动作
  • 百度网盘PC端扫描二维码登录时无法加载二维码问题解决方法

    问题 今天在PC端扫描登录百度网盘时 二维码无法加载出来 具体情况如图 解决方法 1 打开IE浏览器 2 打开工具 3 打开Internet选项 4 打开高级选项 重置IE设置 5 点击确定 打开百度网盘 重新扫描登录 写在后面 好了 现在
  • 基于机器学习之模型树短期负荷预测(Matlab代码实现)

    欢迎来到本博客 目前更新 电力系统相关知识 期刊论文 算法 机器学习和人工智能学习 支持 如果觉得博主的文章还不错或者您用得到的话 可以关注一下博主 如果三连收藏支持就更好啦 这就是给予我最大的支持 本文目录如下 目录 1 概述 2 数学模
  • 家庭记账本小程序之删(java web基础版四)

    实现删除消费账单 1 main left jsp中该部分 调用Servlet中delete方法 2 Servlet中delete方法 调用Dao层list方法 跳转到del jsp页面 3 Dao层list方法 4 del jsp 调用Se
  • Unity动画状态机Animator使用解析

    Unity可以用两种方式控制动画 1 Animations 这种方式简单 直接 Play Idle 或者 CorssFade Idle 就可以播放动画 2 Animator 5 x之后推荐使用这种方式 因为里面可以加上混合动画 让动画切换更
  • mysql 添加用户、修改权限,修改登陆权限ip

    MySQL 赋予用户权限命令的简单格式可归纳为 数据库 grant 权限 on 数据库对象 to 用户 1 grant 普通数据用户 查询 插入 更新 删除 数据库中全部表数据的权利 apache grant select on testd
  • SpringBoot(审计) 统计接口调用次数及成功率

    介绍 很多时候会需要提供一些统计记录的 比如某个服务一个月的被调用量 接口的调用次数 成功调用次数等等 优点 使用AOP Hendler对业务逻辑代码无侵入 完全解耦 通过spring boot自带的健康检查接口 health 方便 安全
  • 吐血整理!内部包含3980大数据、机器学习、推荐系统实战课程,仅分享一次

    在最近几年 大数据 Dig Data 机器学习 Machine Learning 逐渐流行开来 容易让人误以为机器学习并不难 机器学习的流行原因很简单 在一个消费者 以及广告主 需要更多个性化 而计算机系统正被四面八方飞速增长的数据包围的年
  • B树及其变种

    B 树 B 树 B树
  • L6050U compile erro

    L6050U The code size of this image exceeds the maximum allowed for this version of the linker 原因 是 用的 是 EVb版本 需要 正版 才没有
  • (二一)SQL优化

    insert优化 批量插入 insert into tb name values col 1 col n 手动提交事务 start transaction insert into tb name values commit 主键顺序插入 主
  • 一个含有抄底提示的副图指标程序

    下面是一个示例的通达信软件副图指标 其中包含一个简单的抄底信号提示 include stdio h include stdlib h 定义副图指标的数据结构 typedef struct int data int length Indica
  • 第四章:方法操作实例变量-对象的行为

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 第四章 方法操作实例变量 对象的行为 状态影响行为 行为影响状态 对象有状态和行为两种属性 对应实例变量和方法 类的每个实例可以维持自己的实例变量 面向对象的重点之一
  • python list[::2]两个分号代表什么意思

    困扰 是因为智慧不够 深思熟虑才能运筹帷幄 疑惑 python list 2 两个分号代表什么意思 解惑
  • 保定市空气质量分析系统

    保定市空气质量分析系统 此系统有详细的录屏 下面只是部分截图 需要看完整录屏联系博主 系统开发语言python 框架为django 数据库mysql 分为爬虫和可视化分析
  • pytorch Variable与Tensor合并后 requires_grad()默认与修改

    pytorch更新完后合并了Variable与Tensor torch Tensor 能像Variable一样进行反向传播的更新 返回值为Tensor Variable自动创建tensor 且返回值为Tensor 所以以后不需要再用Vari
  • 费曼学习法读后感

    目录 一 概述 二 全书主要内容 2 1 学习的本质 2 2 确立一个学习对象 2 3 理解我们要学习的知识 2 3 1 归类和对比知识的来源 2 3 1 1 将知识有逻辑的系统化 2 3 1 2 筛选和留下最可靠的知识 2 3 1 3 分
  • UOS启用wayland

    目录 系统wayland情况分析 后记 系统wayland情况分析 UOS默认启用的是x11 但是华为L410 L420这种麒麟芯片的机器 默认启用的是wayland 原因后面再推测 所以也想看看非麒麟平台如何能切换到wayland试试效果