OpenBMC는 서버, 랙 스위치 또는 RAID 어플라이언스와 같은 장치에서 사용되는 관리 컨트롤러의 Linux 배포입니다. Yocto, OpenEMbedded, SystemD 및 D-BU를 사용하여 플랫폼에서 쉽게 사용자 정의 할 수 있습니다.
최신 요구 사항은 Yocto 문서를 참조하십시오
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
모든 빌드에는 하드웨어 대상에 따라 설정된 환경이 필요합니다. 이 저장소의 루트에는 필요에 따라 환경을 구성하는 데 사용할 수있는 특수 스크립트가 있습니다. 스크립트를 setup
이라고하며 하드웨어 대상의 이름을 인수로 취합니다.
스크립트는 OpenBMC 저장소 클론의 최상위 디렉토리에있는 동안 공급해야하며, 인수없이 실행되면 지원되는 하드웨어 대상 목록이 표시됩니다. 다음 예를 참조하십시오.
$ . setup <machine> [build_dir]
Target machine must be specified. Use one of:
...
지원되는 기계의보다 완전한 목록은 메타 포스포르/문서에서 찾을 수 있습니다.
대상 (예 : Romulus)을 알면 다음과 같이 setup
스크립트를 소스하십시오.
. setup romulus
bitbake obmc-phosphor-image
추가 세부 사항은 문서 저장소에서 찾을 수 있습니다.
OpenBMC 커뮤니티는 새로운 사용자가 OpenBMC 개발에 빠지기 위해 진행할 수있는 일련의 튜토리얼을 유지합니다.
OpenBMC Github 커뮤니티 회원이 제출 한 커밋은 Jenkins 서버를 통해 편집 및 테스트됩니다. 커밋은 두 가지 수준의 테스트를 통해 실행됩니다. 리포지토리 레벨에서 Makefile make check
Directive가 실행됩니다. 시스템 수준에서 커밋은 펌웨어 이미지에 내장되어 있으며 CI 테스트의 분노에 대해 ARM-SoftMMU QEMU 모델로 실행됩니다.
비회원이 제출 한 커밋은 CI 테스트를 자동으로 진행하지 않습니다. 커밋을 육안으로 검사 한 후 CI 실행은 검토자가 수동으로 수행 할 수 있습니다.
지원되는 시스템과 함께 QEMU 모델에 대한 자동 테스트가 수행됩니다. OpenBMC 프로젝트는 모든 자동화에 로봇 프레임 워크를 사용합니다. 우리의 전체 테스트 저장소는 여기에서 찾을 수 있습니다.
추가 하드웨어 및 소프트웨어 패키지 지원은 항상 환영합니다. 제출할 때 기고 가이드 라인을 따르십시오. 기부금에는 테스트 사례가 포함될 것으로 예상됩니다.
문제는 Github에서 관리됩니다. 새 문제를 열기 전에 검색하는 것이 좋습니다.
먼저 인터넷에서 검색하십시오. 당신의 질문에 이미 질문을 받았을 가능성이 높습니다.
일반적인 질문은 스택 오버플로에서 OpenBMC 태그를 사용하십시오. 코드를 게시하기 전에 스택 오버플로 라이센스에 대한 토론을 검토하십시오.
기술적 논의는 Discord 및 메일 링리스트 정보에 대해서는 아래의 연락처 정보를 참조하십시오. 질문을 할 문제를 제기하지 마십시오. 메일 링리스트 나 불화를 사용하여 더 빠른 결과를 얻을 수 있습니다.
이것은 특히 Supermicro 및 Asrock과 같은 인기있는 침대 (상업용 상용) 공급 업체의 보드에 관한 일반적인 질문입니다. 실행하여 지원되는 보드 목록을 볼 수 있습니다 . setup
OpenBMC 소스 트리의 루트에서 . setup
(추가 인수가없는). OpenBMC가 지원하는 대부분의 플랫폼은 대형 데이터 센터를 실행하는 회사가 운영하는 전문 서버이지만,보다 일반적인 COTS 서버는 다양한 정도로 지원됩니다.
마더 보드가 출력에 나열되어 있지 않은 경우 . setup
은 현재 지원되지 않습니다. OpenBMC를 새로운 플랫폼으로 포팅하는 것은 사소한 사업이며, 제조업체의 회로도 및 기타 문서의 도움으로 이상적으로 수행됩니다 (리버스 엔지니어링을 통한 문서화없이 포팅 노력을 기울일 수는 없지만 훨씬 어렵습니다. , 아마도 하드웨어 손상의 위험이 더 크다).
그러나 마더 보드가 출력에 나열된 마더 보드 중 하나라도 . setup
하면 두 가지 중요한 경고가 있습니다. 첫째, 모든 포트가 똑같이 성숙하지는 않습니다. 일부 플랫폼은 다른 플랫폼보다 더 잘 지원되며 일부 "지원되는"보드의 기능은 상당히 제한적일 수 있습니다. 둘째, 마더 보드에 대한 지원은 완전한 시스템에 대한 지원과 동일하지 않습니다. 특히 팬 컨트롤은 마더 보드뿐만 아니라 그와 연결된 팬과 보드와 팬이 보관하는 섀시에도 비판적으로 의존합니다. 둘 다 동일한 보드 모델을 사용하여 시스템마다 크게 다를 수 있습니다. 따라서 시스템에서 OpenBMC 빌드를 컴파일하고 설치하고 기본 기능을 얻을 수 있지만 거친 가장자리 (예 : 전체 스로틀에서 지속적으로 실행되는 냉각 팬과 같은)가 가능합니다.
"지원되는 기계"도 참조하십시오.
문서 저장소를 열어 OpenBMC에 더 깊이 빠져 나옵니다.
기술 운영위원회 (TSC)는 프로젝트를 안내합니다. 회원은 다음과 같습니다.