Chibi-nah::blog

Des geekeries, de la MAO, de tout et de rien…

Archives

Mise à jour du firmware UEFI sur un mini PC Minis Forum UM773 SE

La machine

Il s'agit d'un mini PC, vendu par Minis Forum, série Venus, à base d'APU AMD Ryzen 7 7735HS et un chipset Radeon 680M intégré.

Vous voyez le Steam Deck ? Ben, ça, en version fixe, et plus performant.

La machine est vendue soit nue (barebone) sans RAM ni disque dur 2,5" ni SSD M2 NVMe 2280, soit avec RAM et SSD et un Windows 11 préinstallé.

Bien entendu, j'ai pris la version nue :)

Problème

Jusqu'à récemment, pour mettre à jour le firmware UEFI (injustement appelé BIOS, y compris par moi-même, alors qu'il s'agit de technologies et de principes complètement différents), il fallait passer par Windows, seul un exécutable était fourni.

Maintenant, un exécutable et une archive zip sont proposés.

Préparation de la mise à jour

Télécharger l'archive sur le site de Minis Forum

https://minisforum.com/new/support?lang=en#/support/page/download/58

L'archive (datant du 2023-11-30) contient les fichiers suivants :

  • AfuEfix64.efi
  • checksum.txt
  • F7BFD115.rom
  • Flash.nsh
  • Release_Note.txt
  • WIN_F7BFD_BIOS_V1.15.exe

Outre la présence de l'exécutable pour Windows, noter la présence d'un fichier efi (exécutable), un script EFI (.nsh) et le firmware (.rom).

Il faudra un shell EFI. Celui-ci peut être absent sur la partition EFI.

Monter la partition EFI dans /boot, si ce n'est déjà fait.

Le mini PC chez moi fonctionnant sous ArchLinux, le plus simple fut d'installer le paquet edk2-shell.

https://archlinux.org/packages/extra/any/edk2-shell/

Une fois le paquet installé, il faut copier le fichier /usr/share/edk2-shell/x64/Shell.efi dans /boot (à la racine).

Créer un répertoire appelé “BIOS-Update” (oui, j'ai écrit BIOS et non UEFI) dans /boot.

Copier dans ce répertoire le contenu de l'archive zip, ou a minima AfuEfix64.efi, checksum.txt, F7BFD115.rom et Flash.nsh.

Mise à jour du firmware

Redémarrer le PC.

Entrer dans le BIOS, soit via une entrée GRUB ou rEFInd.

Une fois dans Aptio Setup, aller dans Save & Exit, puis sous Boot Override, sélectionner Launch EFI Shell from filesystem device.

Le shell se lance.

Attendre quelques secondes, que le prompt arrive.

À l'écran, Mapping Table présente les partitions trouvées. Celle qui nous intéresse est la partition EFI, ici FS0: (alias BLK1:), qui est la première partition sur un disque SATA (/Sata.../HD(1, GPT)).

Taper alors

FS0:

pour accéder à la partition (si vous avez connu MS-DOS, et les commandes A: ou C:, c'est exactement la même chose ici).

Note

Ne faites pas comme moi, ne tapez pas cd FS0:

Note

utiliser la commande ls pour lister les fichiers et répertoires.

Entrer dans le répertoire BIOS-Update

Note

utiliser la touche tabulation pour utiliser l'auto-remplissage.

Taper enfin Flash.nsh, et valider.

La mise à jour du firmware se lance. Plus qu'à laisser tourner pendant un moment (c'est très lent). Il y en a pour bien 5 minutes.

Avis

Pendant la mise à jour et lors du redémarrage où l'écran sera noir pendant un moment, NE PAS ÉTEINDRE OU DÉBRANCHER LA MACHINE !

La signature Secure Boot peut être réinitialisée. Dans ce cas, le message d'erreur suivant apparaîtra :

Appuyez sur Entrée pour entrer dans Aptio.

Aller dans Security, puis Secure Boot.

Changer les paramètres dans Secure Boot (désactiver, ou resélectionner le fichier EFI pour validation Secure Boot. Dans mon cas, j'ai désactivé).

Sortir (echap) puis aller dans Save & Exit, et sauvegarder les modifications.

La machine redamarre, et l'écran sera noir pendant un moment. Puis la machine redémarrera à nouveau.

La mise à jour est terminée.

Conclusion

La possibilité de mettre à jour le firmware, indépendamment du système d'exploitation est vraiment agréable. Pas besoin d'utiliser un système live avec un environnement PE ou similaire, avec les problèmes de stabilité qui peuvent arriver

J'ai une mise à jour qui a échoué avec un environnement de ce type. J'ai pu relancer le flashage dans la foulée et ça a réussi, mais grosse frayeur sur le coup.