BMC基本概念介绍:
BMC:基板管理控制器 (Baseboard Management Controller)
BMC(Baseboard Management Controller,基板管理控制器)支持行业标准的 IPMI 规范。该规范描述了已经内置到主板上的管理功能。这些功能包括:本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除。
BMC 提供下列功能:
与 IPMI 1.0 的兼容性
用于风扇转速监视的转速计输入
用于风扇转速控制的脉冲宽度调节器输出
用于前面板按钮和开关的按钮输入
与服务器控制台端口进行多路传输的一个串行端口
远程访问和 ICMB(Intelligent Chassis Management Bus,智能机箱管理总线)支持
三个 I2C 主端口和备用端口(其中一个端口用于 智能机箱管理总线 )
LPC(Low Pin Count,低针计数)总线提供对三种 KCS(Keyboard Controller Style,键盘控制器方式)和 BT(One-Block Transfer,单块传输)接口的访问
32 位 ARM7 处理器
160 针 LQFP(Low Profile Flat Pack,薄形扁平封装)
NC-SI介绍
实现原理:
https://blog.csdn.net/fivedoumi/article/details/50073025
基本概念介绍:
什么是共享网口方式?
这里要简单地提到NC-SI(Network Controller – Sideband Interface)技术,即网络控制器边带接口技术。这一技术是用来实现BMC芯片和以太网控制器之间信息传递的,它使得BMC芯片能够像使用独立管理网口那样使用主板上的网络接口。以下是共享访问模式的实现结构图:
简单理解:
BMC其实是一个单片机,它有自己独立的IO设备,而独立网口就是其中之一。将BMC芯片和网络控制器互联,通过NC-SI技术使得BMC芯片能够使用网络控制器上的接口。
为何要使用共享网口访问管理控制器?
1、减少物料成本:共享访问模式能够为单机节省一根网线;
2、减少人力成本:如果业务网只需要接一根网线,共享方案可以减少一半的布线人力支出;
3、减少交换机投入:独立网口会多占用一个交换机端口,增加交换机采购数量,使用共享模式减少了这部分的支出和额外的交换机运维成本;
Openbmc的u-boot和openbmc开发相关:
openbmc/u-boot
https://github.com/openbmc/u-boot
openbmc/openbmc
https://github.com/openbmc/openbmc
OpenBMC cheatsheet
This document is intended to provide a set of recipes for common OpenBMC customisation tasks, without having to know the full yocto build process.
Using a local kernel build
The kernel recipe is in:
meta-phosphor/common/recipes-kernel/linux/linux-obmc_X.Y.bb
To use a local git tree, change the SRC_URI
to a git:// URL without a hostname. For example:
SRC_URI = "git:///home/jk/devel/linux;protocol=git;branch=${KBRANCH}"
The SRCREV
variable can be used to set an explicit git commit. The default (${AUTOREV}
) will use the latest commit in KBRANCH
.
Building a specific machine configuration
If the system you want to build contains different machine configurations:
meta-<layer>/meta-<system>/conf/machine/machineA.conf
meta-<layer>/meta-<system>/conf/machine/machineB.conf
You can specify the machine configuration you want to build by setting the MACHINE environment variable.
$ cd openbmc
$ TEMPLATECONF=meta-<layer>/meta-<system>/conf . openbmc-env
$ export MACHINE="machineB"
$ bitbake obmc-phosphor-image
Building the OpenBMC SDK
Looking for a way to compile your programs for 'ARM' but you happen to be running on a 'PPC' or 'x86' system? You can build the sdk receive a fakeroot environment.
$ bitbake -c populate_sdk obmc-phosphor-image
$ ./tmp/deploy/sdk/openbmc-phosphor-glibc-x86_64-obmc-phosphor-image-armv5e-toolchain-2.1.sh
Follow the prompts. After it has been installed the default to setup your env will be similar to this command
. /opt/openbmc-phosphor/2.1/environment-setup-armv5e-openbmc-linux-gnueabi
Rebuilds & Reconfiguration
You can reconfigure your build by removing the build/conf dir:
rm -rf build/conf
and running openbmc-env
again (possibly with TEMPLATECONF
set).
参考资料:
https://www.jianshu.com/p/12139db32e49
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)