在 Ubuntu 中,X 是堆栈中更关键的部分之一。因此,我们收到了大量关于它的问题和错误报告,可能是我们需要处理的人力的 100 倍。
Canonical 正在招聘额外的工程师来研究 X,这将有所帮助,但仍有许多事情超出了 Canonical 的能力范围,所以我觉得有一个强大的社区参与改进 Ubuntu 中的 X 非常重要,尤其是围绕让所有这些大量的错误报告得到答复、分类和(希望)解决。
然而,很难找到人在 X 上工作或说服人们花时间在 X 上是值得的。你建议如何鼓励人们参与,否则他们可能不会考虑在 X 上工作?
X 没有得到大量工作的原因是它需要大量关于 GPU、内存等如何工作的知识,以及熟悉 X.org 代码库和一定程度上的内核编程。从社区的角度来看,对 X 或 X 驱动程序感兴趣的人可能已经在这样做了,这并不是一件小事。目前除了个人兴趣之外,开发人员没有动机让开发人员在 Xorg 上工作。
社区拥有而 X.org 开发人员不一定拥有的东西是对各种硬件的访问。让愿意花时间编写“好的”错误报告和测试驱动程序以及 Xorg 堆栈的一部分的人在发布之前对工程师的帮助可能比任何事情都大。
目前有一个 Xorg edgers repo,我用它来测试我稳定系统上的驱动程序。在我完成测试后回滚单个包非常容易。然而,我们可以测试的唯一其他方法是自己构建 X 或安装从上游构建的边缘存储库。据我所知,这是一个批发 X 替代品。这意味着测试 X 是一种全有或全无的方法。
有一种方法可以让 X 的 2 个版本(并且相当容易选择)您想要使用哪个版本将允许测试人员不仅可以测试 X ,而且随后可以返回到工作的 Xorg 以便他们可以提交错误报告。
作为一个对 X 很感兴趣的开发者,我的问题是:
我只能使用几张显卡,而且我怀疑大多数人只能使用一张。因此,我无法为绝大多数错误做太多事情,这些错误总是在“其他卡片”上。
与大多数软件包不同,我不能轻易地为新的驱动程序版本创建测试环境;虚拟机有自己的 X 驱动程序。
我不能轻易更新到最新的驱动程序,测试它,然后恢复。这不鼓励实验(因为如果出现问题,我还不如被砖头);它还阻碍了回归测试。
上次我查看时,成功应用补丁、编译和运行 X 很难做到,遍及包管理器,还需要修补内核模块,这几乎是一个不可逆转的步骤。
如今,X 驱动程序在内核、Mesa、udev(用于设置和默认值)和用户态驱动程序之间拆分代码。这意味着补丁也会分裂......
所以我想答案是让应用程序和恢复更改由包管理器处理,并且在它破坏你的系统时很容易恢复。
此外,应该为 X 驱动程序查看像 DKMS 这样的系统;如果我可以轻松地修补/编译/测试/卸载,例如,我的触摸屏的输入驱动程序,而无需重建整个单片装置(它的威胁使 X 完全无法使用),你会得到更多随意的贡献并激励我查看与该硬件相关的错误分类和测试补丁。
就像所有的东西一样,它让人们很容易就能找到它。因此,根据我对错误分类的记忆,最初并没有来自社区的太多帮助。然后,当一些 wiki 页面解释了分类错误的常规过程和一些错误日时,更多的社区成员参与其中。此外,如果您可以为社区开展定期活动并为尝试它的人提供帮助,您将获得一些兴趣。
如果您需要有关活动的帮助,您可以给我发电子邮件,并在组织活动方面提供帮助。
所以我的回答是制作一个带有问题和命令的 wiki 页面,以获得良好的错误分类信息,让人们参与其中。
对于发展来说,这是一个大问题。Xorg 和内核的东西需要低级编程技能来修复大多数错误和实现功能。因此,您必须针对特定的程序员群体并让他们感兴趣。我在这里没有任何建议,除了四处打听,看看谁在#ubuntu-x 上闲逛,问他们是否可以提供帮助。
为了补充 jbowtie 所说的,我要补充一点,作为一个错误分类器,我发现 X 错误非常难以处理,因为 X 是一个非常复杂的野兽。这反映在故障排除 wiki 页面的复杂性上。肯定会有所帮助的是一种指导计划,让 BugSquad 成员学习如何更好地处理 X 错误。也许在它周围做一个错误拥抱日?还是在#ubuntu-classroom 中进行实践培训?
当许多用户使用替换部分图形堆栈的专有驱动程序并在内核升级/X.org 升级破坏他们的驱动程序安装时求助于 X.org 团队时,很难改进 X.org。
很多关于“我没有所有可用的卡”的讨论也是有效的。
如果你不是一个优秀的程序员,图形编程是相当困难的。调试可能真的很痛苦,尤其是当你看不到发生了什么的时候。