195 lines
7.2 KiB
Plaintext
195 lines
7.2 KiB
Plaintext
|
title: Support des cartes-mères ASUS KGPE-D16 et KCMA-D8 dans coreboot
|
||
|
about: Support des cartes-mères ASUS KGPE-D16 et KCMA-D8 dans coreboot
|
||
|
authors: neox
|
||
|
tags: Logiciels Libres,Services,coreboot,libreboot,Libre en communs,a-lec
|
||
|
date: 2022-11-29
|
||
|
|
||
|
link: Commission Infrastructures
|
||
|
/projets-commissions/cominfra/
|
||
|
|
||
|
link: Respect Your Freedom
|
||
|
https://ryf.fsf.org/
|
||
|
|
||
|
link: coreboot
|
||
|
https://coreboot.org/
|
||
|
|
||
|
link: NLnet
|
||
|
https://nlnet.nl/
|
||
|
|
||
|
link: Free Software Foundation
|
||
|
https://www.fsf.org/
|
||
|
|
||
|
link: ASUS KGPE-D16
|
||
|
https://www.asus.com/commercial-servers-workstations/kgped16/
|
||
|
|
||
|
link: KGPE-D16
|
||
|
https://www.asus.com/commercial-servers-workstations/kgped16/
|
||
|
|
||
|
link: KCMA-D8
|
||
|
https://www.asus.com/commercial-servers-workstations/kcmad8/
|
||
|
|
||
|
link: RowHammer
|
||
|
https://en.wikipedia.org/wiki/Row_hammer/
|
||
|
|
||
|
link: Management Engine
|
||
|
https://en.wikipedia.org/wiki/Intel_Management_Engine#Security_vulnerabilities/
|
||
|
|
||
|
link: PSP
|
||
|
https://en.wikipedia.org/wiki/AMD_Secure_Technology?lang=en
|
||
|
|
||
|
link: Spectre
|
||
|
https://en.wikipedia.org/wiki/Spectre_(security_vulnerability)/
|
||
|
|
||
|
link: microcode
|
||
|
https://www.syssec.rub.de/media/emma/veroeffentlichungen/2017/08/16/usenix17-microcode.pdf
|
||
|
|
||
|
link: GNU Guix
|
||
|
https://guix.gnu.org/
|
||
|
|
||
|
link: GNU
|
||
|
https://gnu.org/
|
||
|
|
||
|
link: FSFLA
|
||
|
https://fsfla.org/
|
||
|
|
||
|
link: FSF
|
||
|
https://www.fsf.org/blogs/sysadmin/the-fsf-tech-team-doing-more-for-free-software/
|
||
|
|
||
|
link: KDE
|
||
|
https://kde.org/
|
||
|
|
||
|
link: SugarLabs
|
||
|
https://www.sugarlabs.org/
|
||
|
|
||
|
link: Replicant
|
||
|
https://replicant.us/
|
||
|
|
||
|
link: Raptor Engineering
|
||
|
https://www.raptorengineering.com/coreboot/kgpe-d16-status.php
|
||
|
|
||
|
link: Parabola
|
||
|
https://wiki.parabola.nu/Hacking:Servers/Beefcake/
|
||
|
|
||
|
image: pic_coreboot
|
||
|
coreboot.png
|
||
|
Logo coreboot
|
||
|
|
||
|
image: pic_kgpe
|
||
|
kgpe.jpeg
|
||
|
Carte-mère ASUS KGPE-D16
|
||
|
|
||
|
image: pic_kcma
|
||
|
kcma.png
|
||
|
Carte-mère ASUS KCMA-D8
|
||
|
|
||
|
-----
|
||
|
|
||
|
#1 Support des cartes-mères ASUS KGPE-D16 et KCMA-D8 dans coreboot
|
||
|
((
|
||
|
+`Libre en Communs`+, au sein de sa ::Commission Infrastructures, a fait dès
|
||
|
sa création le choix d'héberger ses propres serveurs dans ses locaux et chez
|
||
|
ses adhérents volontaires. Ce choix fut complété par celui de n'utiliser que
|
||
|
du matériel certifié ::Respect Your Freedom par la ::Free Software Foundation
|
||
|
et en n'exécutant que du logiciel libre sur ses processeurs principaux du
|
||
|
+`BIOS`+ jusqu'au dernier programme applicatif. Cette certification indique
|
||
|
que le matériel vendu respecte certain critères afin que la liberté des
|
||
|
utilisatrices et utilisateurs soit respectée.
|
||
|
))
|
||
|
((
|
||
|
Les cartes-mères de serveurs qui ont été choisies par la
|
||
|
::Commission Infrastructures sont les ::ASUS KGPE-D16, des cartes puissantes
|
||
|
certifiées ::Respect Your Freedom et exécutant un BIOS libre dérivé de
|
||
|
::coreboot.
|
||
|
))
|
||
|
|
||
|
|
||
|
#2 Qu'est-ce que le BIOS ?
|
||
|
((
|
||
|
Un BIOS, comme son nom l'indique, était initialement un ensemble de fonctions
|
||
|
bas niveau contenu dans la mémoire morte de la carte mère d'un ordinateur et
|
||
|
lui permettant d'effectuer des opérations de base lors de sa mise sous
|
||
|
tension. Cependant, la définition d'un BIOS a fortement évolué pour désigner
|
||
|
également ce qu'on appelait par le passé le +`POST`+ : test de la présence de
|
||
|
périphériques et allocation de ressources pour ces derniers de façon à éviter
|
||
|
tout conflit, et ensuite passer la main à un chargeur de démarrage de système
|
||
|
d'exploitation. On considère que le plus gros du travail effectué par un BIOS
|
||
|
aujourd'hui est l'+`initialisation et l'entraînement de la mémoire vive`+.
|
||
|
En effet, il faut, par exemple, initialiser le contrôleur mémoire et
|
||
|
optimiser le timing et la tension de lecture/écriture pour des performances
|
||
|
optimales. Le code dans le BIOS qui gère cela est complexe puisque son rôle
|
||
|
est d'optimiser plusieurs bus parallèles fonctionnant avec des débits élevés
|
||
|
et de les faire agir comme un ensemble homogène.
|
||
|
))
|
||
|
((
|
||
|
Le projet ::coreboot, débuté sous le nom de LinuxBIOS, est un logiciel libre
|
||
|
d'amorçage lancé par le Laboratoire Universitaire de Los Alamos en 1999 qui
|
||
|
avait pour premier objectif de remplacer les BIOS privateurs des
|
||
|
constructeurs, souvent peu performants voire limités en fonctionnalités.
|
||
|
Le but recherché était d'abord d'obtenir un logiciel plus rapide que les BIOS
|
||
|
privateurs.
|
||
|
))
|
||
|
(( images_center
|
||
|
::pic_kgpe "h=280",
|
||
|
::pic_coreboot "h=280",
|
||
|
::pic_kcma "h=280",
|
||
|
))
|
||
|
|
||
|
|
||
|
#2 Notre projet
|
||
|
((
|
||
|
Les cartes-mères ::KGPE-D16 et ::KCMA-D8 sont les seules cartes de serveurs
|
||
|
qui étaient supportées par ::coreboot sans besoin d'aucun logiciel privateur,
|
||
|
mais elles ont été supprimées après la version 4.11. Elles avaient été
|
||
|
portées initialement par ::Raptor Engineering.
|
||
|
))
|
||
|
((
|
||
|
Elles peuvent être utilisées avec 100 % de logiciels libres, afin de
|
||
|
continuer à obtenir des correctifs de sécurité contre les bogues exploitables
|
||
|
à distance dans le BIOS (comme ::RowHammer). Il n'y a pas de
|
||
|
::Management Engine ::PSP sur ces cartes.
|
||
|
))
|
||
|
((
|
||
|
Certains processeurs compatibles avec ces cartes ne sont pas affectés par
|
||
|
les bogues de la classe ::Spectre, et il y a même du code source et une
|
||
|
documentation pour la mise à jour du ::microcode.
|
||
|
))
|
||
|
((
|
||
|
Ces cartes-mères sont utilisées pour l'hébergement par le projet ::GNU
|
||
|
(y compris ::GNU Guix), la ::FSF, ::KDE, ::SugarLabs, ::Replicant, la ::FSFLA,
|
||
|
+`Libre en Communs`+, ou encore ::Parabola.
|
||
|
))
|
||
|
|
||
|
|
||
|
#3 Les objectifs du projet
|
||
|
((
|
||
|
L'objectif est que Libre en Communs, recrute une ou des personne(s) pour
|
||
|
faire en sorte que coreboot supporte à nouveau ces cartes-mères. Cette ou
|
||
|
ces personne(s) serai(en)t embauchée(s) pour, +`au total`+, un équivalent
|
||
|
temps plein de 12 mois, avec un salaire de 16.42 €/h. Cela signifie un
|
||
|
budget de +`48 095 €`+ pour +`Libre en Communs`+. C'est la raison
|
||
|
pour laquelle nous faisons une demande de financement à ::NLnet pour parvenir
|
||
|
à mettre en oeuvre ce projet.
|
||
|
))
|
||
|
((
|
||
|
Le travail à effectuer consiste à rebaser le support de ces cartes sur la
|
||
|
version actuelle de coreboot (4.18), à corriger tous les bugs et les
|
||
|
problèmes de stabilité et en amont ce travail, et à le maintenir jusqu'à ce
|
||
|
qu'il soit complètement intégré à Coreboot.
|
||
|
))
|
||
|
((
|
||
|
Il y a donc un certain nombre d'étapes à franchir (liste non-exhaustive) :
|
||
|
(=
|
||
|
= trouver des outils de débogage pour travailler efficacement et valider
|
||
|
les étapes : JTAG, gdbstub ... ;
|
||
|
= séparer le code du processeur/chipset du code spécifique à la carte ;
|
||
|
= supporter RELOCATABLE_RAMSTAGE ;
|
||
|
= prendre en charge de POSTCAR_STAGE ;
|
||
|
= supporter C_ENVIRONMENT_BOOTBLOCK ;
|
||
|
= gérer la sauvegarde des paramètres d'entraînement de la mémoire (parce
|
||
|
que ce n'est pas fait du tout) et vérification que les tensions choisies
|
||
|
ont un sens (parce que dans le code il y a des commentaires qui semblent
|
||
|
dire "nous ne savons pas ce que nous faisons") ;
|
||
|
= initialiser les cœurs du CPU en parallèle.
|
||
|
)=
|
||
|
))
|