综述
关于BMC已经在https://blog.csdn.net/jiangwei0512/article/details/76358995中介绍过,本文则介绍开源的BMC代码,称为OpenBMC。OpenBMC是一个开源的项目,用于开发BMC固件。官网是https://www.openbmc.org/,不过里面似乎没有什么内容,所以还需要依赖其它的网站,https://github.com/openbmc,在这里可以下载到需要的代码和文档。其主体部分的git是https://github.com/openbmc/openbmc.git,下载到的内容如下:
但实际上里面并没有什么有效的代码。OpenBMC是基于Yocto这个开源项目的,所以这里看到其实是一堆称为元数据的内容以及一个bitbake工具。关于bitbake和元数据,将在Yocto相关的文章中介绍,本文主要介绍OpenBMC最基本的使用。
使用
代码在前面已经下载到了,之后就是构建工作,这里参考了下载目录下的RAEAME.md文件。首先需要的准备是一些额外的工具,这里使用的环境是Ubuntu18.04,需要安装的内容如下:
sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat
部分内容实际上已经有了,不过关系不大,执行命令即可。之后是进行配置:
. setup romulus build
注意这里最前面是一个“.”。这里的romulus是README.md文件中提到的示例,具体会得到什么结果还不确定,build是后续构建使用的目录,执行结果如下:
完成之后就是构建过程:
bitbake obmc-phosphor-image
开始执行构建,这将是一个漫长的过程,当然如果网路和机器性能足够的话,也不会等太长:
构建结束,如下所示:
生成的二进制位于如下的目录:
到这里构建就完成了,之后就是要启动这个镜像,这需要参考https://github.com/openbmc/docs/blob/master/development/dev-environment.md中的内容。由于没有实际的设备做测试,所以只能使用虚拟机,这就需要依赖与QEMU,可以直接下载:
wget https://jenkins.openbmc.org/job/latest-qemu-x86/lastSuccessfulBuild/artifact/qemu/build/qemu-system-arm
也可以不在Linux环境下载,我这边就因为网络问题,所以是去Windows下通过迅雷下载的。将下载到的QEMU放到openbmc目录下,并执行如下的操作:
./qemu-system-arm -m 256 -M romulus-bmc -nographic -drive file=./build/tmp/deploy/images/romulus/obmc-phosphor-image-romulus.static.mtd,format=raw,if=mtd -net nic -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu
关于QEMU的参数,这里简单介绍下:
- -m指定了内存的大小;
- -M指定机器架构;
- -nographic表示无图像输出,串口会输出的控制台;
- -driver file=xx指定了启动的系统,这里就是我们的openbmc固件系统;
- -net设定网路参数;
执行命令之后就可以将openbmc的系统启动起来,如下图所示:
登录系统使用的账号密码是root和0penBmc。注意密码的首字母是数字的0,而不是大写的O。登录之后就可以进行各种操作:
到这里我们已经有了一个大概的OpenBMC系统了,并且可以通过串口操作OpenBMC,当然除此之外,还可以通过网络访问OpenBMC。如下所示:
首先会有一个安全提醒,这里可以忽略,通过高级选项进入:
登录使用的账号密码还是root和0penBmc,登录之后的界面:
以上就是OpenBMC的简单的使用。要退出OpenBMC的话,可以使用ctrl+a c来关闭QEMU以停止OpenBMC。