BMC(Baseboard Management Controller)软件的开发涉及多个方面,包括内核和应用层的开发、驱动程序的嵌入、以及系统配置和管理等。以下是一些关键步骤和考虑因素:
内核和应用层分离
将BMC需要使用到的操作系统的内核部分和应用层单独进行开发。
将与应用层调用相关的驱动嵌入操作系统内核部分。
选择开发工具和框架
使用MeaRAC Development Studio进行开发。
基于商业的基础代码(codebase)或开源的基础代码进行开发。
使用OpenBMC、MegaRAC Development Kit等框架。
客户定制化开发
开发框架包括基础软件平台和客户定制化软件包模块,用于完成客户的定制需求。
客户需求导入、分类和软件包生成模块,以便开发人员根据不同需求开发出不同的客户定制化软件包。
驱动和BSP编写
Linux内核的工作包括驱动和BSP(Board Support Package)的编写,这些是连接硬件和软件应用层的桥梁。
驱动和BSP通常由第三方开发,服务器厂商的BMC软件工程师主要负责应用层的开发。
系统配置和管理
实现Web功能、网络通信功能(如TCP/IP、SSH、SNMP等)。
实现设备信息管理、状态监测管理、远程控制管理、固件更新、系统安装、SOL等功能。
日志管理、用户管理、BIOS管理、告警管理等。
编译和部署
安装必要的开发工具和依赖库,如git、gcc、make等。
从git或ftp服务器拉取源码,进行编译、打包等操作,生成所需的image文件。
在目标硬件上测试和验证BMC软件的功能和性能。
适配和优化
适配不同的硬件板卡,包括主板和第三方板卡。
支持多个项目,并处理客户定制化需求。
文档和支持
编写详细的开发文档和用户手册,方便后续的维护和升级。
提供技术支持和社区资源,以便开发者和用户解决问题。
通过以上步骤,可以有效地开发BMC软件,满足不同的客户需求,并确保软件的稳定性和可靠性。