6.4. 加载缺失的固件

正如 第 2.2 节 “需要固件的设备” 里面所说,有些设备需要加载固件。大部分情况下,如果没有固件设备就无法工作;有时没有固件不会影响基本的功能,但增强功能就无法使用。

根据 2022 年关于非自由固件的一般性决议,从 Debian GNU/Linux 12.0 开始,官方安装映像(如网络安装映像)可以包含非自由固件软件包。即使包含了那些固件软件包,仍可能缺少一些固件文件。或者您也可以使用 netboot 文件,它不包含固件软件包。

如果没有设备驱动程序所需的固件,debian-installer 将显示对话框要求加载缺失的固件。假如选取了选项,debian-installer 将扫描现有设备松散的固件文件或包含固件的软件包。如果搜索到,固件会被复制到正确的位置 (/lib/firmware),然后加载驱动程序模块。

[注意] 注意

具体哪些设备会被扫描和支持哪个文件系统,取决于系统的架构、安装方法和安装的阶段。特别是在安装的早期阶段,从 FAT 格式的 U 盘加载固件更容易成功。在 i386 和 amd64 上固件可以从 MMC 或 SD 卡加载。

假如了解设备毋需固件也可以工作,或者设备在安装时并不需要使用,您可以跳过加载固件。

6.4.1. 准备介质

这些固件通常是从移动介质,比如 U 盘来加载。制作这种 U 盘(或者其他的介质,比如硬盘分区)时,固件文件或软件包必须放置在文件系统的根目录或者名为 /firmware 的目录下。推荐使用 FAT 文件系统,因为在安装过程的早期阶段它肯定能被支持。

包含常见固件的最新版本软件包的 tar 包和 zip 文件,以及确保它可以被安装程序正常检测到的与之对应的元数据(dep11 目录),可以从这里获得:

下载对应版本的压缩包或 zip 文件,然后解压到介质的文件系统里面。

也可以复制单独的固件文件到介质。要求不严的固件还可以从已经安装的系统或硬件制造商那里获得。

6.4.2. 固件和安装好的系统

任何安装期间加载的固件会自动被复制到安装好的系统。多数情况下这可以保证需要固件的设备可以在系统重新启动之后正常工作。然而,如果安装好的系统运行在与安装程序不同的内核版本,有可能由于版本的偏差造成固件不能加载。

如果固件从一个固件软件包加载,debian-installer 会为安装好的系统也安装该软件包,并自动添加软件包仓库的 non-free-firmware 分区到 APT 的 sources.list。这样做的优点在于如果有固件的新版本存在会自动更新。

如果安装过程中跳过加载固件,相关的设备可能无法在安装好的系统中工作,直到手动安装好固件或软件包。

[注意] 注意

如果固件从不严格的固件文件加载,复制到安装好的系统的固件将不会自动更新,除非对应的固件软件包(如果有的话)在系统安装之后安装。

6.4.3. 完善已安装的系统

取决于安装方式,可能有某些必需的固件在安装时没有检测到,对应的固件不可用,或者您当时选择不安装某些固件。有些情况下,一次成功的安装仍然可能在重启后黑屏或者出现显示错误。如果出现这种情况,可以尝试以下的临时解决办法:

  • 在内核命令行中添加 nomodeset。这可能可以帮助系统进入到fallback graphics模式。

  • 使用 Ctrl+Alt+F2 组合键切换到 VT2,这可能可以提供一个可以使用的登录提示符。