IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    在 Linux 系统中升级超微 BIOS 固件

    Phoenix Nemo发表于 2021-02-03 03:05:27
    love 0

    最近突然有客户找来说 BIOS 进不去了呀…看截图 stuck 在 POST Code AB 大概就知道什么情况了。

    这不就是经典的 y2k bug 再现嘛…

    一般情况下,升级超微 BIOS 固件的推荐方式是制作 DOS 启动盘引导系统升级,不过现在 BIOS 进不去也没有物理 access 就只好在 Linux 里操作啦。

    获取设备信息

    简单命令 lshw

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    ~> lshw | head -n 25
    localhost
    description: System
    product: X9SCL/X9SCM (To be filled by O.E.M.)
    vendor: Supermicro
    version: 0123456789
    serial: 0123456789
    width: 64 bits
    capabilities: smbios-2.7 dmi-2.7 smp vsyscall32
    configuration: boot=normal chassis=desktop family=To be filled by O.E.M. sku=To be filled by O.E.M. uuid=[redacted]
    *-core
    description: Motherboard
    product: X9SCL/X9SCM
    vendor: Supermicro
    physical id: 0
    version: 1.11A
    serial: [redacted]
    slot: To be filled by O.E.M.
    *-firmware
    description: BIOS
    vendor: American Megatrends Inc.
    physical id: 0
    version: 1.1a
    date: 09/28/2011
    size: 64KiB
    capacity: 8128KiB

    X9 主板不是 2015 年就 EOL 了吗这可真是够老了…

    总之主板型号是 X9SCM 于是在超微找到了新版的 BIOS 固件。下载到系统中解压得到一堆文件,其中 X9SCM1.106 这个文件就是需要的 BIOS 固件本体。

    编译 SUM 内核模块

    Supermicro Update Manager (SUM) 是用于在系统中控制 BIOS/BMC 的程序。首先下载并解压,得到 sum 二进制文件和一堆其他东西。在 driver 目录中发现了对应发行版预编译的内核模块,但是直接 insmod sum_bios.ko 出错,好在它也提供了源码,那么就直接编译吧。

    首先安装对应内核的 Linux 头文件,搜索 linux-headers 一般都可以找到。

    1
    2
    ~> uname -a
    Linux localhost 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux

    然后

    1
    ~> apt install linux-headers-4.19.0-13-amd64 build-essential # 还需要 make 和 gcc

    进入 driver/Source/Linux 执行 make,如果成功编译,则 insmod ./sum_bios.ko。

    嗯,这次没有报错了。

    升级 BIOS

    升级命令和其他主板商以及 RH 系的包命名风格一样喜欢大小写混合 = =…

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ~> ./sum -c UpdateBios --file ../X9SCM1.106/X9SCM1.106
    Supermicro Update Manager (for UEFI BIOS) 2.5.1 (2020/11/12) (x86_64)
    Copyright(C) 2013-2020 Super Micro Computer, Inc. All rights reserved.

    WARNING: BIOS setting will be reset without option --preserve_setting
    Reading BIOS flash ..................... (100%)
    Writing BIOS flash ..................... (100%)
    Verifying BIOS flash ................... (100%)
    Checking ME Firmware ...
    Putting ME data to BIOS ................ (100%)
    Writing ME region in BIOS flash ...
    - Update success for /FDT!!
    - Updated Recovery Loader to OPRx
    - Updated FPT, MFSB, FTPR and MFS
    - ME Entire Image done
    WARNING:Must power cycle or restart the system for the changes to take effect!

    至此就基本完成啦。然后直接重启即可生效。

    不过还是需要注意一下,升级固件都是有变砖风险的,某些情况下需要先联系硬件厂商支持确定升级路线。

    以及新版 X10 开始升级 BIOS 需要激活 license 了… 嘛。听说超微的密钥早就被提取出来写了算号器了(什

    最后的最后,提醒各位到 2038 年只有 17 年了哦(笑



沪ICP备19023445号-2号
友情链接