如何在Linux内核中测试硬件特定的错误和功能?

时间:2015-07-11 07:06:53

标签: linux-kernel

内核开发人员如何在非常具体的硬件上测试更改?如果他们没有那种特定类型的硬件,他们如何找出问题发生的位置?

2 个答案:

答案 0 :(得分:0)

通常,负责为特定硬件编写驱动程序的内核开发人员也恰好是测试人员和拥有该硬件的人。

如果该开发人员在该硬件上遇到错误(或者人们报告错误),他通常会修复它。要求某人为他不拥有的某些硬件修理或维护驱动程序是愚蠢的。

对于更高级别的内核功能,这里是Linux开发范例发挥作用的地方。 Linux采用合并窗口策略进行发布,因为要求每个开发人员在每个可能的硬件和软件组合组合上测试他的更改是不现实的。

相反,在主要版本发布后,合并窗口会打开大约2周,开发人员可以在其中推出重大更改,新驱动程序和功能。合并窗口关闭后,不再接受新更改的补丁。

在合并窗口关闭的这段时间内,开发人员有机会在自己的硬件上测试新合并的代码并报告错误和破坏。通常,开发人员与引入更改的人一起工作以修复错误。开发人员现在可以将修复程序发送到下一个候选版本中。

新发布候选版本大致每周发布一次。当Linus很高兴这个版本引入的大部分错误都已修复时,他会发布一个重要的版本,然后重新开始循环。

换句话说,你的问题的答案是他们没有。没有一个开发人员对所有事情负责,也不希望他们为其他人解决问题。开发人员只负责他维护的内核部分。

答案 1 :(得分:0)

我确实维护了一些我没有的硬件驱动程序(没有其他内核开发人员可以使用)。

此类驱动程序的更改必须非常

  • 有时可以在 可用的类似硬件上测试更改。
  • 当用户报告问题时,可能会要求此用户测试更改,或者找到具有相同硬件的其他用户。
  • 如果必须修复实际的错误(安全相关或其他),最佳解决方案可能是应用未经测试的更改,并希望获得最佳效果。
  • 否则,不要做出改变。