La carte-mère avec la puce à reflasher sur le support

La carte-mère avec la puce à reflasher sur le support

 

 

Seulement 3 personnes participaient à la dernière session de l’année de G3L (GNU/Linux et Logiciels Libres en Drôme-Ardèche), François R. en a profité pour utiliser un des PC disponibles pour flasher la puce dessoudée au L0AD il y a quelques temps. Ceci a nécessité quelques outils, mais a aussi requis de patcher Flashrom pour la carte-mère utilisée.

En effet, il existe plusieurs types de puces flash pour les cartes-mère : le vieux protocole parallèle, LPC (Low Pin Count), FwH (Firmware Hub), et toutes les puces ne sont pas utilisables sur toutes les cartes. Or aucune des cartes-mère testées jusqu’ici n’étaient utilisables.

Sur les quelques PC disponibles à G3L, un avait donc une puce compatible FwH, donc à priori devait pouvoir flasher la puce. La procédure est assez simple en fait, enfin, en théorie :

  • ouvrir le PC pour avoir accès au support de la puce flash,
  • démarrer le PC et entrer dans les options du BIOS, pour activer le cache pour le BIOS (afin d’éviter de lire la puce quand elle aura été enlevée), mais bizarrement sur cette machine, aucune option de ce genre,
  • lancer flashrom --programmer internal -r pour vérifier s’il sait lire la puce actuelle. Hormis un avertissement à propos de la carte-mère non testée (ASUS P5LD2, voir le dump DMI), flashrom arrive néanmoins à lire la puce.
  • enlever la puce actuelle, et la remplacer par la puce à flasher, ça nécessite quelques outils assez fins,
  • tester la lecture de la puce… ça fonctionne.
  • tenter d’écrire (flashrom --programmer internal -w CFIBAK.BIN)… et là, c’est le drame !

En effet, l’avertissement à propos de la carte-mère non testée veut en effet dire que le code spécifique à cette carte pour activer l’écriture existe, mais n’est pas utilisé parce que personne ne l’a testé. Il faut donc compiler notre propre version de flashrom depuis SVN pour le tester soi-même :

  • sudo apt-get install subversion libpci-dev
  • svn co svn://flashrom.org/flashrom/trunk flashrom
  • cd flashrom
  • make

Puis trouver où activer le code spécifique pour notre carte-mère avec un grep P5LD2 *

En l’occurrence il s’agit du fichier board_enable.c, et il suffit de changer le « NT » en « OK » sur la bonne ligne. On recompile avec make, et on teste… youpi \o/

Ensuite on arrête le PC, on remet le BIOS d’origine et on redémarre pour être sûr qu’il fonctionne encore.

Et bien sûr on oublie pas d’envoyer le patch qui est très simple au final.

En prime, un netbook a été configuré avec succès pour utiliser un GPS malgré un gpsctl récalcitrant qui refusait de le refaire passer en mode NMEA, en passant par gpsd, et installé zyGrib, un visualisateur de données météo.

Voir aussi le billet sur le site de G3L.