Update BIOS from Linux

Hello, I think this is a common topic but what is the best way to upgrade BIOS from Linux if vendor has only Windows support drivers? I have a Gigabyte MB and AMD Ryzen 5 2600 CPU so, the ways are:

  1. Trying to find if there any network updating available in BIOS itself
  2. Install Win10 (Win 7 are better?) drivers via WINE (Virtual machine in a hard way)
  3. Install drivers via USB flash drive formatted in FAT32 EFI.

Also there is a note

Note: Update AMD Chipset Driver or latest version before update this BIOS.

I think it’s only for Windows but should I update something on Linux also for better performance? I know there should be some zypper packages not only for Intel processors but for AMD too.

I have a Gigabyte motherboard. To update (flash) BIOS requires no operating system:

1-download new BIOS container from Gigabyte web site
2-extract BIOS from container onto FAT formatted USB stick
3-place USB stick into motherboard USB socket
4-boot into BIOS setup
5-select QFlash
6-select stick device
7-select file to flash

Just “tested” procedure by updating from B250MD3H.F9d to B250MD3H.F10. IME, most newer motherboards provide a similar procedure.

Yeah, it’s a third way.
I also found there could be white USB ports so you can update BIOS even without loading PC with it and USB flash drive.

More than likely if the new firmware and installer supports only MSWindows, it’s in the form of a CAB file (inspect the downloaded file).
There are various utilities that can extract a CAB file, I understand WinZip(if you have a MSWindows machine available) supports nowadays, a quick search returns “cabextract” which runs on Linux.
After the file is extracted, take a look at what you have, often can be executed in Linux (assumes is script or C code).

Of course,
Don’t overlook possible Linux support for firmware, drivers and software from the manufacturer.


This poorly communicates whether you have been helped or need more help. We need more information if you still need help. What is the model of your Gigabyte motherboard? Have you download a BIOS update file? If yes, what type of file is it? The file command will tell you. If it is a .EXE file it might be a .ZIP file in disguise, extractable with any number of common unarchivers. If the motherboard’s support page does not provide instruction for update directly from FAT formatted device, you may nevertheless be able to install an extracted BIOS via the flashrom utility provided as an openSUSE rpm.

There is a nice video: https://www.youtube.com/watch?v=JJf7KfPO5TQ

Except for the BIOS version, date, time and motherboard model, that video looks just like mine looked when I updated yesterday. :slight_smile:

Mainboards which do not support BIOS/UEFI flashing via the BIOS interface itself – independent of whatever operating system is installed on the box – are absolutely not suitable for anything which isn’t a dual-boot system …

Exactly, this one

<GA-AB350M-DS3H V2 (rev. 1.1) Key Features | Motherboard - GIGABYTE Global;
Please note the restriction placed on the Q-Flash Utility.

Note: If you are using Q-Flash Utility to update BIOS, make sure you have updated BIOS to F31 before F40.

If you install openSUSE «anything» on a system with AMD CPUs, GPUs, APUs and/or Chip-Sets then, the following packages are automagically included for patches and updates via the openSUSE repositories:

  1. libdrm_amdgpu1 – “Userspace interface for Kernel DRM services for AMD Radeon chips”
  2. ucode-amd – “Microcode updates for AMD CPUs”
  3. xf86-video-amdgpu – “AMDGPU video driver for the Xorg X server”

Gigabyte is somewhat more cumbersome than say ASRock, which has a single click flash option in the BIOS since at least 2014, but this is mitigated by the DOS Flash utility:  How to Reflash Motherboard BIOS - GIGABYTE Global

ASRock Classroom: How to check, update, and clear BIOS: https://www.youtube.com/watch?v=PbyB-drELXE