📜 ⬆️ ⬇️

Linux UEFI / BIOS Update

It is no secret that motherboard and laptop manufacturers do not always allow Linux users to update UEFI/BIOS firmware as unobtrusively as Windows users do. Nevertheless, for the HP EliteBook 840G1, which I use, it is a little harder to do this.



For this case you will need the following artifacts:



FAT32 ESP


Laptops line HP EliteBook contain 3 download modes. You can find out which mode is selected in the UEFI/BIOSSystem ConfigurationBoot Mode settings. This section should be read, if only the last, uncompromising mode of UEFI selected, in other cases it is possible to slip.



If you carefully read the topic about the Linux kernel EFI Boot Stub , then you probably know what to do and how to create a disk partition. You can use gdisk , parted or KDE Disk Partition to create an ESP partition. This is what the ready section looks like.



It is recommended that the ESP partition be mounted in /boot/efi , and not just in /boot , in order to be able to store Linux kernel images and OS loader files on regular Linux FS, instead of keeping everything in FAT32 EFI System Partition.


 (4:549)$ grep efi /etc/fstab /dev/sda4 /boot/efi vfat rw,users,noauto 0 2 

We already know that UEFI/BIOS will search for \EFI\BOOT\bootx64.efi , for which the absolute path to the file must be /boot/efi/EFI/Boot/Bootx64.efi , otherwise everything is gone and UEFI/BIOS will not find the bootloader OS! Updating the system firmware does not hurt, but why then need the firmware, if you can not boot the operating system? It is very important that by default GRUB-2 does not copy the necessary file and therefore bootx64.efi must be copied manually .


 (4:569) sudo cp /boot/grub/x86_64-efi/core.efi /boot/efi/EFI/Boot/Bootx64.efi 

Training


We take the latest firmware from the HP website , select Linux in the OS drop-down list, then the BIOS, download ... and find the Windows executable file - sp64081.exe . No, our eyes did not disappoint.


 (4:520)$ file sp64081.exe sp64081.exe: PE32 executable (GUI) Intel 80386, for MS Windows 

Experienced users are ready for such surprises, for which they keep Windows VM or use a non-WINE emulator or both, since the cases are different. To unpack the file, the WINE capabilities are quite sufficient. Run:



The program closes with a tactless error, reminding once again that we were not given what we expected.



However, this should not worry anyone, since the files are unpacked correctly, and nothing was needed above this.


list of files
 (4:529)$ ls -Rl sp64081/ sp64081/:  18188 drwxr-xr-x 1 root root 356  30 10:52 BIOSUpdate -rw-r--r-- 1 root root 2950466  4 2013 BIOSUpdateEFI.7z -rwxr-xr-x 1 root root 4838072  7 2013 HPBIOSUPDREC.exe -rw-r--r-- 1 root root 883  30 10:52 HPBIOSUPDREC.log -rwxr-xr-x 1 root root 2353368  18 2013 HpqPswd.exe -rwxr-xr-x 1 root root 77824  22 2012 Installer.exe -rw-r--r-- 1 root root 8388608  9 2013 L71_0104.bin -rw-r--r-- 1 root root 1543  24 2013 WSSP64081.rtf sp64081/BIOSUpdate:  2368 -rw-r--r-- 1 root root 259072  5 2012 CryptRSA32.efi -rw-r--r-- 1 root root 443904  5 2012 CryptRSA.efi -rw-r--r-- 1 root root 820784  8 2013 HpBiosUpdate32.efi -rw-r--r-- 1 root root 256  8 2013 HpBiosUpdate32.s09 -rw-r--r-- 1 root root 256  8 2013 HpBiosUpdate32.s12 -rw-r--r-- 1 root root 256  8 2013 HpBiosUpdate32.sig -rw-r--r-- 1 root root 16384  9 2013 HpBiosUpdate.dll -rw-r--r-- 1 root root 850512  8 2013 HpBiosUpdate.efi -rw-r--r-- 1 root root 256  8 2013 HpBiosUpdate.s09 -rw-r--r-- 1 root root 256  8 2013 HpBiosUpdate.s12 -rw-r--r-- 1 root root 256  8 2013 HpBiosUpdate.sig 

From this list we need only 3 files: L71_0137.bin , HpBiosUpdate.efi and HpBiosUpdate.s12 and now note: you need to copy the files exactly to the specified places.


 (4:534)$ ls -lR /boot/efi/EFI/HP/ /boot/efi/EFI/HP/:  8 drwxr-xr-x 3 root root 4096  22 2015 BIOS drwxr-xr-x 2 root root 4096  21 22:23 BIOSUpdate /boot/efi/EFI/HP/BIOS:  4 drwxr-xr-x 2 root root 4096  21 22:05 New /boot/efi/EFI/HP/BIOS/New:  8192 -rwxr-xr-x 1 root root 8388608  23 13:57 L71_0137.bin /boot/efi/EFI/HP/BIOSUpdate:  840 -rwxr-xr-x 1 root root 850512  8 2013 HpBiosUpdate.efi -rwxr-xr-x 1 root root 3916  21 22:23 HpBiosUpdate.log -rwxr-xr-x 1 root root 256  8 2013 HpBiosUpdate.s12 1291/7720MB 

To get to the UEFI/BIOS setup menu, after switching on, press the Esc or F10 Esc and then FileUpdate System BIOS .



After choosing Accept , the update process starts without other curtsies. Apparently knowing the price of their batteries, manufacturers update the firmware only when the computer’s power is turned on. 2-3 minutes, and the process is successfully completed.


UPDATE : According to the results of sound ideas, some additions are needed in the comments.



')

Source: https://habr.com/ru/post/306760/


All Articles