Gigabyte motherboard BIOS upgrade

HI all,


First off, allow me to apologize if this isn’t the correct category for this. Move it as you see fit if necessary.


Taking took a look at my inxi output, randomly and just because I could, I noticed my BIOS is relatively old:

$ inxi --admin --verbosity=7 --filter --no-host --width
[...]
Machine:
Type: Desktop System: Gigabyte product: Z370 HD3 v: N/A serial: N/A
Mobo: Gigabyte model: Z370 HD3-CF v: x.x serial: N/A
UEFI: American Megatrends v: F5 date: 10/30/2017
[...]

So, I went and checked and, correct me if I’[m wrong, but it looks to me ass if there is an updated version available.

Now, I’m not experiencing any problems, so it’s not critical, I just figure I need yo update it, because it doesn’t do any harm.

So my question is, does anyone know how to update a gigabyte BIOS/UEFI from Linux?

If not, how would you recommend doing it? Keep i mind that I don’t have Windows on my machine and neither do I care to get it, even temporarily.

I*f it can be done with fwuppmgr, I don’t know how, and I’m not able to figure it out. I’ve gone through fwupd - ArchWiki and gotten a list of devices:

$ fwupdmgr get-devices
Gigabyte Technology Co., Ltd. Z370 HD3
│
├─Core™ i7-8700 CPU @ 3.20GHz:
│     Device ID:          4bde70ba4e39b28f9eab1628f9dd6e6244c03027
│     Current version:    0x000000f2
│     Vendor:             Intel
│     GUIDs:              b9a2dd81-159e-5537-a7db-e7101d164d3f ← cpu
│                         30249f37-d140-5d3e-9319-186b1bd5cac3 ← CPUID\PRO_0&FAM_06
│                         809a0b93-8a12-5338-a571-ad5583acf896 ← CPUID\PRO_0&FAM_06&MOD_9E
│                         72ec2ff3-49ff-5ec2-bdbb-525badd47543 ← CPUID\PRO_0&FAM_06&MOD_9E&STP_A
│     Device Flags:       • Internal device
│   
├─GM206 [GeForce GTX 960]:
│     Device ID:          ce4c74a5188d5b9cdb1e72ed32dad2d313c1c999
│     Current version:    a1
│     Vendor:             NVIDIA Corporation (PCI:0x10DE, PCI:0x8086)
│     GUIDs:              b79fa1aa-13f9-5173-b05d-ebd535ded2f6 ← PCI\VEN_10DE&DEV_1401
│                         5a1bb099-d393-57de-83c1-98f083971aa5 ← PCI\VEN_10DE&DEV_1401&SUBSYS_145836BD
│                         d29269b6-e458-5f45-975c-9d52bb38e35f ← PCI\VEN_8086&DEV_1901
│                         5a70c4e8-ec74-5095-806d-cb2aef1cd52c ← PCI\VEN_8086&DEV_1901&SUBSYS_14585000
│     Device Flags:       • Internal device
│                         • Cryptographic hash verification is available
│   
├─SSD 960 EVO 250GB:
│     Device ID:          e6b39964e9afdb51007551470f6c79a2e720fd08
│     Summary:            NVM Express solid state drive
│     Current version:    3B7QCXE7
│     Vendor:             Samsung (NVME:0x144D)
│     Serial Number:      S3ESNX0K162428H
│     GUIDs:              5b3df2da-f745-5fd0-81de-5dafd7f0bf8c ← NVME\VEN_144D&DEV_A804
│                         aed4d3c0-fd97-5e46-a32f-ff35e0692f6d ← NVME\VEN_144D&DEV_A804&SUBSYS_144DA801
│                         e5b293c4-ce87-526e-b467-75fdec86360c ← Samsung SSD 960 EVO 250GB
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│                         • Signed Payload
│   
├─ST4000DM000-1F2168:
│     Device ID:          5dbeb140337f610d54913c0f43d15fdaa0eafb51
│     Summary:            ATA drive
│     Current version:    54
│     Vendor:             Seagate (ATA:0x1BB1, OUI:000c50)
│     Serial Number:      Z304D4DE
│     GUIDs:              9a8a7726-5d2d-5c68-be82-5e555178e8eb ← IDE\ST4000DM000-1F2168______________________54
│                         a7be747e-a811-563a-9bbc-cf590ee98e6e ← IDE\0ST4000DM000-1F2168______________________
│                         4333a815-8cb0-52ea-8edc-c8c5a117264c ← ST4000DM000-1F2168
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│   
└─ST5000VX0011-1T317X:
      Device ID:          e421b2fc248391f6fe3e55ddbb3c9043be068bd0
      Summary:            ATA drive
      Current version:    VN02
      Vendor:             Seagate (ATA:0x1BB1, OUI:000c50)
      Serial Number:      Z4D06XG7
      GUIDs:              0e4502c6-fbef-5a4a-9ec1-6ed460320321 ← IDE\ST5000VX0011-1T317X_____________________VN02
                          9602d34f-5ae7-5904-880d-6cbfb144d488 ← IDE\0ST5000VX0011-1T317X_____________________
                          63dd6aba-c214-5654-a1e2-df7cf1478864 ← ST5000VX0011-1T317X
      Device Flags:       • Internal device
                          • Updatable
                          • System requires external power source
                          • Needs a reboot after installation
                          • Device is usable for the duration of the update
    

But they don’t look updatable to me. And there is a note on the Arch wiki page that states:

Note: Listed devices may not be updatable through fwupd (e.g. Intel integrated graphics). Alternative vendor solutions may be provided instead.

And indeed, updating the metadata with:

$fwupdmgr refresh --force                                                                                                                                                                                                                            2 ↵
WARNING: UEFI ESP partition may not be set up correctly
See https://github.com/fwupd/fwupd/wiki/PluginFlag:esp-not-valid for more information.
Updating lvfs
Downloading…             [       \                               ]
Successfully downloaded new metadata: 0 local devices supported

states nothing new is supported. So I thought I understood correctly. But, seeing as I might not have understood the original output correctly, I ran the update so that it can be updated anyway if there were actually updates:

$ fwupdmgr update
WARNING: UEFI ESP partition may not be set up correctly
See https://github.com/fwupd/fwupd/wiki/PluginFlag:esp-not-valid for more information.
Devices with no available firmware updates:
• SSD 960 EVO 250GB
• ST4000DM000-1F2168
• ST5000VX0011-1T317X
No updatable devices

So, nothing. The Gigabyte BIOS/UEFI isn’t even found. Which leads me to think my original assessment about fwupd is correct.

So I that is where I stand, now. I want to do the BIOS update . I have it downloaded, saved and can browse it. The contents of the downloaded .zip archive is:

$ ls -l
.rw-r--r-- mirdarthos mirdarthos  20 B  Fri Dec  3 17:16:18 2021  autoexec.bat
.rw-r--r-- mirdarthos mirdarthos  97 KB Tue Jun 16 20:34:42 2020  Efiflash.exe
.rw-r--r-- mirdarthos mirdarthos 280 B  Wed Oct  9 11:10:20 2019  readme.txt
.rw-r--r-- mirdarthos mirdarthos  16 MB Fri Dec  3 17:13:06 2021  Z370HD3.F14

If anyone can help me, that’d be swell. If not, :man_shrugging:

When you boot your system can you go into the bios settings.I have a gigabyte motherboard and there’s an option to update the bios.The file to update should be Z370HD3.F14 .I have updated my bios a few times but it’s an area I don’t care to have to do If everything is working and I’m not adding anything new I like the if it ain’t broke don’t mess with it.

That sounds promising. I’ll look into it.

Might be arrogant, but can’t you just read the motherboard manual?

It is even on the first pages…

Not arrogant. I can, yes. I just came from a background where a BIOS update was a very…intense thing to attempt. I should have thought to check that first. My apologies.

It maybe overkill but I’ve always reset the bios to defaults rebooted then updated the bios rebooted then reset to the way I had it before. :crossed_fingers:

Welp, thanks @megavolt, @straycat.

Whadya know? Following the manual’s instructions worked.

Wonders. They never cease.

Now, I just have to restore my grub theme.

1 Like

For the sake of other users that find the topic in the future:
When EFI updates, esp. in cases where it does not support the capsule /fwupdmgr method, usually, some EFI variables are reset. Including the Boot menu. On a dual boot system that is then, windows, or might be other linux system. I think that is why you do not have your theme - you are probably booting from \EFI\BOOT\BOOTX64.EFI , which might be a copy of \EFI\manjaro\grubx64.EFI if the system had never had Windows before. But withoutht the custom config like theming.

So, long story short: keep a bootable usb at hand when updating. And visit

===============
p.s. I wonder if i share this embarrassing information, but if it saves someone from trouble:
I nearly bricked my laptop yesterday. It has Insyde BIOS. Since it also is not linux (fwupdmgr) compatible, i decided to see if i could “work on it”. Well, the innosetup exe got extracted, than another exe, then a BIOS.fd file came out, and the file command showed it was actually EFI executable. And i decided to run it…well i obviously missed something…the update wrote the flash, but did not verify it and did not reboot the pc, and it was in no way rebootable (tried every possible recovery combo, 30 seconds power button etc), so i had to dissasemble the laptop to get to the battery connector…and of course i had to restore grub…
To sum up: do not try extracting the EFI executable and running it from a Insyde bios update. The other 2 methods a using a veeery ancient dos tool or windows pe, both veeery error prone. So the only secure way the flash Insyde is windows.

May I also suggest this procedure as noted by @bogdancovaciu. I used his process with Ventoy and a copy of HiRens PE to update the BIOS on a Lenovo laptop. I used two flash drives – one for Ventoy and another for the update executable itself.

@owburp what kind of bios was it?

Not quite sure what info you are looking for here, but the laptop is a Legion Pro 5 with a UEFI BIOS. The update offered by Lenovo was a Windows 10 or 11 executable with no alternative for Linux or any other way to install it. My original plan when I bought the laptop was to keep a copy of the original Win 10 install and use that for BIOS updates but I had not considered all the Windows updates that I’d probably have to install before being able to run that BIOS executable. The HiRens PE was a godsend idea.

I meant if it is Insyde Bios, or American Megatrends, Pheonix or some other company. Because the Insyde ones obviously rely on writing some efi variables before the flash, and they use windows sys driver to do it, and that does not run on every PE (already tried with another one, not with hirens).
If you can just write me your exact laptop model, i will figure it out (on the sticker on the bottom there are 3 letters after Legion 5). Or if you have a copy of the bios exe installer.

Figured out what went wrong here.

Checked in the BIOS/UEFI and saw CSM got enabled with the update. Disabled it, and everything worked again. So all’s cool. All’s cool!

@Teo
Legion 5 Pro 16ACH6H
The filename of the executable that I installed most recently is GKCN60WW
Hope that helps.

It is an Insyde BIOS, like mine :clap:, so we all now know, Hirens PE + Insyde BIOS is a good combo. You don’t even need a second flash drive because hiren sees the ventoy drive from which it booted. Thank you very much.

Terrific!! Something to keep in mind – your update might not revert to default settings afterward like mine did, but I was glad I had screen captures / photos of all the BIOS settings I had changed so I could re-input them.

The boot menu was deleted so i temporarily lost manjaro (until i reinstalled grub), and i found secure boot automatically reenabled. So i would recommend exactly that (making photos) for everybody.

My father even brought his Lenovo Legion in a service shop once (i wasn’t there) after a bios update - the default setting between bios and uefi was toggled just like mentioned above and he could not boot anymore (the os was on mbr).

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.