Utiliser un Raspberry-Pi et un pince SOIC-8 pour reflasher le BIOS d'un PC.

Bisqwit à publiée une vidéo très intéressante expliquant comment reflasher le BIOS de son ThinkPad Lenovo acheté d'occasion. Opération réalisée avec un Raspberry-Pi :-)
Cette vidéo met surtout en lumière la limitation de libertés imposés par certains fabriquant... et comment utiliser un BIOS open-source (CoreBoot) pour remplacer le BIOS d'origine.!

Bisqwit voulait ajouter une carte Bluetooth sur le slot PCI-E (miniPCI) encore disponible dans son Thinkpad.
Ajouter une carte Bluetooth PCI-E
Et qu'est-ce que l'on voit au redémarrage du Lenovo.
BIOS qui refuse de booter
Avec le message...
1802 - Unauthorized network card is plugged in - Power off and remove the mini PCI network card
Je le crois pas! Il y a un contrôle sur le matériel inséré dans le PC:
Carte réseau non AUTORISEE  est branchée - Éteignez et retirez la carte réseau mini PC.
Et comme le démontre la vidéo (plus loin) il ne s'agit pas de matériel incompatible mais de matériel non autorisé! Autrement dit, on nous impose un ou plusieurs fabricants -ou- un circuit de distribution particulier.
Ce qui restreint non seulement nos libertés de consommateurs mais impose également une vente forcée (car seul certains fabricants sont privilégiés).

Localisation du BIOS, une mémoire Flash sur un bus SPI.
Grâce à une pince SOIC-8 (voir ci-dessous), du câble et un Raspberry-Pi (capable de contrôler un matériel SPI), il est possible de téléverser un nouveau BIOS dans la mémoire Flash.
Pince SOIC-8
Utilisation de la pince SOIC-8 pour brancher le Pi sur la Flash (le BIOS) du Lonevo
CoreBoot
Logo de CoreBoot
CoreBoot est un projet qui vise à proposer un logiciel d'amorçage (boot) libre pour remplacer les BIOS propriétaires. CoreBoot est destiné à offrir un BIOS au démarrage rapide avec une meilleure gestion des erreurs.
Vous en apprendrez plus sur ce projet dans la page WikiPedia à propos de  CoreBoot.

Voir aussi coreboot.org pour plus d'informations.


Durant la vidéo, Bisqwit a réussi à compiler un coreBoot BIOS pour son Lenovo.

Utilitaire et Flash

Le BIOS est flashé avec flashrom, utilitaire qui permet de lire et d'écrire une mémoire Flash.
Faire une copie de la Flash dans un fichier
Sous Linux, un autre utilitaire très utile est dmidecode qui s'exécute avec la commande.
sudo dmidecode | less

Cet utilitaire fait un dump de la table DMI (aussi appelée SMBIOS) de sorte à pouvoir être lu. Cette table contient des informations sur le matériel, révision du BIOS (et le type de BIOS), le numéro de série, etc.
Voyez l'article dmidecode extrait des pages man.

La vidéo
Je vous propose de consulter la vidéo de Bisqwit disponible sur YouTube.
C'est vraiment très instructif!



A tout bientôt,
Dominique