Mise à jour du BIOS
Cet article décrit comment effectuer une mise à jour du BIOS depuis un système Gentoo.
Les équipementiers peuvent mettre à disposition les mises à jours des micrologiciels et du BIOS. Ces mises à jour sont parfois plus difficiles à effectuer (pour l'utilisateur) via les systèmes GNU/Linux qu'avec des systèmes d'exploitation propriétaires. Leur réalisation peut parfois nécessiter davantage d'opérations.
Souvent, le BIOS n'est mis à jour qu'en cas de dysfonctionnement matériel. On peut endommager irrémédiablement l'ordinateur, lors de la mise à jour, en provoquant des dysfonctionnements irréversibles, par rapport au BIOS, et aboutir à l'annulation de la garantie. Procédez avec précaution.
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.Obtenir des informations sur le micrologiciel
Vous devez d'abord identifier le fabricant et le modèle de la carte mère. Consultez les documents relatifs à la carte mère ou à l'ordinateur. En général, les informations nécessaires se trouveront dans ces documents.
Le paquet sys-apps/dmidecode contient des utilitaires permettant d'obtenir des informations sur le système (nom du constructeur, numéro de série, version du BIOS, etc.). Plus précisément, dmidecode reprend les informations qui sont contenues dans la table DMI [1].
root #
dmidecode -t bios -t baseboard
En dernier recours, on peut consulter les inscriptions sur la carte mère.
Accéder à la carte mère d'un ordinateur peut aboutir à l'annulation de la garantie !
Le site web du fabricant propose éventuellement des mises à jour. Normalement, lorsqu'on sélectionne une mise à jour, un fichier ou un répertoire au format .zip, .exe ou .iso est proposé en téléchargement.
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
Configuration du BIOS
La plupart des BIOS permettent l'amorçage de l'ordinateur à partir d'un support externe, comme une clé USB ou un DVD. On doit configurer l'ordre d'amorçage (cf. BIOS) pour pouvoir démarrer sur le support externe et effectuer la mise à jour. En cas de difficultés, on peut reprendre la lecture à la section suivante.
CD de démarrage
Les fabricants proposent souvent les mises à jour du BIOS, sous la forme d'une image disque (extensions .iso, .img, etc.). Cette image disque peut être gravée sur un CD-R(W) et être ensuite exécutée à chaque lecture du CD-ROM. On peut graver l'image avec cdrecord :
root #
cdrecord BOOT-CD.iso
cdrecord est fourni par deux paquets (un seul paquet suffit): app-cdr/cdrtools et app-cdr/cdrkit
Dès à présent, si ce n'est pas déjà fait, il faut configurer le BIOS afin de démarrer sur le CD-ROM. Ensuite, on s'en tient habituellement aux instructions indiquées sur le site web du fabricant.
Environnement FreeDOS
Il existe un démarrage FreeDOS pratique sur le support SystemRescue qui fonctionne bien pour cela et permettra d'économiser beaucoup d'efforts, permettant aux lecteurs de passer cette section. Voir la remarque à la fin de la section Utiliser SystemRescue pour démarrer FreeDOS pour plus de détails.
On peut exécuter des utilitaires compatibles avec DOS, dans un environnement FreeDOS, afin de mettre à jour le BIOS. Une image FreeDOS devra être constituée avec les programmes requis puis exécutée selon l'une des méthodes présentées ci-après.
Télécharger FreeDOS et les outils :
- FreeDOS (télécharger le fichier fdboot.img)
- FreeDOS bootsector (télécharger le fichier sys-freedos-linux.zip)
- Le programme DOS-Flash et la nouvelle version du BIOS sur le site web du fabricant.
Création d'une image FreeDOS
Les logiciels requis doivent être téléchargés et le dispositif de bouclage doit être activé dans le noyau :
Device Drivers --->
[*] Block devices --->
<M> Loopback device support
Il faut utiliser modprobe si le module n'a pas été chargé :
root #
modprobe loop
On installe les logiciels requis :
root #
emerge --ask dev-lang/nasm app-arch/unzip sys-fs/dosfstools
On crée un fichier image de ~20 Mo nommé freedos.img grâce à la commande dd :
root #
dd if=/dev/null of=freedos.img bs=1024 seek=20480
On crée un pseudo-système de fichiers (système de fichiers virtuel) :
root #
mkfs.fat freedos.img
On décompresse certains fichiers et on écrit les données sur le secteur d'amorçage de la pseudo-partition :
root #
unzip sys-freedos-linux.zip && ./sys-freedos.pl --disk=freedos.img
Ensuite, il faut copier les fichiers FreeDOS sur le pseudo-système de fichiers.
On crée les points de montage :
root #
mkdir -p /mnt/freedos /mnt/freedos_new
On monte le fichier fdboot.img sur /mnt/freedos :
root #
mount -o loop fdboot.img /mnt/freedos
On monte le pseudo-système de fichiers freedos.img sur /mnt/freedos_new :
root #
mount -o loop freedos.img /mnt/freedos_new
On copie les fichiers systèmes de FreeDOS sur le pseudo-système de fichiers /mnt/freedos_new/ :
root #
cp -ar /mnt/freedos/* /mnt/freedos_new/
On copie les programmes FLASH-PROGRAM et BIOS-UPDATE sur le pseudo-système de fichiers.
root #
cp -ar FLASH-PROGRAM BIOS-UPDATE /mnt/freedos_new
On démonte les deux pseudo-systèmes de fichiers :
root #
umount /mnt/freedos_new /mnt/freedos
DOS peut seulement afficher les noms dont la longueur n'excède pas 8 caractères. Ce serait idéal de renommer les fichiers ayant un nom constitué de plus de huit caractères.
Utiliser SystemRescue pour démarrer sur FreeDOS
SystemRescue est aussi disponible en version FreeDOS. Cette version peut être installée sur une clé USB amorçable. Elle contient ce qu'il faut pour mettre à jour le micrologiciel.
Téléchargement de SystemRescue et préparation de la clé USB autonome
- SystemRescue (télécharger l'image ISO standard de SystemRescueCD).
Création de la clé USB amorçable
On utilise la méthode par défaut pour créer la clé USB autonome SystemRescue. Le script usb_inst.sh aide à réaliser l'installation.
Les opérations suivantes effaceront toutes les données de la clé USB ! On vérifie que l'on dispose d'une copie des données avant de procéder à l'effacement.
On crée un répertoire SysRescueCD dans /mnt :
root #
mkdir /mnt/SysRescueCD
On monte l'image disque sur /mnt/SysRescueCD :
root #
mount -o loop systemrescuecd-x86-VERSION.iso /mnt/SysRescueCD
On exécute le script d'installation :
root #
/mnt/SysRescueCD/usb_inst.sh
On démonte l'image disque :
root #
umount /mnt/SysRescueCD
Si vous souhaitez simplement mettre à jour votre BIOS, il n’est pas nécessaire de modifier l’image FreeDOS sur le support SystemRescue. Après avoir créé la clé de démarrage SystemRescue comme décrit ci-dessus, montez la clé USB sur un répertoire. Copiez-y la mise à jour du BIOS. Et voilà ! Démarrez sur la clé USB et choisissez DOS tools ---> FREEDOS dans le menu de démarrage de SystemRescue. Vous trouverez le nom DOS tronqué de votre fichier de mise à jour du BIOS dans le répertoire A:. Si vous ne le voyez pas, essayez C:.
Remplacement de l'image FreeDOS
Le moment est venu de remplacer l'image FreeDOS originale de SystemRescueCD.
On monte la clé USB autonome SystemRescue (on pense à remplacer /dev/sda1 par le nom de périphérique donné à la clé USB).
root #
mount /dev/sdX1 /mnt/SysRescueCD
On procède au remplacement avec le fichier freedos.img :
root #
cp freedos.img /mnt/SysRescueCD/bootdisk/
On démonte la clé USB autonome SystemRescueCD :
root #
umount /mnt/SysRescueCD
Amorçage de FreeDOS avec GRUB
Il n'est pas indispensable d'utiliser un médium car l'utilitaire memdisk de syslinux permet d'amorcer FreeDOS directement ou ultérieurement après le chargement de GRUB (ou un autre chargeur d'amorçage).
root #
emerge --ask sys-boot/syslinux
On peut monter le système de fichiers /boot (si besoin) :
root #
mount /boot
On copie memdisk et l'image FreeDOS récemment créée sur le système de fichiers /boot.
root #
cp /usr/share/syslinux/memdisk /boot
root #
cp freedos.img /boot
On édite /boot/grub/grub.conf pour ajouter une entrée d'amorçage FreeDOS :
title FreeDOS (BIOS update)
kernel /boot/memdisk floppy
initrd /boot/freedos.img
Mise à jour du BIOS
On amorce l'ordinateur depuis la clé USB autonome SystemRescueCD. On entre les commandes suivantes si la ligne de commandes de GRUB apparaît :
freedos
Ensuite, l'invite de commande DOS apparaît.
C:\>
_
On peut commencer la mise à jour du BIOS en suivant les instructions du fabricant. Voici, quelques commandes DOS utiles :
- cd <dir>
- Changement de répertoire.
- dir
- Liste les fichiers du répertoire courant.
- type [drive][path]filename
- Affichage du contenu d'un fichier.
Flashrom
On peut également changer le BIOS de certaines cartes mère grâce au système d'exploitation. Dans ce cas, le seul pré-requis est d'utiliser l'image BIOS. Avant tout, on vérifie que le BIOS de la carte mère peut être modifié avec flashrom.
On analyse la nouvelle version avec flashrom si le BIOS de la carte mère est modifiable avec flashrom.
root #
flashrom -v W7235IMS.1A0
Si tout est OK, on réalise la mise à jour du BIOS :
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[2]). This method is available on Linux and Windows.[3] Vendors have to provide firmware updates for the use with Linux, which they do via the Linux Vendor Firmware Service (LVFS).[4]
Refer to fwupd for further details.
Voir aussi
- 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.
References
- ↑ Les informations de la table DMI peuvent être incorrectes bien que la table soit réalisée par le fabricant.
- ↑ https://uefi.org/sites/default/files/resources/10_Zach_AMI_capsule%20configurations.pdf
- ↑ https://uefi.org/sites/default/files/resources/UEFI%20Fall%202018%20Intel%20UEFI%20Capsules.pdf
- ↑ https://fwupd.org/lvfs/devices/