Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux? |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
|
08-10-2023, 07:28 PM
|
#1
|
LQ Newbie
Registered: Sep 2022
Posts: 15
Rep:
|
How to create a bootable USB pendrive for EFI BIOS update?
I have already tried to contact my motherboard reseller and the manufacturer BCM but unfortunately did not receive a response to my support request.
I have the following BCM MX3350N motherboard which I need to update with the latest EFI BIOS:
https://www.bcmcom.com/bcm_product_MX3350N.html
The manual of this motherboard, which can be found on this link, does not specify how to update the BIOS.
I can find the latest available driver in the download section:
https://www.bcmcom.com/admin/Bios/71524310.zip
This zip file contains the followung files:
- 71524310.bin
- EFUx64.EFI
- FLASH.NSH
There is a very broad section on the BCM website that describes in general terms how the BIOS update process works without providing any model-specific details:
https://www.bcmcom.com/bcm_support_drivers.html
"With the BIOS update utility, you can update the BIOS from a floppy disk, bootable CD-ROM, bootable USB flash drive or other bootable USB media. (Information on how to create a bootable USB device or CD is listed in below.)
Using the BIOS update is a four-part process:
Part 1: Create the bootable media (floppy, CD or USB device)
Part 2: De-compress the downloaded file to the bootable media
Part 3: Boot up the computer from bootable media
Part 4: Execute bat file and Reboot the computer"
The section on how to create a bootable USB device only states the following and the suggested tutorial links are dead:
"Making a USB flash device into a bootable drive is not as simple as creating bootable floppy disks. Please refer to the documentation provided by the manufacturer of your USB device for information on how to create a bootable USB device. Additionally, you may refer to any of the following websites for tips on creating bootable USB devices. BCM is unable to assist with the creation of bootable devices."
I know how to write an ISO image of an OS to a USB stick in Linux but I am a bit lost how to write the mentioned BIOS files to USB device and make it bootable.
Could you please guide me how to format the USB stick and make it bootable so that I can update EFI Bios of my mainboard?
Your help is much appreciated!
|
|
|
08-10-2023, 08:09 PM
|
#2
|
Moderator
Registered: Mar 2008
Posts: 22,270
|
First of all I have to mention this. Don't update bios unless the errata says exactly what your problem is. If you have no problem then don't update bios.
I stole this from supermicro but there is a way to mark a usb bootable.
This assumes when you go to bios there isn't a menu item for update bios.
1. Save the BIOS update package to your computer.
2. Extract the files from the UEFI folder of the BIOS package to a USB stick.
(Note: The USB stick doesn't have to be bootable, but has to be formatted with the FAT/FAT32 file system.)
3. Plug the USB stick into a USB port, boot to the Build-In UEFI Shell
4. Type FLASH.nsh BIOSname#.### to start the BIOS update:
Shell> fs0:
fs0:\> cd UEFI
fs0:\UEFI> flash.nsh H11DSU7.728
4. Do not interrupt the process until the BIOS update is complete.
5. Perform an A/C power cycle after the message indicating the BIOS update has completed.
6. Go to the BIOS configuration, and restore the BIOS settings.
|
|
1 members found this post helpful.
|
08-11-2023, 05:27 PM
|
#3
|
LQ Newbie
Registered: Sep 2022
Posts: 15
Original Poster
Rep:
|
My board does not have a Bios update option in the menu but a "Launch EFI Shell from filesystem device entry.
So you suggest that the USB stick does not have to be bootable and I can simply unmount it and format it to FAT32? For instance:
mkfs.vfat /dev/sdb1
Do I have to set a label for it using the -n flag?
Extracting my zip file to that USB stick, do the files need to sit in the root directory
or in their extracted folder?
- 71524310.bin
- EFUx64.EFI
- FLASH.NSH
Booting into the Efi shell and accessing that USB stick, the command to start the flashing process would then probably be the following:
FLASH.NSH 71524310.bin
Thanks for your guidance!
|
|
|
08-11-2023, 06:03 PM
|
#4
|
LQ Sage
Registered: Nov 2004
Location: Saint Amant, Acadiana
Distribution: Gentoo ~amd64
Posts: 7,675
Rep: 
|
What is this FLASH.NSH? You can use 'file' utility to determine. If this is a DOS executable then you need a FreeDOS bootable USB stick to execute it. Many BIOS-es have upgrade functionality built in, doesn't yours? In this case you can load the binary from USB stick or even download it over the internet on fly (my mobo allows it).
|
|
|
08-12-2023, 06:45 PM
|
#5
|
LQ Newbie
Registered: Sep 2022
Posts: 15
Original Poster
Rep:
|
The motherboard does not have a Bios update entry in the menu.
The file command gives the following output for the 3 files:
Code:
FLASH.NSH:
ASCII text, with CRLF line terminators
71524310.bin:
Intel serial flash for PCH ROM
EFUx64.EFI:
PE32 + executable (DLL) (EFI application) x86-64, for MS Windows
Thanks for your feedback!
Last edited by Li_99; 08-12-2023 at 06:48 PM.
|
|
|
08-12-2023, 06:55 PM
|
#6
|
LQ Sage
Registered: Nov 2004
Location: Saint Amant, Acadiana
Distribution: Gentoo ~amd64
Posts: 7,675
Rep: 
|
You could bite the bullet and use flashrom utility to flash the ROM. Make sure you save a backup copy with flashrom. I have used it in past with success, only the MAC address got lost with procedure. However, if your BIOS chip is not removable then this is quite risky, may brick the mobo in worst case. Wit removable chip you can take it out and flash it with a programmer or you even can get a flashed chip from eBay.
The other choice I can think of is Hiren CD, there used to be such Windows live CD. Maybe there still is.
Edit: I have no experience with .EFI executables, it is probably possible to execute it from EFI shell ... but why it identifies as for Windows?
Last edited by Emerson; 08-12-2023 at 06:57 PM.
|
|
|
08-12-2023, 08:05 PM
|
#7
|
LQ Newbie
Registered: Sep 2022
Posts: 15
Original Poster
Rep:
|
While BCM does not give any instructions how to flash the BIOS, they specifically state the following:
"The downloaded compressed file includes flash utility to update the BIOS. Please do not use the update utility not provided by BCM."
https://www.bcmcom.com/bcm_support_drivers.html
From that I assume that FLASH.NSH is the flash utility and no other software should be used.
So the question remains how to format the USB pendrive in the correct way and write the files to it.
Thanks!
Last edited by Li_99; 08-12-2023 at 08:08 PM.
|
|
|
08-12-2023, 08:53 PM
|
#8
|
LQ Sage
Registered: Nov 2004
Location: Saint Amant, Acadiana
Distribution: Gentoo ~amd64
Posts: 7,675
Rep: 
|
Once I made a bootable FreeDOS USB image for similar purpose. Link, this is in my home router. Put it on at least 2 GB USB stick with dd, mount, add your files and boot.
|
|
|
08-13-2023, 07:29 AM
|
#9
|
LQ Newbie
Registered: Sep 2022
Posts: 15
Original Poster
Rep:
|
Considering that this is a standard AMI BIOS with SPI ROM there must be instructions somewhere regarding the correct creation process for the USB pendrive and the subsequent update steps.
I am completely baffled that BCM, who manufactures motherboards for ATM cash machines and medical appliances, is not providing clear instructions on their website nor responds to support requests...
|
|
|
08-13-2023, 07:41 AM
|
#10
|
LQ Sage
Registered: Nov 2004
Location: Saint Amant, Acadiana
Distribution: Gentoo ~amd64
Posts: 7,675
Rep: 
|
Well, can't help you further. You are restricted to what you think is the official method. My approach is different, has always been, I get things done, unconventionally if that works.
|
|
|
08-13-2023, 09:17 AM
|
#11
|
Registered User
Registered: Mar 2023
Posts: 60
Rep:
|
Quote:
Originally Posted by Li_99
So the question remains how to format the USB pendrive in the correct way and write the files to it.
Thanks!
|
You can create a bootable USB flash drive using Rufus. Write the finished usb.img file to the USB flash drive and create a folder on it. Copy the flash tool and BIOS image into that folder.
https://github.com/pbatard/rufus
|
|
|
08-15-2023, 01:21 PM
|
#12
|
Member
Registered: Jul 2003
Location: NY
Distribution: Slackware, Termux
Posts: 961
|
Why are you guys confusing this poor person? FreeDOS will not run a Windows x86_64 image. Rufus is Windows-only. Even building it requires MSVC or Ming. OP is running, I assume, Linux. This is the easiest type of firmware update there is. Like jefro said, you only need run the NSH script ( https://superuser.com/questions/1478...file-extension ) from the EFI shell itself (without options). It has its own options (EFUx64.EFI 71524300.bin /P /N). EFI executables are in the Windows PE format because guess which operating system was favored during designing the specs?
Unzip the file. Put the files anywhere the EFI shell can see them. The ESP partition should be fine as the files are under 17mb total. It can be right next to the shell itself, /boot/efi/EFI/Boot/, or use a fat32 USB stick (does not need be bootable as you are booting into the EFI shell). Spam one of the F* keys on startup to get the menu where you can select what to boot. Mine is F12. Select the EFI shell. You'll be in a command line similar to DOS/Linux. There might be a 'help' command. Run the .NSH shell. Let it work.
Reading up on the EFI shell beforehand might be a good idea ( https://wiki.archlinux.org/title/Uni...ware_Interface ), section #5 in particular. In the small chance you don't have one or deleted it you can download the Tianocore one and use it as long as there's an entry for it in the EFI startup list (efibootmgr to change).
Code:
efibootmgr
Boot0006* UEFI OS HD(1,GPT,1d39afc6-46db-4550-b122-74c8381926f3,0x800,0x82000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
|
|
|
08-15-2023, 03:57 PM
|
#13
|
Registered User
Registered: Mar 2023
Posts: 60
Rep:
|
Quote:
Originally Posted by jayjwa
Why are you guys confusing this poor person? FreeDOS will not run a Windows x86_64 image. Rufus is Windows-only.
|
What do you mean by saying that Rufus is only for Windows? I don't understand you. Rufus is also used to create a bootable USB flash drive. Whether it's Windows or Linux, it doesn't matter which operating system I use to create the USB flash drive.
|
|
|
08-15-2023, 06:32 PM
|
#14
|
Moderator
Registered: Mar 2008
Posts: 22,270
|
Why didn't you follow what I posted? Change entries to what you have.
|
|
|
08-17-2023, 06:39 PM
|
#15
|
LQ Newbie
Registered: Sep 2022
Posts: 15
Original Poster
Rep:
|
Thank you for everyone's input.
It sounds like the most logical approach is to simply format the USB pendrive as FAT32 thst does NOT have to be bootable and copy the files to it:
- 71524310.bin
- EFUx64.EFI
- FLASH.NSH
I would then have to boot into the system's existing Efi shell.
My doubts now remain what the correct command would be to start the BIOS update.
Option 1:
Code:
FLASH.NSH 71524310.bin
Or
Option 2:
Code:
EFUx64.EFI 71524310.bin /P /N
Thanks for your feedback!
|
|
|
All times are GMT -5. The time now is 06:57 PM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|