Mes aventures avec coreboot...(version Google)
LISEZ ATTENTIVEMENT CE MESSAGE JUSQU'A LA FIN SI VOUS TENTEZ CETTE MANIPULATION ET NOTEZ QUE JE DECONSEILLE FORTEMENT DE FAIRE PAREIL !
Carmy42 et moi avons changé la façon dont coreboot est configuré et nous avons maintenant notre coreboot qui s'affiche 1 seconde et passe automatiquement à seabios qui lance ensuite notre distribution. Il n'y a plus d'intervention manuelle de notre part (le fameux CTRL + L).
Je n'ai pas voulu en arriver là, mais Carmy42 avait un soucis, j'ai voulu l'aider. Il voulait une copie du coreboot et il s'est avéré qu'il fallait ouvrir la machine pour enlever une vis afin que coreboot ne soit plus protégé en écriture ceci afin d'avoir une copie complète. En effet, il semble acquis par ceux qui travaille sur ce genre de chose que même pour une simple copie il soit nécessaire d'obtenir le droit en écriture.
J'ai donc troué l'autocollant de garantie, dévissé le paneau arrière, enlevé la vis de protection de coreboot et j'ai booté la machine.
Là j'ai eu une surprise : coreboot avait, de lui-même, changé sa configuration : l'accès à seabios avait disparu. Ayant supprimé Chrome OS du SSD, je me suis retrouvé avec une machine qui ne me permettait plus que d'avoir l'écran blanc de coreboot ! Là, on commence à stresser un peu...
J'ai trouvé étrange que la configuration de coreboot change alors que je l'avait seulement mis en écriture. J'ai donc tenté de remettre la vis, mais cela n'a rien changé à la situation. Alors j'ai tenté la seule option que me restait : réinstaller Chrome OS et tout reprendre depuis la début à partir de Chrome OS qui allait très certainement effacer le SSD lors de son installation. Après tout j'avais une copie journalière de mon home, donc à part le temps perdu, je me suis dit que ça devrait bien se passer.
Google fournit un petit script pour Linux que j'ai utilisé à partir d'Ubuntu 12.04 pour me faire une clé USB. Il est bien fait : on lui donne le modèle exacte de notre machine (celui en bas de l'écran blanc de coreboot) et il vous fait la clé USB. Mais étrangement, ma clé etait très difficilement reconnu par coreboot : il la prenait 1 foir sur 10, peut-être moins et je devait tenter toutes sortes de choses (hard reset, dev mode, activer/désactiver secure boot...) pour que de temps en temps il boot dessus. Les rares fois où il la trouvait, l'installation semblait bien se passer mais au bout d'un moment cela se terminait toujours par "unexpected error". (erreur inatendue).
J'ai donc commencé à chercher de l'aide à droite, à gauche, et on m'a dit que certains modèles de clé USB étaient mal reconnus. En effet, je suis aller acheter deux autres modèles et une clé emtec a été parfaitement reconnue. J'avais bon espoir ! Cette fois, c'était la bonne ! Mais je suis retombé sur l'unexpected error...
A force de me gratter la tête j'ai remarqué que le système de réinstallation (recovery) mentionnait un log. Je suis allé voir dans la clé et il avait bien de fichiers de log ! J'y ait trouvé ceci :
Dans "recovery.log", sur l'une des nombreuses partitions de la clé, avant un ensemble de diagnostiques, il y avait cette erreur :
"Touch(/mnt/stateful_partition/.install_completed) FAILED
Starting firmware updater
(/tmp/install-mount-point/usr/sbin/chromeos-firmwareupdate
--mode=recovery)
Command: /tmp/install-mount-point/usr/sbin/chromeos-firmwareupdate
--mode=recovery
Starting Peppy firmware updater v4 (recovery)...
- Updater package: [Google_Peppy.4389.81.0 / peppy_v1.5.114-5d52788]
- Current system: [RO:Google_Peppy.4389.78.0 ,
ACT:Google_Peppy.4389.78.0 / peppy_v1.5.113-2d79820]
- Write protection: Hardware: ON, Software: Main=off EC=ON
Upgrading from early-MP firmware.
RW firmware update is not compatible with current RO firmware.
Starting full update...
ERROR: You need to first disable hardware write protection.
ERROR: Execution failed: ./updater4.sh (error code = 4)
Finished after 2 seconds.
Failed
Command: /tmp/install-mount-point/usr/sbin/chromeos-firmwareupdate
--mode=recovery - Exit Code 4
RO Firmware needs update, but is really marked RO. (error code: 4)
Rolling back update due to failure installing required firmware.
Successfully updated GPT with all settings to rollback.
PostInstall Failed"
Le système de réinstallation de Chrome OS exigeait une mise à jour de coreboot, mais j'avais remis la vis de protection en écriture en place dans l'espoir qu'un système identique à l'origine aiderait alors que c'était en fait bloquant pour la réinstallation ! J'ai, une fois encore, réouvert la machine, retiré la vis, pris la clé qui marche bien, et là j'ai enfin pu réinstaller Chrome OS. Avant, j'ai remis coreboot en configuration de base avec secureboot activé.
Au point où j'en étais, j'ai décidé de tenter configurer ce coreboot mis à jour pour qu'il boot automatiquement sur seabios, puis sur ma distribution.
On lance Chrome OS, on passe en console directement :
"ctrl" + "alt" + "F2(->)"
On se logue avec:
localhost login: chronos
On passe superutilisateur (attention le clavier est en qwerty) :
$ sudo bash
On active seabios :
# crossystem dev_boot_usb=1 dev_boot_legacy=1
On configure coreboot pour qu'il passe automatiquement en 1 seconde à seabios :
# set_gbb_flags.sh 0×489
Là j'ai éteint le machine, réouvert le paneau arrière et remis la vis en place, car je n'aime pas l'idée que coreboot soit en accès libre en écriture par root.
Puis on reboot en ayant mis la clé USB avec la distribution Linux.
Carmy42 et moi avons donc une version mise à jour de coreboot (il a cependant utilisé une procédure différente de mise à jour de coreboot, mais je pense que ça revient au même), cela marche avec celle-ci. Il est quasi-certain que coreboot détecte et garde une trace du fait qu'on ait déverouillé l'accès en écriture sur lui. On a un trou sur l'autocollant de garantie. Il est donc probable que la garantie ait sautée. Le procédé en lui-même n'est pas "naturel" car tout le monde semble s'accorder pour dire que la réinstallation de Chrome OS n'a pas besoin d'une mise à jour de coreboot, et à partir de là on vous regarde un peu comme un cas presque désespéré. Pourtant c'est une exigeance du système et on se retrouve surement dans les 1% de cas qui sont les moins testés alors qu'ils sont les plus dangereux car on réécrit le firmware de boot (coreboot). Enfin, il faut réinstaller complètement Fedora après.
POUR TOUTES CES RAISONS, JE VOUS DECONSEILLE DE LE FAIRE !