如何从Linux更新BIOS,UEFI或微码

英特尔XEON E5的死模或显微照片

你知道的 如何更新BIOS 从您的PC? 借助Spectre,Meltdown等漏洞及其在硬件(尤其是CPU)中检测到的所有变体和其他安全漏洞,您肯定已经读过很多遍,即使其中的许多问题都已经解决,他们知道如何更新计算机的BIOS或UEFI,因为需要对CPU使用的微码进行更新或补丁,从而改变CPU控制单元的操作方式,因此它不容易受到上述威胁的影响。

除了漏洞, 固件可以更新 由于许多其他原因,例如硬件设备的故障,软件以无法解释的方式不断出现错误,进行更新以添加一些功能等。 但是正如我所说,由于安全问题在某些情况下非常关键,并且与现代微处理器处理某些跳转,缓存,FPU和推测性执行的方式有关,因此在最近几个月中我们听到这个词的次数太多了,尽管在其他情况下,它们已在系统的其他部分(例如集成在这些平台中的芯片组或某些安全处理器)中被检测到...

什么是固件?

主板的BIOS芯片

我们都非常清楚什么是硬件(计算机的物理和可触及的部分,即电子设备)和软件(不能触摸的逻辑部分:程序)。 但是在硬件和软件之间,或更确切地说,在硬件和操作系统的内核之间,还有其他东西: 固件。 固件存在于计算机的所有设备和部件中,从鼠标,光盘驱动器到使用微码运行的GPU和CPU。

那是什么好吧,你可以这么说 是代码,也就是说,软件,因此是逻辑组件,但这一次它是不可更改的。 它在较低级别上运行,并直接控制电子电路的功能。 该固件在控制器或驱动程序的帮助下,当操作系统的内核命令硬件执行任务时,它将执行该固件。 该程序或代码已由设备制造商记录在通常为闪存的存储器或某种类型的ROM(例如EEPROM)中。

但是本文中最让我们感兴趣的固件之一是 BIOS或UEFI 这是系统的重要组成部分,因为它是非常重要的固件,在设备的启动和操作过程中具有各种功能。 例如,此代码负责在启动过程中激活机器,检测操作系统可用的硬盘驱动器或介质,执行一些检查,检查是否干扰组件和外围设备的其他固件,以及在系统开始启动时将控制权交给内核...

为什么更新它会影响CPU?

CPU针脚

…这与CPU有什么关系,足够好了。 原来CPU有 控制单元该控制单元是负责控制微处理器或CPU其余部分的电路,例如对指令进行解码并将带有操作数的数据传递到适当的寄存器,然后激活诸如ALU之类的某些功能单元或FPU,并根据正在执行的指令类型对数据执行某些操作。 这些指令又来自当时正在处理的程序或软件代码,因为您应该知道,程序由一系列顺序指令组成。

可以想象,该控制单元的运行方式是制造商或设计人员创建的。 在某些特定情况下,控制单元可能会进行接线,也就是说,它们通常非常快,但并不十分灵活,因为它们是通过非常特定的电路直接实现的。 另一方面,也存在可编程的电路,也就是说,可以按照一种或多种方式以某种方式工作的“开放”电路。 微码或固件。 因此,如果更改固件或微代码,我们可以制造控制单元,因此CPU可以进行不同的操作或纠正某些错误或漏洞。

我不想太技术化,我希望这篇文章能吸引尽可能多的人,并且我想说的一切都易于理解...而且在许多机器中,事实证明,此代码通常集成到 BIOS或UEFI ,尽管有时可以在每次引导期间通过内核更新微码,将更新或补丁保存在易失性内存(即RAM)中,从而无需更改BIOS / UEFI。

如何从Linux更新BIOS / UEFI?

UEFI ASUS介面

要从Linux或微码更新BIOS / UEFI,让我们分解一下 这两个过程。

在执行微代码更新之前,拥有一个非常重要的 更新的BIOS / UEFI固件否则可能无法正常工作。 因此,请访问固件供应商的网站,例如Phoenix,Award等,或主板型号的技术支持网站,这些网站通常都包含用于更新这些系统的软件包。

如上一节有关风险所述,更新BIOS / UEFI是一件微妙的事情。 因此,如果您不确定自己在做什么,我建议您不要这样做。 如果你想更新 或者您需要它,但是您没有足够的知识,请务必咨询专业人士。 另外,我建议您看一下fwupd,BIOSDisck,Flashrom等项目,它们是非常实用的工具,可以在此过程中为我们提供帮助。

我最喜欢的人之一是 闪存,关于 一个为我们提供工具的包装 可以识别,读取,写入,验证和擦除闪存芯片。 这不仅用于刷新BIOS / UEFI / CoreBoot,还用于在其他具有可修改固件的设备中修改网卡,GPU等的其他闪存。 它还支持多种操作系统,多种齿轮以及设备和板卡的模型。

  • 安装flashrom软件包 使用您通常使用的包管理器在分发中进行更改,因为它是最重要分发的存储库中的一种工具。
  • 使用 根或sudo,因为要使用它,您需要特权才能变得精致。
  • 识别固件 我们只需执行以下命令即可使用:
flashrom

  • 我建议你做一个 备份您当前的ROM,以防万一您发现新的更新无法正常工作并且想要返回。 为了它:
flashrom -r copia_seguridad.bin

  • 是的,我知道 我们有新的ROM 从可靠来源下载的,我们可以使用以下命令进行刷新,例如,如果我们的新更新名为uefi-sm.bin:
flashrom -wv uefi-sm.bin

欲了解更多信息,请参阅手册 男子闪光.

更新微码:

要更新我们CPU的微码而无需接触BIOS / UEFI,即在Linux内核中进行简单修改,就可以选择为CPU安装必要的软件包。 例如,如果您有现代的AMD CPU,通常情况是 安装软件包amd64,微码,对于Intel来说, Intel的微码 (如果您使用openSUSE,SUSE,RHEL,CentOS等,则该软件包称为 microcode_ctl, 对于Arch intel-ucode或amd-ucode ...),您可以在受信任的网站上找到...(如果它是x86机器,如果是ARM或其他机器,请访问制造商的网站)。 Insisto a pesar de parecer un pesado, no descargues este tipo de paquetes desde fuentes desconocidas, es muy importante. Bien, ahora que ya lo tenemos descargado e instalado, puede que el procedimiento sea diferente en cada distribución y que implique activar algunos paquetes o actualizaciones restringidos como los propietarios…

安装了这些软件包,并参考了正确配置的更新的系统设置后,自己的安全更新 如果已检测到一些严重漏洞(例如Spectre,Meltdown等),则安装了操作系统的操作系统将已经包含此类微码补丁。

如果需要,可以使用以下方法从发行版中获取微码信息:

dmesg | grep microcode

这样,我们将获得 微码详细信息实际上,如果我们在安装之前提到的软件包之前(在安装之后有必要重新启动)并在安装之后执行了此命令,那么如果已经安装了可用的更新,我们将看到它向我们显示了更改。

有时,AMD,英特尔和其他CPU制造商或设计人员为tarball提供二进制二进制文件,以更新微代码或固件。 如果您从可靠的地方下载了这些软件包之一,请遵循发行商提供的说明或查阅自述文件。

更新BIOS之前的危险和提示

回收主板

固件或微码更新 CPU的使用在大多数情况下意味着更新由我们拥有的CPU提供程序提供的封闭代码,封闭的内核驱动程序(二进制Blob)等。 我想说清楚一点,因为它的内容和操作方式是未知的,您应该知道这似乎是合乎逻辑的。 原则上,如果您不使用免费硬件,则别无选择,只能信任CPU或主板的制造商或设计者,但是是的,永远不要从非官方网站下载微码或固件,因为这非常微妙。

实际上不仅 很精致 出于安全原因,因为您还可能使设备完全无法使用。 即使您是从信誉良好的网站上下载固件,在此过程中也可能出问题,例如断电,这会导致更新安装和固件完全损坏,这意味着您可能已经在考虑花钱了买新的主板。

这就是所谓的术语 hardware语中的砖头,也就是说,您的硬件就像砖头一样,没有任何实用程序。 因此,我想告诉您要谨慎,如果您决定更新任何固件或刷新BIOS / EFI,我们将不承担任何责任。 但是要提防,这并不总是意味着风险,正如我之前告诉您的那样,不一定总是“触摸” BIOS / EFI,也有仅在操作系统级别的更新,并不意味着这些风险。 。

希望本教程对您有所帮助,如有任何问题或建议,请不要忘记留下您的 评论...


3条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   鲁本·霍拉西奥·斯佩科尼亚(Ruben Horacio Specogna)

    你好,早上好,我想在笔记本上安装xubuntu 14并下载文件,然后进行安装,但是当它要求从usb密钥重新启动时,我输入了BIOS并在启动菜单中找不到闪存,有人可以帮忙吗我,非常感谢您。

  2.   何塞·路易斯·马特奥

    朋友你好:

    我认为这篇文章很棒,尽管对我们这些新手和恐惧者来说是“危险的”。

    很久以来,我一直在错过一篇好文章,这使我们了解像我的多功能打印机系统(佳能MG 7150)如何在Wifi上工作。

    对于Linux,我从未充分发挥作用。 我设法通过USB连接了打印机,但无法通过Wi-Fi或电缆连接扫描仪。

    这就是为什么今天我提出这个主题,同时也感谢你向我们提供了与目前一样高质量的文章; 但同时,我希望知道此事的人能够使我们更轻松地使上述系统正常工作。

    谢谢和亲切的问候

  3.   加布里埃尔

    首先在BIOS中查看是否有MULTIBOOT选项(必须在其中激活),如果没有,则存在,通常在打开PC时要通过USB引导,您必须按住F8键一段时间(在在其他PC上通常是F12),然后会跳出引导菜单,显示以下选项:硬盘,CD,USB。 如果具有UEFI,则必须使用UEFI选项生成USB,否则无法识别