Aggiornamento del BIOS
Questo articolo descrive come applicare un aggiornamento del BIOS su un sistema Gentoo.
I fabbricanti di hardware spesso forniscono degli aggiornamenti per il BIOS e per gli altri tipi di firmware. Installare (spesso indicato come "flash") gli aggiornamenti a volte non è facile sui sistemi GNU/Linux. Questo occasionalmente richiede qualche lavoro extra.
Se l'hardware è operativo spesso non c'è bisogno di aggiornare il BIOS. Se qualcosa va storto possono essere causati danni permanenti al BIOS o al firmware che possono far terminare la garanzia hardware. Procedere con cautela!
The most prominent and widely used system has historically been the x86-based IBM PC compatible computer and its BIOS, which is why system firmware is sometimes called a BIOS even when it is not an IBM PC compatible BIOS, such as the AlphaBIOS of the DEC Alpha architecture or the OpenBIOS, an implementation of Open Firmware (IEEE-1275). EFI/UEFI, the successor of the PC BIOS, is also often called "(U)EFI-BIOS". Hence, the term "BIOS update" often refers to a system firmware update that is not really a PC BIOS.
This article focuses on the PC BIOS and early versions of its successor EFI/UEFI. On x86 (U)EFI System Class 1 and Class 2 have a BIOS compatible mode called "Legacy BIOS" or "CSM" (short for Compatiblity Support Module), which makes the UEFI behave like a PC BIOS. UEFI System Class 3, the standard since around 2020, no longer has a CSM.
On other firmwares the process of updating the system firmware may have similarities, but can also be completely different.Ottenere informazioni sul firmware
Per prima cosa trovare il produttore e il modello della scheda madre. Verificare il manuale utente relativo al sistema. Molte delle cose necessarie possono essere trovate nel manuale utente.
Il pacchetto sys-apps/dmidecode può essere utilizzato per richiamare le informazioni aggiuntive sul sistema hardware. dmidecode controlla le tabelle DMI della scheda madre, al fine di fornire informazioni dettagliate sui componenti del firmware e dell'hardware.
root #
dmidecode -t bios -t baseboard
Come ultima cosa, se è possibile l'accesso fisico alla scheda madre, l'informazione richiesta può essere trovata direttamente nella scheda madre stessa.
L'accesso alla scheda madre di un computer può causare la perdita della garanzia!
Dopo aver cercato l'aggiornamento per il firmware, procedere allo scaricamento del pacchetto necessario per aggiornare l'hardware. È normale per un produttore fornire il pacchetto dell'aggiornamento del firmware nel formato .zip, .exe o .iso.
user $
unzip 7235v1A.zip
Archive: 7235v1A.zip creating: 7235v1A/ inflating: 7235v1A/7235v1x.txt inflating: 7235v1A/AWFL865.EXE inflating: 7235v1A/How to flash the BIOS.DOC inflating: 7235v1A/W7235IMS.1A0
Opzioni BIOS
Molti BIOS hanno un'opzione per leggere la nuova immagine binaria da una supporto di memoria o da un disco interno. Entrare nelle impostazioni del BIOS e vedere le opzioni. Se il BIOS non supporta ciò, continuare con la prossima sezione.
Avvio da CD
Spesso i produttori forniscono una immagine CD-ROM da scaricare come supporto di avvio. Il file dovrebbe avere estensione .iso e dovrebbe essere opportunamente scritto su un CD-R(W) vuoto. Uno degli strumenti per fare questo è cdrecord:
root #
cdrecord BOOT-CD.iso
cdrecord è provvisto di due pacchetti. Sceglierne uno fra i seguenti: app-cdr/cdrtools e app-cdr/cdrkit.
Scegliere dal menu di avvio del BIOS l'avvio da CD e seguire le istruzioni del sito web del produttore o del manuale dell'utente.
Ambiente FreeDOS
Vi è un'utilità di avvio in modalità FreeDOS su SystemRescueCD che funziona bene per fare ciò e farà risparmiare molto tempo, permettendo ai lettori di saltare questa sezione. Vere la nota alla fine della sezione Usare SystemRescueCD per l'avvio in modalità FreeDOS per dettagli.
FreeDOS può essere utilizzato per eseguire l'utilità di aggiornamento del BIOS basato su DOS. Dev'essere creata un'immagine FreeDOS "standard" cheinclude i necessari strumenti BIOS. Una volta che tale immagine è stata creata, è sufficiente avviarla tramite uno dei metodi mostrati sotto.
Scaricare FreeDOS e i suoi strumenti:
- FreeDOS - Scaricare il file fdboot.img.
- Settore di avvio FreeDOS - Scaricare il file sys-freedos-linux.zip.
- Il programma DOS-Flash e il nuovo BIOS dal sito internet del produttore.
Creare una immagine FreeDOS personalizzata
Per prima cosa, scaricare il software richiesto ed abilitare il dispositivo di loopback nel kernel:
Device Drivers --->
[*] Block devices --->
<M> Loopback device support
Se il modulo non è stato caricato, utilizzare modprobe per caricarlo:
root #
modprobe loop
Installare il software necessario:
root #
emerge --ask dev-lang/nasm app-arch/unzip sys-fs/dosfstools
Creare un file immagine di ~20MB utilizzando il comando dd. Il nome deve essere freedos.img quando si sostituisce quello sul SystemRescueCD:
root #
dd if=/dev/null of=freedos.img bs=1024 seek=20480
Scrivere un file system nell'immagine:
root #
mkfs.fat freedos.img
Scrivere un boot sector (settore di avvio) nel file di immagine:
root #
unzip sys-freedos-linux.zip && ./sys-freedos.pl --disk=freedos.img
Ora copiare i file FreeDOS nella nuova immagine.
Creare un punto di montaggio:
root #
mkdir -p /mnt/freedos /mnt/freedos_new
Montare l'immagine originale:
root #
mount -o loop fdboot.img /mnt/freedos
Montare la nuova immagine:
root #
mount -o loop freedos.img /mnt/freedos_new
Copiare i file di sistema FreeDOS nella nuova immagine:
root #
cp -ar /mnt/freedos/* /mnt/freedos_new/
Ora copiare il programma flash e il nuovo BIOS nel file immagine:
root #
cp -ar FLASH-PROGRAM BIOS-UPDATE /mnt/freedos_new
Smontare entrambe le immagini:
root #
umount /mnt/freedos_new /mnt/freedos
DOS può solo visualizzare nomi fino ad una lunghezza di 8 caratteri. È una buona idea rinominare i file che hanno un nome più lungo di tale limite.
Utilizzare SystemRescueCD per avviare FreeDOS
SystemRescueCD viene fornito con una versione di FreeDOS. Questa versione può sostituire l'immagine originale e creare una scheda di memoria avviabile che contiene i programmi necessari per aggiornare il firmware.
Scaricare SystemRescueCD e preparare LiveUSB
- SystemRescueCD - Scaricare l'immagine ISO normale.
Creare una scheda di memoria avviabile
Utilizzare il metodo di default per creare il supporto di avvio SystemRescueCD, lo script usb_inst.sh provvederà a guidare nell'installazione.
Questo cancellerà ogni dato nel supporto di memoria! Assicurarsi che ogni dato sia stato salvato prima di utilizzare il supporto di memoria per questo compito!
Creare la cartella in /mnt:
root #
mkdir /mnt/SysRescueCD
Montare l'immagine CD:
root #
mount -o loop systemrescuecd-x86-VERSION.iso /mnt/SysRescueCD
Avviare lo script di installazione:
root #
/mnt/SysRescueCD/usb_inst.sh
Smontare l'immagine CD:
root #
umount /mnt/SysRescueCD
Se si vuole semplicemente aggiornare il proprio BIOS, non è necessario armeggiare con l'immagine FreeDOS su SystemRescueCD. Dopo aver creato la scheda avviabile SystemRescueCD come descritto sopra, montare la chiavetta USB su una directory. Copiare l'aggiornamento del BIOS lì. Finito! Avviare la chiavetta USB e scegliere DOS tools --> FREEDOS dal menù di avvio di SystemRescueCD. Il nome del file di aggiornamento del BIOS troncato da DOS si troverà nella directory A:. Se non lo si vede, provare in C:. Questo non dovrebbe danneggiare l'istanza di SystemRescueCD sulla chiavetta USB, ma se succede, basta ricrearla una volta finito.
Sostituire l'immagine FreeDOS
È tempo di sostituire l'immagine originale FreeDOS nel dispositivo di memoria SystemRescueCD.
Montare il dispositivo di memoria SystemRescueCD (/dev/sdX1 che deve essere sostituito dal nome del dispositivo di memoria):
root #
mount /dev/sdX1 /mnt/SysRescueCD
Sostituire il file freedos.img:
root #
cp freedos.img /mnt/SysRescueCD/bootdisk/
Smontare la scheda di memoria SystemRescueCD:
root #
umount /mnt/SysRescueCD
Avviare l'immagine FreeDOS direttamente da GRUB
Per avviare FreeDOS senza nessun media esterno utilizzare lo strumento memdisk dal syslinux per consentire a grub (o un altro bootloader) di avviare l'immagine FreeDOS direttamente.
root #
emerge --ask sys-boot/syslinux
Montare la partizione /boot (se necessario):
root #
mount /boot
Copiare il binario memdisk e la nuova immagine FreeDOS su /boot:
root #
cp /usr/share/syslinux/memdisk /boot
root #
cp freedos.img /boot
Editare il file /boot/grub/grub.conf e aggiungere una voce per FreeDOS:
title FreeDOS (BIOS update)
kernel /boot/memdisk floppy
initrd /boot/freedos.img
Aggiornamento BIOS
Riavviare e scegliere l'avvio da scheda USB "oppure" dalla nuova voce di grub. Quando si utilizza SystemRescueCD, nella riga comando di GRUB digitare:
freedos
Questo dovrebbe avviare la nuova immagine FreeDOS. Il prompt del DOS dovrebbe comparire:
C:\>
_
Ora iniziare l'aggiornamento del BIOS seguendo le istruzioni del costruttore. Qualche comando utile in DOS:
- cd <dir>
- Passare alla directory..
- dir
- Elencare i files nella directory corrente.
- type [drive][path]filename
- Visualizzare il contenuto di un file.
Flashrom
Qualche scheda madre può supportare il flashing (attraverso il pacchetto sys-apps/flashrom) direttamente dal sistema. In questo caso il solo componente necessario è l'immagine del BIOS. Prima di continuare questo percorso, dare un'occhiata alla lista dell'hardware supportato.
Se l'hardware è supportato, verificare la nuova immagine del BIOS:
root #
flashrom -v W7235IMS.1A0
Se tutto quanto è verificato, allora flasharlo:
root #
flashrom -vw W7235IMS.1A0
UEFI Firmware Capsule
Since EFI/UEFI is the successor of the PC BIOS on x86, the same tools as for BIOS updates were often used on early (U)EFI systems.
For modern UEFI, firmware updates can be upgraded using UEFI Capsules (introduced with UEFI 2.0[1]). This method is available on Linux and Windows.[2] Vendors have to provide firmware updates for the use with Linux, which they do via the Linux Vendor Firmware Service (LVFS).[3]
Refer to fwupd for further details.
Vedere anche
- BIOS — the standard firmware of IBM-PC-compatible computers until it was phased out in 2020.
- Bootable DOS USB stick — describes how to prepare a bootable USB stick which loads DOS using tools available in Gentoo.