How do I update my laptop's BIOS?

System:    Kernel: 5.10.70-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 Desktop: GNOME 40.5
           Distro: Manjaro Linux base: Arch Linux
Machine:   Type: Laptop System: LENOVO product: 82B5 v: Lenovo Legion 5 15ARH05 serial: <filter>
           Mobo: LENOVO model: LNVNB161216 v: SDK0J40688 WIN serial: <filter>
           UEFI-[Legacy]: LENOVO v: EUCN19WW date: 05/12/2020
Battery:   ID-1: BAT0 charge: 49.8 Wh (99.0%) condition: 50.3/60.0 Wh (83.8%) volts: 17.4
           min: 15.4 model: Celxpert L19C4PC0 status: Charging
CPU:       Info: 8-Core model: AMD Ryzen 7 4800H with Radeon Graphics bits: 64 type: MT MCP
           arch: Zen 2 rev: 1 cache: L2: 4 MiB
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 92660
           Speed: 2220 MHz min/max: 1400/2900 MHz boost: enabled Core speeds (MHz): 1: 2220
           2: 1871 3: 1397 4: 1396 5: 1397 6: 1396 7: 1397 8: 1397 9: 4279 10: 4270 11: 1905
           12: 1907 13: 2329 14: 1906 15: 1397 16: 1396
Graphics:  Device-1: NVIDIA TU117M [GeForce GTX 1650 Ti Mobile] vendor: Lenovo driver: nvidia
           v: 470.63.01 bus-ID: 01:00.0
           Device-2: AMD Renoir vendor: Lenovo driver: amdgpu v: kernel bus-ID: 05:00.0
           Device-3: Chicony Integrated Camera type: USB driver: uvcvideo bus-ID: 1-3:2
           Display: x11 server: X.org 1.20.13 driver: loaded: amdgpu,nvidia
           resolution: <missing: xdpyinfo>
           OpenGL: renderer: AMD RENOIR (DRM 3.40.0 5.10.70-1-MANJARO LLVM 12.0.1)
           v: 4.6 Mesa 21.2.3 direct render: Yes
Audio:     Device-1: AMD Raven/Raven2/FireFlight/Renoir Audio Processor vendor: Lenovo driver: N/A
           bus-ID: 05:00.5
           Device-2: AMD Family 17h HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel
           bus-ID: 05:00.6
           Sound Server-1: ALSA v: k5.10.70-1-MANJARO running: yes
           Sound Server-2: JACK v: 1.9.19 running: no
           Sound Server-3: PulseAudio v: 15.0 running: yes
           Sound Server-4: PipeWire v: 0.3.38 running: no
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Lenovo
           driver: r8169 v: kernel port: 2000 bus-ID: 03:00.0
           IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter>
           Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel bus-ID: 04:00.0
           IF: wlp4s0 state: down mac: <filter>
Bluetooth: Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 3-3:3
           Report: rfkill ID: hci0 rfk-id: 3 state: up address: see --recommends
Drives:    Local Storage: total: 476.94 GiB used: 252.53 GiB (52.9%)
           ID-1: /dev/nvme0n1 vendor: Samsung model: MZVLB512HBJQ-000L2 size: 476.94 GiB
           temp: 42.9 C
Partition: ID-1: / size: 459.79 GiB used: 252.53 GiB (54.9%) fs: ext4 dev: /dev/nvme0n1p1
Swap:      ID-1: swap-1 type: partition size: 8.8 GiB used: 0 KiB (0.0%) dev: /dev/nvme0n1p2
Sensors:   System Temperatures: cpu: 57.6 C mobo: N/A gpu: amdgpu temp: 46.0 C
           Fan Speeds (RPM): N/A
Info:      Processes: 379 Uptime: 3h 27m Memory: 15.07 GiB used: 5.27 GiB (35.0%) Init: systemd
           Compilers: gcc: 11.1.0 Packages: 1486 Client: gnome-shell v: 40.5 inxi: 3.3.08

The BIOS update from Lenovo’s page has a .exe file. How do I update it?

Create a Live Media of USB Booting | Hiren's BootCD PE either with balena-etcher, imagewriter, or ventoy - boot into it and run the bios update.

3 Likes

also could try fwupd (fwupd - ArchWiki)

1 Like
$ pacman -Si fwupd | grep -E "Desc|URL"
Description     : Simple daemon to allow session software to update firmware
URL             : https://github.com/fwupd/fwupd

Never new it, learned a bit GitHub - fwupd/fwupd: A system daemon to allow session software to update firmware and just update the USB receiver:

details
$ fwupdmgr get-devices
Default string
│
├─Samsung SSD 970 EVO Plus 500GB:
│     Device ID:          03281da317dccd2b18de2bd1cc70a782df40ed7e
│     Summary:            NVM Express solid state drive
│     Current version:    2B2QEXM7
│     Vendor:             Samsung Electronics Co Ltd (NVME:0x144D)
│     GUIDs:              0b4d773a-7ac3-58c1-a541-e22ef1cdfe02
│                         c9d531ea-ee7d-5562-8def-c64d0d144813
│                         6e54c992-d302-59ab-b454-2d26ddd63e6d
│                         47335265-a509-51f7-841e-1c94911af66b
│                         173afe85-89dc-54b2-9a58-a5990e4e4b6a
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│   
└─Unifying Receiver:
      Device ID:          4588a84d1cfa1ddb273e9df28f6a44927e9b4e99
      Summary:            Miniaturised USB wireless receiver
      Current version:    RQR12.07_B0029
      Bootloader Version: BOT01.02_B0015
      Vendor:             HIDRAW:0x046D|USB:0x046D
      Install Duration:   30 seconds
      GUIDs:              9d131a0c-a606-580f-8eda-80587250b8d6
                          fcf55bf5-767b-51ce-9c17-f6f538c4ee9f
                          279ed287-3607-549e-bacc-f873bb9838c4
      Device Flags:       • Updatable
$
$ fwupdmgr refresh
Updating lvfs
Downloading…             [***************************************] Less than one minute remaining…
Successfully downloaded new metadata: 1 local device supported
$
$ fwupdmgr refresh
Firmware metadata last refresh: 5 seconds ago. Use --force to refresh again.
$
$ fwupdmgr get-updates
Devices with no available firmware updates: 
 • Samsung SSD 970 EVO Plus 500GB
Default string
│
└─Unifying Receiver:
  │   Device ID:          4588a84d1cfa1ddb273e9df28f6a44927e9b4e99
  │   Summary:            Miniaturised USB wireless receiver
  │   Current version:    RQR12.07_B0029
  │   Bootloader Version: BOT01.02_B0015
  │   Vendor:             HIDRAW:0x046D|USB:0x046D
  │   Install Duration:   30 seconds
  │   GUIDs:              9d131a0c-a606-580f-8eda-80587250b8d6
  │                       fcf55bf5-767b-51ce-9c17-f6f538c4ee9f
  │                       279ed287-3607-549e-bacc-f873bb9838c4
  │   Device Flags:       • Updatable
  │                       • Supported on remote server
  │ 
  ├─Unifying Receiver:
  │     New version:      RQR12.10_B0032
  │     Remote ID:        lvfs
  │     Summary:          Firmware for the Logitech Unifying Receiver (RQR12.xx)
  │     Licence:          Proprietary
  │     Size:             56.8 kB
  │     Created:          2019-07-18
  │     Urgency:          High
  │     Vendor:           Logitech
  │     Duration:         30 seconds
  │     Flags:            is-upgrade
  │     Description:      
  │     This release addresses an encrypted keystroke injection vulnerability sent by pointing devices. The vulnerability is complex to replicate and would require a hacker to be physically close to a target.
  │     
  │     A few of Logitech's devices used to send select buttons in an unencrypted way, and in an effort to protect against this vulnerability, Logitech removed the feature. Affected hardware is:
  │     
  │     • Wireless Mouse M335
  │     • Zone Touch Mouse T400
  │     • Wireless Mouse M545
  │     • Wireless Mouse M560
  │     • Touch Mouse M600
  │     • Touch Mouse T620
  │     • Wireless Rechargeable Touchpad T650
  │     
  │     Although Logitech does not recommend it, these features may be re-activated by keeping/downgrading the receiver to an older firmware.
  │   
  └─Unifying Receiver:
        New version:      RQR12.08_B0030
        Remote ID:        lvfs
        Summary:          Firmware for the Logitech Unifying Receiver (RQR12.xx)
        Licence:          Proprietary
        Size:             72.7 kB
        Created:          2017-06-26
        Urgency:          High
        Vendor:           Logitech
        Duration:         30 seconds
        Flags:            is-upgrade
        Description:      
        This release addresses an encrypted keystroke injection issue known as Bastille security issue #13. The vulnerability is complex to replicate and would require a hacker to be physically close to a target.
        
        A few of Logitech's devices used to send select buttons in an unencrypted way, and in an effort to protect against this vulnerability, Logitech removed the feature. Affected hardware is:
        
        • Wireless Mouse M335
        • Zone Touch Mouse T400
        • Wireless Mouse M545
        • Wireless Mouse M560
        • Touch Mouse M600
        • Touch Mouse T620
        • Wireless Rechargeable Touchpad T650
        
        Although Logitech does not recommend it, these features may be re-activated by keeping/downgrading the receiver to an older firmware.
$
$ fwupdmgr update
Devices with no available firmware updates: 
 • Samsung SSD 970 EVO Plus 500GB
╔══════════════════════════════════════════════════════════════════════════════╗
║ Upgrade Unifying Receiver from RQR12.07_B0029 to RQR12.10_B0032?             ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ This release addresses an encrypted keystroke injection vulnerability sent   ║
║ by pointing devices. The vulnerability is complex to replicate and would     ║
║ require a hacker to be physically close to a target.                         ║
║ A few of Logitech's devices used to send select buttons in an unencrypted    ║
║ way, and in an effort to protect against this vulnerability, Logitech        ║
║ removed the feature. Affected hardware is:                                   ║
║ • Wireless Mouse M335                                                        ║
║ • Zone Touch Mouse T400                                                      ║
║ • Wireless Mouse M545                                                        ║
║ • Wireless Mouse M560                                                        ║
║ • Touch Mouse M600                                                           ║
║ • Touch Mouse T620                                                           ║
║ • Wireless Rechargeable Touchpad T650                                        ║
║ Although Logitech does not recommend it, these features may be re-activated  ║
║ by keeping/downgrading the receiver to an older firmware.                    ║
║ Unifying Receiver and all connected devices may not be usable while          ║
║ updating.                                                                    ║
╚══════════════════════════════════════════════════════════════════════════════╝

Perform operation? [Y|n]: 
Downloading…             [***************************************]
Decompressing…           [***************************************]
Authenticating…          [***************************************]
Authenticating…          [***************************************]
Waiting…                 [***************************************]
Successfully installed firmware
$
$ fwupdmgr update
Devices with no available firmware updates: 
 • Samsung SSD 970 EVO Plus 500GB
Devices with the latest available firmware version:
 • Unifying Receiver
$
$ fwupdmgr get-updates
Devices with no available firmware updates: 
 • Samsung SSD 970 EVO Plus 500GB
Devices with the latest available firmware version:
 • Unifying Receiver
No updates available for remaining devices
$

The device works after the update. Anyway I prefer to re-plug USB receiver and to turn off and than on the wireless devices which connects to it. Paired devices were not lost, all works.

It looks like the tool uses alternative/own database of firmware.


Hiren’s BootCD PE (Preinstallation Environment) is a restored edition of Hiren’s BootCD based on Windows 10 PE x64. Since there are no official updates after November 2012, PE version is being developed by Hiren’s BootCD fans.

OMG, now I know how to try to install a Mikrotik router’s RouterOS firmware w/o installing windows or a linux32 environment (cause for linux it provides only a x86-32 installers (see netinstall on MikroTik Routers and Wireless - Software)):

details
$ ls -lAh
total 36M
-rw-r--r-- 1 m m 127K Sep 16 14:00 LICENSE.txt
-rwxr-xr-x 1 m m  35M Oct  6 15:03 netinstall
$
$ file netinstall
netinstall: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, stripped
$

Thank you, community!

PS
I am not the OP.

2 Likes

Did it worked? because the only solution that worked for me was, download a windows iso, create a stick installer with woeusb-ng, in another flash drive copy the bios update file… there should be this file only, plug both flash drives, reboot, go to the windows installer, exit to command promt, an there execute the bios .exe file.

1 Like