diff --git a/articles/20240830-epiphany-x11-fixing-part1.md b/articles/20240830-epiphany-x11-fixing-part1.md new file mode 100755 index 0000000000000000000000000000000000000000..506ffc3d129f6711465c9e75b60f386fb6aca6d4 --- /dev/null +++ b/articles/20240830-epiphany-x11-fixing-part1.md @@ -0,0 +1,344 @@ +> Corrector: [TinyCorrect](https://gitee.com/tinylab/tinycorrect) v0.2-rc2 - [tables urls refs pangu autocorrect]
+> Author: Siqi Fan
+> Date: 20240830
+> Revisor: Falcon
+> Project: [RISC-V Linux 内核剖析](https://gitee.com/tinylab/riscv-linux)
+> Sponsor: PLCT Lab, ISCAS + +# epiphany 异常卡死问题分析 - Part1 锁定问题原因 + +## 概述 + +本文将深入探讨在使用 Epiphany 浏览器过程中遇到的异常卡死问题。我们会介绍 GUI 相关的概念,以及通过详细的步骤,展示如何锁定和诊断导致卡死的潜在原因。 + +## 问题描述 + +Epiphany(GNOME Web)是一款专门为 Linux 用户设计的知名开源网络浏览器。它简单、干净、漂亮、轻量,非常适合计算或存储资源紧张的设备。但是 epiphany-browser 被观察到在树莓派、Windows 虚拟机等场景下访问 Web 网站时存在必现的卡死问题,该问题严重影响到该浏览器的使用体验。 + + 具体表现如下图所示,浏览器界面虽然可以正常启动,但在尝试访问任何网页时,浏览器会立即陷入无响应状态。网页无法加载,浏览器窗口只显示空白屏幕,无论等待多长时间,页面都无法显示内容。用户只能通过强制关闭浏览器来终止这个无响应状态。 + +image-20240825164137289 + +## 图形界面 GUI 相关概念 + +为了有效分析并解决这一问题,我们首先需要补充一些关键的基础知识。以下是 Linux 系统中与图形相关的软件层次结构图。 + +![image-20240825184818919](images/epiphany-x11-fixing/image-20240825184818919.png) + +我们首先从 **display server protocol** 开始讲解。大家熟悉的 X Window System(也称为 X、X11 或 X-Windows)其实是一种协议,类似于 HTTP 或 IP 协议。需要明确的是,它并不是一个具体的软件。然而,许多初学者容易混淆这一点。而协议需要通过具体的软件来实现,这就引出了图中所示的 **display server**,例如 X.Org Server 和 Wayland Compositor 等。X-Server(X.Org)是 Linux 系统在 PC 时代使用比较广泛的 display server,而 Wayland compositor 则是新设计的,计划在移动时代取代 X-Server 的一个新的 display server。 + +那么 X11 的具体作用是什么呢?它提供了一个基础设施,用于创建和管理图形用户界面(GUI)。例如,它负责在显示设备上绘制基本的图形单元(如点、线、面等)以及处理与鼠标键盘等输入设备的交互。然而,X11 并未直接实现 UI 设计所需的按钮、菜单、窗口标题栏样式等元素。这些元素的实现通常由第三方应用程序来完成。这些应用程序主要包括:窗口管理器(window manager)、GUI 工具集(GUI widget toolkit)和桌面环境(desktop environment)。 + +**window manager** 负责控制应用程序窗口的布局和外观,使每个应用程序窗口尽可能以统一、一致的方式呈现给用户。例如,针对 X 的一个简单窗口管理程序是 twm (Tab Window Manager)。 + +GUI widget toolkit 是对 Windowing system 的进一步封装。以 X 为例,通过 xlib 提供给应用程序的 API 仅能绘制基本的图形单元(如点、线、面等)。要将这些基本的图形单元组合成复杂的应用程序,还需要完成许多细碎而繁琐的任务。因此,一些操作系统在 X 的基础上封装了更为便利的 GUI 接口,方便应用程序使用。例如 Microwindows、GTK+ 和 QT 等等。 + +**desktop environment** 则是应用程序级别的进一步封装。通过提供一系列界面一致、操作方式统一的应用程序,桌面环境使系统能够以更为友好的方式向用户提供服务。Linux 系统中较为主流的桌面环境包括 GNOME、KDE 等等。而我们本文中涉及的 epiphany 就是一种 GNOME web。 + +那么接下来,我们熟知的 OpenGL 又是什么呢?以 X window 为例,将 hardware、kernel 和 display server 展开如下: + +![Linux_Graphics_Stack_2013.svg](images/epiphany-x11-fixing/Snipaste_2024-08-30_10-47-36.png) + +从上到下,图中包括如下的软件的软件模块: + +1. 3D-game engine、Applications 和 Toolkits,应用软件,其中 3D-game engine 是 3D application 的一个特例。 + +2. libX/libXCB 和 libwayland-client + +display server 提供给 Application(或者 GUI Toolkits)的、访问 server 所提供功能的 API。libX/libXCB 对应 X-server,libwayland-client 对已 Wayland compositor。 + +3. Display Server + +图片给出了两个 display server:Wayland compositor 和 X-Server(X.Org)。X-Server 是 Linux 系统在 PC 时代使用比较广泛的 display server,而 Wayland compositor 则是新设计的,计划在移动时代取代 X-Server 的一个新的 display server。 + +4. libGL + +libGL 是 openGL 接口的实现,3D application(如这里的 3D-game engine)可以直接调用 libGL 进行 3D 渲染。 + +libGL 可以是各种不同类型的 openGL 实现,如 openGL(for PC 场景)、openGL|ES(for 嵌入式场景)、openVG(for Flash、SVG 矢量图)。 + +libGL 的实现,既可以是基于软件的,也可以是基于硬件的。其中 Mesa 3D 是 OpenGL 的一个开源本的实现,支持 3D 硬件加速。 + +5. libDRM 和 kernel DRM + +DRI(Direct Render Infrastructure)的 kernel 实现,及其 library。X-server 或者 Mesa 3D,可以通过 DRI 的接口,直接访问底层的图形设备(如 GPU 等)。 + +6. KMS(Kernel Mode Set) + +一个用于控制显示设备属性的内核 driver,如显示分辨率等。直接由 X-server 控制。 + +## 诊断 + +### 复现卡死现象 + +在问题的初期阶段,我们并没有明确的方向,因此选择了几个不同版本的 Ubuntu 进行尝试。进行初步测试后,实验结果如表所示:自己下载的 Ubuntu 24.04 和 Ubuntu 22.04 均未能复现该问题,而使用 Linux Lab 的 Ubuntu 22.04 时则出现了卡死现象。 + +| | Linux 发行版 | 问题情况 | +|---|--------------------------|----------| +| 1 | 新安装的 Ubuntu 24.04 | | +| 2 | 新安装的 Ubuntu 22.04 | | +| 3 | Linux Lab 的 Ubuntu 22.04 | 卡死 | + +情况 2 和 3 的对比图展示如下: + +
+
+ image-20240520151910290 +
新安装的 Ubuntu 22.04
+
+
+ image-20240520171245688 +
Linux Lab 的 Ubuntu 22.04 (出现卡死)
+
+
+ +### 筛查问题 + +由于是 “Linux Lab 的 Ubuntu 22.04” 出现了卡死问题,我们决定将与其环境最为接近的 “新安装的 Ubuntu 22.04” 进行对比,试图找出两者之间的差异。我们推测,这些差异可能正是导致卡死问题的根源。为了更简洁地表达,我们将 “新安装的 Ubuntu 22.04” 简称为 Ubuntu,而 “Linux Lab 的 Ubuntu 22.04” 简称为 Linux-lab Ubuntu。在接下来的分析中,我们将深入探讨这两种环境下的不同之处,以明确问题的具体原因。 + +我们设计对比了以下几个可能与卡死有关的内容: + +| 对比内容 | +|:----------------------:| +| epiphany-browser 版本 | +| libwebkit2gtk | +| GPU 驱动提供的设备接口 | +| 内核 | +| windowing system | + +#### epiphany-browser 版本 + +**猜测**:浏览器卡死问题可能由于版本更新已被修复。 + +**验证:** + +- Ubuntu: 42.4 +- Linux-lab Ubuntu: 42.4 + +**结论:**两个环境中的浏览器版本一致,排除了版本更新引发问题的可能性。 + +#### libwebkit2gtk + +**猜测:**`libwebkit2gtk` 的更新修复了系统卡死的问题 + +> Epiphany 的浏览器内核是 WebKit。`libwebkit2gtk` 是 WebKitGTK 的核心库,用于在 GTK 应用程序中嵌入和渲染 Web 内容。GTK 是一个开源的跨平台 GUI(图形用户界面)工具包,其他的有 QT、AWTK 等等。 + +**验证:** + +为了验证 `libwebkit2gtk` 的更新是否修复了系统卡死的问题,我们在两个不同的 Ubuntu 系统上检查了该库的版本。 + +1. **Ubuntu 系统:** + + 执行以下命令以检查 `libwebkit2gtk` 的版本: + + ```bash + dpkg -l | grep -i libwebkit2gtk + ``` + + 结果如下: + ![image-20240520152650876](images/epiphany-x11-fixing/image-20240520152650876.png) + +2. **Linux-lab Ubuntu 系统:** + + 同样地,我们在另一个系统上执行了相同的命令: + + ```bash + dpkg -l | grep -i libwebkit2gtk + ``` + + 结果如下: + ![image-20240520162024080](images/epiphany-x11-fixing/image-20240520162024080.png) + +**结论:** + +通过以上验证,我们发现 `libwebkit2gtk` 在两个系统中没有更新。因此,我们初步认为该问题与 `libwebkit2gtk` 无关。 + +#### GPU 驱动提供的设备接口 + +**猜测:**我们猜测两个系统的 GPU 驱动程序可能提供了不同的设备接口,从而导致了卡死问题。 + +**验证:** + +执行以下命令以检查 GPU 驱动提供的设备接口: + +```bash +ls /dev/dri/ +ls /dev/dri/renderD128 +``` + +结果如下: + +- Ubuntu: + +![image-20240520150113302](images/epiphany-x11-fixing/image-20240520150113302.png) + +- Linux-lab Ubuntu: + +image-20240520161914934 + +> `/dev/dri/renderD128` 是由 GPU 驱动程序提供的设备接口。它是 Direct Rendering Interface(DRI)的一部分,用于直接访问 GPU,以实现高效的图形渲染。 + +**结论:**通过对比两个系统的设备接口,发现它们没有差异,这否定了我们的猜测。 + +#### 内核 + +**猜测:**我们推测系统卡死问题可能与 Ubuntu 内核的差异有关。 + +**验证:** + +- Ubuntu:通过观察本地运行的 Ubuntu 系统,发现其内核信息如下 + +![image-20240520203703052](images/epiphany-x11-fixing/image-20240520203703052.png) + +- Linux-lab Ubuntu:与此同时,我们也对 Linux-lab 中的 Ubuntu 环境进行了内核检查,结果如下 + +image-20240520203713083 + +**结论:**经过对比,我们发现本地 Ubuntu 系统与 Linux-lab Ubuntu 环境的内核版本存在差异。这种差异可能是导致卡死问题的原因之一。应该通过进一步的分析和测试,确认这一差异是否确实是导致问题的根本原因,并采取相应的措施加以解决。 + +##### 进一步验证 + +为了更深入地验证是否是内核版本导致的问题,我们对 Linux-lab 环境进行了升级操作。在进行此操作前,我们首先对 Linux-lab 环境进行了快照备份,然后使用以下命令将其内核升级到与本地 Ubuntu 版本一致的版本: + +```bash +sudo apt install linux-generic-hwe-22.04 +``` + +升级后的内核版本信息如下: + +image-20240520205009538 + +然而,升级后发现卡死问题在 Linux-lab 的 Ubuntu 22.04 中依然存在。由此可以得出结论:内核版本并非导致该问题的根本原因。我们需要进一步排查其他可能的因素,来找出引发卡死问题的真正原因。 + +#### windowing system + +**猜测:**可能是窗口系统会导致卡死问题。 + +> 窗口系统是一种管理计算机图形用户界面的技术,它负责在显示器上创建和管理窗口,以便用户可以与应用程序交互。窗口系统提供了基本的图形界面功能,如窗口的创建、显示、移动、调整大小以及窗口之间的层次关系等。 + +示意图 + +**验证:** + +- Ubuntu:在本地的 Ubuntu 环境中,系统使用的是 Wayland 窗口系统。 + +image-20240521104058515 + +- Linux-lab Ubuntu:在 Linux-lab 的 Ubuntu 环境中,系统使用的是 X11 窗口系统。 + +image-20240521105651256 + +**结论:**我们观察到,本地 Ubuntu 环境使用的是 Wayland,而 Linux-lab 的 Ubuntu 环境使用的是 X11。这一差异可能是导致卡死问题的原因之一。Wayland 和 X11 在处理窗口管理和图形渲染方面有所不同,这可能对系统的稳定性产生影响。需要进一步研究这些差异是否直接导致了问题的发生。 + +##### 进一步验证 + +为了进一步确认是否 X11 是导致问题的根源,我们将 Linux-lab Ubuntu 的桌面环境切换到 Wayland。以下是实施步骤: + +1. **修改 GDM 配置:** + 编辑 GDM(GNOME Display Manager)的配置文件,将桌面环境设置为 Wayland。 + + ```bash + sudo vim /etc/gdm3/custom.conf + ``` + + 在配置文件中,将以下行的注释去掉(删除 `#` 符号): + + ```bash + #WaylandEnable=false + ``` + + 修改后的文件内容应如下所示: + + GDM 配置文件 + +2. **重启 GDM 服务:** + 修改配置文件后,重启 GDM 服务以使更改生效。 + + ```bash + sudo systemctl restart gdm3 + ``` + + 重启后的状态显示: + + 重启 GDM 服务 + +3. **观察结果:** + 在将桌面环境切换到 Wayland 后,我们发现系统不再出现卡死问题。这表明,X11 可能是导致问题的主要原因。 + +**结论:** + +通过将 Linux-lab Ubuntu 的桌面环境切换至 Wayland 并观察到卡死问题消失,可以初步确认 X11 系统在此问题中存在重大嫌疑。进一步的分析和测试可能需要聚焦于 X11,以找出具体的根本原因。 + +### 继续收缩情况 + +- 在发现 X11 可能是问题的根源后,我们进行了大量实验以进一步确认这一点,并测试了不同版本的 Ubuntu 和虚拟机环境。以下是实验结果: + + | 序号 | 虚拟机 | Linux 发行版 | 浏览器 | 窗口系统 | 问题情况 | + |------|------------|---------------------------|----------|----------|---------| + | 1 | VMware | Ubuntu 22.04 | Epiphany | Wayland | 无 | + | 2 | VMware | Ubuntu 22.04 | Epiphany | X11 | 卡死 | + | 3 | VMware | Ubuntu 24.04 | Epiphany | Wayland | 无 | + | 4 | VMware | Ubuntu 24.04 | Epiphany | X11 | 卡死 | + | 5 | VMware | Linux Lab 的 Ubuntu 22.04 | Epiphany | Wayland | 无 | + | 6 | VMware | Linux Lab 的 Ubuntu 22.04 | Epiphany | X11 | 卡死 | + | 7 | VirtualBox | Ubuntu 24.04 | Epiphany | Wayland | 无 | + | 8 | VirtualBox | Ubuntu 24.04 | Epiphany | X11 | 卡死 | + | 9 | VMware | Debian SID | Epiphany | X11 | 无 | + + **实验观察:** + + 1. **虚拟机影响验证:** + 我们在 VirtualBox 上进行了实验(情况 3、4、7、8),发现即使在 VirtualBox 环境下使用 X11 也会出现卡死问题,这表明虚拟机本身并非导致问题的根源。 + + 2. **Linux 发行版影响:** + 在不同的 Linux 发行版上进行测试(情况 2、4、6、9),发现使用 X11 时,Ubuntu 22.04 和 24.04 均会出现卡死现象。然而,在 Debian SID(情况 9)中使用 X11 时并未出现卡死问题。这一发现表明,某个新版本的驱动程序或浏览器组件可能已解决了该问题。 + + **结论:** + + 通过以上验证,我们确认了 X11 的影响,X11 在多个环境中确实表现出导致卡死的问题,支持了我们最初的猜测。 + + **后续步骤:**Debian SID 在使用 X11 时没有出现卡死现象,表明该版本可能包含了修复相关问题的更新。接下来的工作将集中于分析 Debian SID 中引入的更改,以确定是哪一部分的驱动程序或组件进行了修复,并进一步验证这一发现,以便找到问题的解决方案。 + +## 问题分析 + +为了找到 Debian SID 是怎么修复的卡死问题,我们对比了 Debian Testing 和 Ubuntu 24.04 的一下几个方面: + +### 浏览器版本 + +首先,我们对 Debian Testing 中的浏览器版本进行了检测,发现其版本为 46.2-1。为验证这一版本是否解决了卡死问题,我们将 Ubuntu 环境中的浏览器版本升级至相同的 46.2-1。 + +> 遇到的问题: +> +> - epiphany 编译完成后遇到了 `bwrap: No permissions to creating new namespace`,解决方法是彻底关闭 `apparmor` +> +> - 发现只有用户有 sudo 的时候,才能在 gnome 登陆界面上切换 x11 或者 wayland + +然而,升级后卡死问题依然存在。这一结果使我们能够排除浏览器新版本为解决卡死问题的关键因素。 + +### 驱动问题 + +- 起初,我们怀疑问题可能与 VMware 的显卡驱动有关。由于这些驱动可能是闭源的,我们未深入研究。然而,后来有同伴提到,如果树莓派也遇到类似问题,那可能是由于其显卡驱动实现不完全。这一信息进一步增强了我们对 VMware SVGA3D 显卡驱动的怀疑。 + +- 在进一步的调查中,我们发现 VMware 的 SVGA3D 驱动实际上是包含在 Mesa 图形库中的。因此,我们决定首先测试最新版本的 Mesa,以确认问题是否仍然存在。由于 Debian Testing 的版本通常较新,我们选择在 Debian Testing 环境中进行实验,以观察问题是否可以复现。 + +- 通过运行 `glxinfo | grep Mesa` 命令,我们获取了 Mesa 版本信息: + + - **Ubuntu 24.04(出现卡死):** + ![image-20240811104514841](images/epiphany-x11-fixing/image-20240811104514841.png) + + - **Debian Testing(未出现卡死):** + ![image-20240811104536585](images/epiphany-x11-fixing/image-20240811104536585.png) + + 从结果可以看出,两者的 Mesa 版本确实存在差异。 + +**结论:** +Mesa 版本的差异表明,问题可能在 Mesa 24.0.9 到 24.1.3 之间得到了修复。这意味着升级 Mesa 版本可能解决了卡死问题。接下来的步骤将是确认 Mesa 版本更新所带来的具体改进,以验证这些更新是否确实解决了问题。 + +## 小结 + +本文分析了 Epiphany 浏览器在特定 Linux 环境下出现的卡死问题。通过对比不同的 Ubuntu 版本、内核、GPU 驱动以及窗口系统,最终确定问题的根源主要与 X11 窗口系统相关。在使用 X11 时,浏览器出现无响应现象,而当切换到 Wayland 窗口系统后,卡死现象完全消失。这一发现表明,X11 的某些实现可能存在兼容性问题,尤其是在特定的 Ubuntu 版本或配置下。进一步的测试显示,X11 在多个不同环境中都导致了类似的问题,但在 Debian SID 系统中使用 X11 时,未出现卡死现象,暗示该版本可能已包含修复此问题的更新或优化。后续将对此进行探究。 + +## 参考资料 + +[1] Linux graphic subsytem(1)_概述 http://www.wowotech.net/graphic_subsystem/graphic_subsystem_overview.html +[2] linux 图形界面层次关系总结 https://blog.csdn.net/liyangbing315/article/details/4767363 diff --git a/articles/images/epiphany-x11-fixing/Snipaste_2024-08-30_10-47-36.png b/articles/images/epiphany-x11-fixing/Snipaste_2024-08-30_10-47-36.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9ae0bbcbdb4b22a42137ac10eeaafa9fcd4a05 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/Snipaste_2024-08-30_10-47-36.png differ diff --git a/articles/images/epiphany-x11-fixing/Snipaste_2024-08-30_10-51-48.png b/articles/images/epiphany-x11-fixing/Snipaste_2024-08-30_10-51-48.png new file mode 100644 index 0000000000000000000000000000000000000000..5b8ef2aebba4ea2e8fe138be0657b70b2c337e06 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/Snipaste_2024-08-30_10-51-48.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520150113302.png b/articles/images/epiphany-x11-fixing/image-20240520150113302.png new file mode 100644 index 0000000000000000000000000000000000000000..f6eb4078f1cd7eed227d816a48374d7e836b5864 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520150113302.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520151910290.png b/articles/images/epiphany-x11-fixing/image-20240520151910290.png new file mode 100644 index 0000000000000000000000000000000000000000..625c50f5764533f28e8b1a1c78daf3a688df278d Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520151910290.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520152650876.png b/articles/images/epiphany-x11-fixing/image-20240520152650876.png new file mode 100644 index 0000000000000000000000000000000000000000..a72e404a2781397225d40243fd1d548e60619a16 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520152650876.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520161914934.png b/articles/images/epiphany-x11-fixing/image-20240520161914934.png new file mode 100644 index 0000000000000000000000000000000000000000..6e8e6cccb526394b00e369d9a1a3a2bc8eb6bff0 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520161914934.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520162024080.png b/articles/images/epiphany-x11-fixing/image-20240520162024080.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2b6f194aa4a729e0eb2c41fe91540918e9c2c9 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520162024080.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520171245688.png b/articles/images/epiphany-x11-fixing/image-20240520171245688.png new file mode 100644 index 0000000000000000000000000000000000000000..91fff5505581afb92e5407a98a51925b5927a104 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520171245688.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520203703052.png b/articles/images/epiphany-x11-fixing/image-20240520203703052.png new file mode 100644 index 0000000000000000000000000000000000000000..f34d7aae5b2fc0ceee091810ffa9ea6e2198da3c Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520203703052.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520203713083.png b/articles/images/epiphany-x11-fixing/image-20240520203713083.png new file mode 100644 index 0000000000000000000000000000000000000000..296be182c650691502f93e85dab5b9656c28c635 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520203713083.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240520205009538.png b/articles/images/epiphany-x11-fixing/image-20240520205009538.png new file mode 100644 index 0000000000000000000000000000000000000000..22e00ab0c1ce2308bb2e317d01df7ce5e98b8406 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240520205009538.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240521102043248.png b/articles/images/epiphany-x11-fixing/image-20240521102043248.png new file mode 100644 index 0000000000000000000000000000000000000000..535b9f6ebb4aa74caf66dd3d3462fd76301f35d9 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240521102043248.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240521102217698.png b/articles/images/epiphany-x11-fixing/image-20240521102217698.png new file mode 100644 index 0000000000000000000000000000000000000000..a41acaa9345b4a29cb9dd4cf0ddedb796cbba533 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240521102217698.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240521104058515.png b/articles/images/epiphany-x11-fixing/image-20240521104058515.png new file mode 100644 index 0000000000000000000000000000000000000000..6087e027a50250b52fa4afab79ef0080357013ca Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240521104058515.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240521105651256.png b/articles/images/epiphany-x11-fixing/image-20240521105651256.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e042762249d6bc1b50911826eed7d3da543782 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240521105651256.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240811104514841.png b/articles/images/epiphany-x11-fixing/image-20240811104514841.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa2304d45d1eba8b197ed56e0790e72b2880323 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240811104514841.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240811104536585.png b/articles/images/epiphany-x11-fixing/image-20240811104536585.png new file mode 100644 index 0000000000000000000000000000000000000000..473e1479391b37e300c8d839f391098dd552577f Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240811104536585.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240825164137289.png b/articles/images/epiphany-x11-fixing/image-20240825164137289.png new file mode 100644 index 0000000000000000000000000000000000000000..43d726efcb08c325206fbd2bd2130a3c8dcf9b01 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240825164137289.png differ diff --git a/articles/images/epiphany-x11-fixing/image-20240825184818919.png b/articles/images/epiphany-x11-fixing/image-20240825184818919.png new file mode 100644 index 0000000000000000000000000000000000000000..dda44ad79fb6f9884cacd885c62f9ef4a04dd8a9 Binary files /dev/null and b/articles/images/epiphany-x11-fixing/image-20240825184818919.png differ