Debian 中的非自由固件

摘要

Steve McIntyre 认为 Debian 需要重新考虑其非自由固件的解决方案。

长期以来,我们一直假装没有必要在 Debian 系统上支持和包含(非自由)固件。我们不想为我们的用户提供(非自由)固件,在一个理想的世界里,我们也不需要这样做。然而,当我们试图支持当前许多常见的硬件时,这显然不再是一种明智的方案。

他总结了目前 Debian 系统中的固件支持状态和问题:

然而,还有很多固件二进制文件不是自由的。如果我们在法律上能够重新分发这些二进制文件,我们会将它们打包,并将它们放在存档的非自由部分。作为自由软件开发者,我们不喜欢为我们的用户提供或支持非自由软件,但我们承认有时这对他们来说是必要的事情。这种矛盾在 Debian 自由软件指南中得到了承认。

这种矛盾也延伸到我们的安装和 LIVE 映像。由于非自由软件在官方看来不属于 Debian 的一部分,我们的正式映像不能包含任何非自由软件的内容。这也是多年来刻意制定的政策。取而代之的是,我们已经建立了一套有限平行的 “非正式非自由”映像,其中包括非自由固件。这些非自由映像同样是由我们制作正式映像的软件和团队制作的。

这里有很多问题让开发者和用户不满意:

  • 构建、测试和发布两套映像需要更多的努力。
  • 从哲学的角度来看,我们其实根本不想提供非自由映像。所以我们主要推广和宣传首选的正式自由映像。这对用户来说可能是一个混乱的因素。我们确实在不同的地方链接到非自由映像,但它们并不那么容易找到。
  • 使用非自由的安装映像会导致更多的安装默认使用非自由软件。这对我们来说不是一个很好的事情,我们可能最终会有更多的用户使用非自由软件,并相信这都是 Debian 的一部分。
  • 一些用户和开发者抱怨说,我们发布的正式映像对(大部分)用户都没有用,是在浪费他们的时间。

他提出了解决固件问题的五种选项:

  1. 维持现状
  2. 不再发布非自由的非正式映像
  3. 将非自由的非正式映像与正式映像移至一起发布
  4. 将非自由的非正式映像列为正式映像
  5. 将非自由固件包拆分为存档中的非自由固件组件,并将其作为例外允许包括在正式映像上,这将消除两套映像的需要

在选项5的基础上,他也进一步建议:

  • 在映像运行时说明使用/安装哪些固件软件包来支持检测到的硬件
  • 在启动时添加禁用非自由固件软件包的选项

原文地址

https://blog.einval.com/debian/issues/firmware-what-do-we-do.comments

相关讨论

https://lists.debian.org/debian-devel/2022/04/msg00130.html

https://www.reddit.com/r/debian/comments/u6w6kv/firmware_support_in_debian_what_are_we_going_to/

参考

FSF & GNU

关于被迫使用非自由软件的情况,RMS写过一篇有关的文章:

https://www.gnu.org/philosophy/install-fest-devil.en.html

FSF 的“尊重您的自由”硬件认证要求:

https://ryf.fsf.org/about/criteria

Debian

自由固件

Debian Wiki 上关于自由固件和固件更新的页面:

https://wiki.debian.org/Firmware/Open

https://wiki.debian.org/Firmware/Updates

非自由固件统计数据

Debian 非自由固件软件包 firmware-nonfree 的安装统计:

https://qa.debian.org/popcon.php?package=firmware-nonfree

自由固件项目

libreboot的二进制 blob 政策:

osboot 的二进制 blob 政策:

选项5如果能够减少工作量,那应该是不错的选择。
Manjaro/Ubuntu在安装时,好像都会有提示,选择是否安装非自由驱动,应该和选项5是一回事~

不,这里谈论的问题是非自由固件,而不是非自由驱动。原始作者认为,固件运行在与操作系统不同的空间(通常在不同的处理器)上,而驱动是内核和整个操作系统的一部分,他没有计划在正式映像中包括非自由驱动。

Firstly: Please don’t confuse non-free drivers with non-free firmware, they are different things! Firmware runs in a different space to the OS, typically on a different processor. Drivers are part of the kernel, part of the OS. We have no intention of including proprietary or non-free drivers on official media.

Secondly: the problem with the possible missing firmware message comes from the hardware itself. In some cases (like the Realtek ethernet cards you mention!), we cannot reliably tell if the hardware needs firmware loading or not. The device IDs are identical for different versions of the hardware - some need firmware and some don’t. We don’t have enough information to tell for sure.

The user will only find out later if firmware was needed when they try to use the system. This is a real problem. :frowning:

又犯错误了~
我一直以为固件=驱动,就好像intel无线网卡固件需要下载一个单独的包一样。

From Firmware - Debian Wiki

Many devices require firmware to operate. Historically, firmware would be built into the device’s ROM or Flash memory, but more and more often, a firmware image has to be loaded into the device RAM by a device driver during device initialisation.

对于最终用户而言,固件和驱动都与硬件可用性紧密相关,(往往)缺一不可,所以你的这种误解并不算罕见。

1 个赞

现在好像确定了选用第五条,希望第五条补充的也考虑进去,作为使用者我希望他给我在安装时选择安装哪些非自由固件的权力,而不是在安装好后在自己去禁用或者卸载自己不想安装的固件。看看最后具体是啥样的,第五条补充点很重要(要再进一步:安装时能自由选择)。还是低头了,唉