O OpenBMC é uma distribuição do Linux para controladores de gerenciamento usados em dispositivos como servidores, topo de interruptores de rack ou aparelhos de invasão. Ele usa YOCTO, OpenEmbedded, Systemd e D-Bus para permitir fácil personalização para sua plataforma.
Veja a documentação YOCTO para obter os requisitos mais recentes
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
Qualquer compilação requer um ambiente configurado de acordo com o seu alvo de hardware. Existe um script especial na raiz deste repositório que pode ser usado para configurar o ambiente conforme necessário. O script é chamado de setup
e leva o nome do seu alvo de hardware como argumento.
O script precisa ser adquirido enquanto estiver no diretório superior do clone do repositório OpenBMC e, se executado sem argumentos, exibirá a lista de metas de hardware suportadas, consulte o exemplo a seguir:
$ . setup <machine> [build_dir]
Target machine must be specified. Use one of:
...
Uma lista mais completa de máquinas suportadas pode ser encontrada em meta-fósforo/docs.
Depois de conhecer o alvo (por exemplo, Romulus), obtenha o script setup
da seguinte forma:
. setup romulus
bitbake obmc-phosphor-image
Detalhes adicionais podem ser encontrados no repositório do DOCS.
A comunidade OpenBMC mantém um conjunto de tutoriais que novos usuários podem passar para se atualizar no desenvolvimento do OpenBMC aqui
Os compromissos enviados pelos membros da comunidade OpenBMC Github são compilados e testados através do nosso servidor Jenkins. Os compromissos são executados através de dois níveis de teste. No nível do repositório, o Makefile make check
é executada. No nível do sistema, a confirmação é incorporada em uma imagem de firmware e executa com um modelo de Arm-Softmmu Qemu contra uma enxurrada de testes de IC.
Os compromissos enviados por não membros não prosseguem automaticamente por meio de testes de IC. Após a inspeção visual da confirmação, uma execução de CI pode ser realizada manualmente pelo revisor.
São realizados testes automatizados contra o modelo QEMU, juntamente com os sistemas suportados. O projeto OpenBMC usa a estrutura do robô para toda a automação. Nosso repositório de teste completo pode ser encontrado aqui.
O suporte a pacotes adicionais de hardware e software é sempre bem -vindo. Siga as diretrizes contribuintes ao fazer uma submissão. Espera -se que as contribuições contenham casos de teste.
Os problemas são gerenciados no Github. Recomenda -se que você pesquise os problemas antes de abrir um novo.
Primeiro, faça uma pesquisa na internet. Há uma boa chance de sua pergunta já ter sido feita.
Para perguntas gerais, use a tag OpenBMC no excesso de pilha. Revise a discussão sobre o licenciamento de transbordamento de pilha antes de postar qualquer código.
Para discussões técnicas, consulte as informações de contato abaixo para obter informações sobre discórdias e listas de correspondência. Por favor, não registre um problema para fazer uma pergunta. Você obterá resultados mais rápidos usando a lista de discórdia ou discórdia.
Esta é uma pergunta comum, particularmente em relação aos conselhos de fornecedores populares de COTs (comercial pronta), como Supermicro e Asrock. Você pode ver a lista de placas suportadas em execução . setup
(sem argumentos adicionais) na raiz da árvore de origem OpenBMC. A maioria das plataformas suportadas pelo OpenBMC são servidores especializados operados por empresas que executam grandes datacenters, mas alguns servidores COTs mais genéricos são suportados em graus variados.
Se sua placa -mãe não estiver listada na saída de . setup
atualmente não é suportado. Portar o OpenBMC para uma nova plataforma é um empreendimento não trivial, idealmente feito com a assistência de esquemas e outra documentação do fabricante (não é completamente inviável de se esforçar sem documentação por meio de engenharia reversa, mas é consideravelmente mais difícil e provavelmente envolve um risco maior de dano de hardware).
No entanto , mesmo que sua placa -mãe esteja entre os listados na saída de . setup
, existem duas advertências significativas para terem em mente. Primeiro, nem todas as portas são igualmente maduras - algumas plataformas são melhor suportadas que outras, e a funcionalidade em algumas placas "suportadas" pode ser bastante limitada. Segundo, o apoio a uma placa -mãe não é o mesmo que o suporte para um sistema completo - em particular, o controle dos fãs depende da crítica não apenas da placa -mãe, mas também dos fãs conectados a ele e ao chassi em que o conselho e os fãs estão alojados, Ambos podem variar drasticamente entre os sistemas usando o mesmo modelo de placa. Portanto, embora você possa compilar e instalar uma construção OpenBMC no seu sistema e obter alguma funcionalidade básica, é provável que as bordas (como os ventiladores de resfriamento que executam continuamente a todo vapor).
Veja também "Máquinas suportadas".
Mergulhe profundamente no OpenBMC abrindo o repositório do DOCS.
O Comitê de Direção Técnica (TSC) guia o projeto. Os membros são: