OpenBMC est une distribution Linux pour les contrôleurs de gestion utilisés dans des appareils tels que les serveurs, les interrupteurs en haut de rack ou les appareils de raid. Il utilise Yocto, OpenEmbedded, SystemD et D-BUS pour permettre une personnalisation facile pour votre plate-forme.
Voir la documentation Yocto pour les dernières exigences
sudo apt install git python3-distutils gcc g++ make file wget
gawk diffstat bzip2 cpio chrpath zstd lz4 bzip2
sudo dnf install git python3 gcc g++ gawk which bzip2 chrpath cpio
hostname file diffutils diffstat lz4 wget zstd rpcgen patch
git clone https://github.com/openbmc/openbmc
cd openbmc
Toute version nécessite un environnement configuré en fonction de votre objectif matériel. Il existe un script spécial dans la racine de ce référentiel qui peut être utilisé pour configurer l'environnement selon les besoins. Le script est appelé setup
et prend le nom de votre cible matérielle comme argument.
Le script doit être obtenu dans le répertoire supérieur du clone du référentiel OpenBMC et, s'il est exécuté sans arguments, affichera la liste des cibles matérielles prises en charge, voir l'exemple suivant:
$ . setup <machine> [build_dir]
Target machine must be specified. Use one of:
...
Une liste plus complète des machines prises en charge peut être trouvée sous méta-phosphore / docs.
Une fois que vous connaissez la cible (par exemple Romulus), achetez le script setup
comme suit:
. setup romulus
bitbake obmc-phosphor-image
Des détails supplémentaires peuvent être trouvés dans le référentiel DOCS.
La communauté OpenBMC maintient un ensemble de tutoriels que les nouveaux utilisateurs peuvent passer pour se mettre au courant du développement OpenBMC ici
Les engagements soumis par les membres de la communauté OpenBMC GitHub sont compilés et testés via notre serveur Jenkins. Les validations sont effectuées à deux niveaux de tests. Au niveau du référentiel, la directive MakeFile make check
est exécutée. Au niveau du système, le commit est intégré à une image de firmware et s'exécute avec un modèle RAM-Softmmu Qemu contre un barrage de tests CI.
Les engagements soumis par les non-membres ne procédent pas automatiquement par les tests CI. Après l'inspection visuelle de l'engagement, une course CI peut être effectuée manuellement par le réviseur.
Des tests automatisés contre le modèle QEMU ainsi que des systèmes pris en charge sont effectués. Le projet OpenBMC utilise le cadre du robot pour toute l'automatisation. Notre référentiel de test complet peut être trouvé ici.
La prise en charge de matériel supplémentaire et de packages logiciels est toujours la bienvenue. Veuillez suivre les lignes directrices contributives lors de la rémunération. Il est prévu que les contributions contiennent des cas de test.
Les problèmes sont gérés sur GitHub. Il est recommandé de rechercher les problèmes avant d'en ouvrir un nouveau.
Tout d'abord, veuillez effectuer une recherche sur Internet. Il y a de fortes chances que votre question ait déjà été posée.
Pour les questions générales, veuillez utiliser la balise OpenBMC sur Stack Overflow. Veuillez consulter la discussion sur la licence de débordement de pile avant de publier un code.
Pour les discussions techniques, veuillez consulter les informations de contact ci-dessous pour les informations de discorde et de diffusion. Veuillez ne pas déposer un problème pour poser une question. Vous obtiendrez des résultats plus rapides en utilisant la liste de diffusion ou la discorde.
Il s'agit d'une question courante, en particulier en ce qui concerne les conseils de vendeurs populaires de COTS (Commercial Off-The Souffle) tels que Supermicro et Asrock. Vous pouvez voir la liste des tableaux pris en charge en fonctionnant . setup
(sans aucun autre argument) dans la racine de l'arbre source OpenBMC. La plupart des plateformes prises en charge par OpenBMC sont des serveurs spécialisés exploités par des entreprises exécutant de grands centres de données, mais certains serveurs COTS plus génériques sont pris en charge à des degrés divers.
Si votre carte mère n'est pas répertoriée dans la sortie de . setup
qu'il n'est pas actuellement pris en charge. Le portage d'OpenBMC vers une nouvelle plate-forme est une entreprise non triviale, idéalement réalisée avec l'aide de schémas et d'autres documents du fabricant (il n'est pas complètement irréalisable de prendre un effort de portage sans documentation via l'ingénierie inverse, mais elle est beaucoup plus difficile , et implique probablement un plus grand risque de dommages matériels).
Cependant , même si votre carte mère fait partie de celles répertoriées dans la sortie de . setup
, il y a deux mises en garde importantes à garder à l'esprit. Premièrement, tous les ports ne sont pas également matures - certaines plates-formes sont mieux prises en charge que d'autres, et les fonctionnalités de certaines cartes "prises en charge" peuvent être assez limitées. Deuxièmement, le support pour une carte mère n'est pas le même que le support d'un système complet - en particulier, le contrôle des fans dépend de manière critique non seulement de la carte mère mais aussi des fans qui y sont liés et du châssis dans lequel le tableau et les fans sont hébergés, Les deux peuvent varier considérablement entre les systèmes en utilisant le même modèle de carte. Ainsi, même si vous pouvez être en mesure de compiler et d'installer une construction OpenBMC sur votre système et d'obtenir des fonctionnalités de base, des bords rugueux (tels que vos ventilateurs de refroidissement fonctionnant en continu à plein régime) sont probables.
Voir aussi "Machines prises en charge".
Plongez plus profondément dans OpenBMC en ouvrant le référentiel DOCS.
Le comité de direction technique (TSC) guide le projet. Les membres sont: