如何让更多人参与改进 Ubuntu 的 X.org?

如何让更多人参与改进 Ubuntu 的 X.org?

在 Ubuntu 中,X 是堆栈中比较关键的部分之一。因此,我们收到大量有关它的问题和错误报告,数量可能是我们人力所能处理的 100 倍。

Canonical 正在招聘更多工程师来开发 X,这会有所帮助,但仍有许多事情超出了 Canonical 的能力范围,因此我觉得建立一个强大的社区来改进 Ubuntu 中的 X 确实非常重要,特别是为了回答、分类和(希望)解决所有这些大量的错误报告。

然而,很难找到人来从事 X 或说服人们值得花时间从事这项工作。您建议如何鼓励那些原本可能不考虑从事 X 工作的人参与进来?

答案1

X 之所以没有得到很多工作,是因为它需要大量关于 GPU、内存等如何工作的知识,以及熟悉 X.org 代码库和某种程度上的内核编程。进入这个领域并不是一件容易的事,从社区的角度来看,那些对开发 X 或 X 驱动程序感兴趣的人可能已经这样做了。目前,除了个人兴趣之外,开发人员没有动力在 Xorg 上工作。

社区拥有而 X.org 开发人员不一定拥有的东西是访问各种硬件的能力。社区里有人愿意花时间编写“好的”错误报告,测试驱动程序和 Xorg 堆栈的部分内容发布可能对工程师来说最有帮助。

目前有一个 Xorg edgers 存储库,我用它来测试稳定系统上的驱动程序。测试完成后,回滚单个软件包非常容易。但是,我们可以测试的唯一其他方法是自己构建 X 或安装从上游构建的 edgers 存储库。据我所知,这可以完全替换 X。这意味着测试 X 的方法要么全有要么全无。

拥有两个 X 版本(并且相当容易选择)的方法不仅可以让测试人员测试 X,而且随后还可以回到正常运行的 Xorg,以便他们可以提交错误报告。

答案2

作为一名对 X 感兴趣的开发人员,我的问题如下:

  1. 我只能使用少数几种显卡,我怀疑大多数人只能使用一种。因此,对于绝大多数错误,我无能为力,这些错误总是出现在“其他显卡”上。

  2. 与大多数软件包不同,我无法轻松地为新版本的驱动程序创建测试环境;虚拟机有自己的 X 驱动程序。

  3. 我无法轻松地更新到最新驱动程序,测试它,然后恢复。这阻碍了实验(因为如果出现问题,我可能会被困住);它还妨碍了回归测试。

  4. 上次我查看时,成功应用补丁、编译和运行 X 非常困难,需要遍历整个包管理器,还需要修补内核模块,而且几乎是不可逆的步骤。

  5. 如今,X 驱动程序将其代码分为内核、Mesa、udev(用于设置和默认值)和用户空间驱动程序。这意味着补丁也会被拆分……

因此,我猜答案是让应用和恢复更改由包管理器来处理,这样当系统崩溃时就很容易恢复。

此外,应该考虑使用 DKMS 之类的系统来获取 X 驱动程序;如果我可以轻松地修补/编译/测试/卸载触摸屏的输入驱动程序,而不必重建整个单片装置(这可能会使 X 完全无法使用),那么您将获得更多随意的贡献,并激励我研究与该硬件相关的错误分类和测试补丁。

答案3

就像所有事情一样,很多事情都是为了让人们能够轻松、方便地了解它。所以,我记得,最初对于错误分类,社区并没有提供太多帮助。后来,当一些 wiki 页面解释了错误分类的常规流程,并且一些错误日吸引了更多社区成员参与。此外,如果您可以为社区发起一项常规活动,并为那些尝试的人提供帮助,您就会得到一些关注。

如果您需要活动方面的帮助,可以给我发电子邮件,我会协助组织活动。

因此,我的答案是制作一个 wiki 页面,其中包含问题和命令,以便获取良好的错误分类信息,从而让人们参与其中。

对于开发来说,这是一个大问题。Xorg 和 Kernel 需要低级编程技能才能修复大多数错误并实现功能。因此,您必须针对特定的程序员群体并让他们感兴趣。我在这里没有任何建议,除了四处打听一下,看看谁在 #ubuntu-x 上闲逛,并询问他们是否能提供帮助。

答案4

当许多用户使用专有驱动程序替换部分图形堆栈,然后在内核升级/X.org 升级破坏其驱动程序安装时向 X.org 团队寻求帮助时,很难改进 X.org。

很多关于“我没有所有可用的卡”的说法也是有效的。

如果你不是一名优秀的程序员,图形编程会相当困难。调试可能非常麻烦,尤其是当你看不到正在发生的事情时。

相关内容