新書推薦:

《
盛夏之死 刘子倩译本
》
售價:HK$
42.9

《
抗癌食物百科
》
售價:HK$
85.8

《
世界上神奇的犹太人智慧全书
》
售價:HK$
57.2

《
价值驱动增长:AI时代工业品B2B营销战略、方法与案例
》
售價:HK$
97.9

《
投资开拓者、英雄和失败者:控制情绪和避免偏见的方法
》
售價:HK$
76.8

《
芯片设计基石:EDA产业全景与未来展望
》
售價:HK$
86.9

《
胡适年谱长编
》
售價:HK$
1848.0

《
凌空之魂:五十岚大介短篇集
》
售價:HK$
47.1
|
| 編輯推薦: |
|
当 “东数西算” 推动服务器需求激增,BMC 作为服务器稳定运行的 “核心管家” 愈发关键,而开源 OpenBMC 的学习难题却困住众多开发者。本书恰好填补国内空白,从 BMC 基础功能、硬件总线、IPMI 协议,到 OpenBMC 开发实战、数据中心应用趋势,由浅入深覆盖全流程,更融入作者多年工程经验,提供实用调试方法。无论你是刚入行的 BMC 工程师、转行开发者,还是高校相关专业师生,都能从中系统掌握技能,堪称服务器固件开发领域的 “手边宝典”!
|
| 內容簡介: |
|
本书以当前流行的OpenBMC开源项目为例,介绍BMC软件的开发流程和方法,以及服务器BMC的功能应用。全书分为三部分:第一部分为第1~6章,介绍BMC固件开发基础,具体包括服务器固件概述,BCM的主要功能、常用的硬件总线,如何运用IPMI协议,BCM常用的软件通信协议、调试工具;第二部分为第7~15章,介绍BCM固件开发实战,涉及OpenBCM基础,D-Bus通信原理与使用方法,Boost Asio的使用方法,Yocto编译系统与BMC工程原理,如何从零开始构建OpenBMC工程,OpenBMC如何添加传感器、构建应用程序,OpenBMC的常用软件模块、前端界面开发等;第三部分为第16~18章,介绍BCM固件开发进阶与展望,涵盖服务器CPU与BMC、BMC在数据中心的主要应用以及BCM固件的技术发展趋势。附录部分则补充了开源项目和文档以及BCM芯片的GPIO Number表。本书适合从事BCM固件开发的工程师、从事嵌入式软件研究的计算机、电子信息专业的高校师生,以及希望了解BMC功能应用的数据中心运维人员等阅读。
|
| 關於作者: |
李哲 BMC高级工程师,曾在中科曙光、联想集团从事BMC软件开发工作多年,有丰富的BMC软件项目经验,发表BMC软件相关专利三篇,软著两篇。个人邮箱:liz163mail@163.com。
|
| 目錄:
|
目 录 Contents 推荐序 前言 致谢 第一部分 BMC固件开发基础 第1章 服务器固件介绍 2 1.1 BIOS固件 3 1.2 BMC固件 4 1.3 CPLD/FPGA固件 4 1.4 控制器固件 5 1.5 闭源商用BMC固件介绍 5 第2章 BMC功能介绍 7 2.1 BMC芯片与DC-SCM 7 2.1.1 BMC芯片 7 2.1.2 DC-SCM 8 2.2 KVM 10 2.3 虚拟媒体挂载 11 2.4 服务器电源控制 12 2.5 风扇调速 14 2.5.1 PID调速算法 14 2.5.2 梯度调速算法 15 2.6 固件更新、保存配置与恢复 出厂设置 15 2.6.1 固件更新 15 2.6.2 保存配置 16 2.6.3 恢复出厂设置 16 2.7 网络设置 16 2.8 用户管理与安全 17 2.8.1 用户与用户权限 17 2.8.2 LDAP 18 2.8.3 BMC安全特性 20 2.9 日志记录 22 2.10 BMC时间设置 23 2.11 存储设备管理 23 2.12 BMC看门狗功能 25 2.12.1 BMC的看门狗 25 2.12.2 服务器系统的看门狗 26 2.13 电源设备管理 27 2.13.1 电源冗余备份 27 2.13.2 电源固件升级 28 第3章 BMC常用的硬件总线 29 3.1 I2C与I3C 29 3.1.1 I2C 29 3.1.2 I3C 31 3.2 BMC的网络通信 32 3.3 LPC与ESPI 33 3.4 UART 34 3.5 USB 35 3.6 PCIe 36 3.7 GPIO 37 3.8 ADC 38 3.9 SPI 39 3.10 JTAG 40 3.11 VGA共享内存 41 第4章 BMC与IPMI协议 42 4.1 IPMI消息 42 4.2 SDR与传感器 45 4.2.1 传感器读值转换 45 4.2.2 传感器类型与事件读取 类型 46 4.2.3 传感器数据记录 47 4.3 SEL 49 4.3.1 SEL日志记录ID 49 4.3.2 SEL的记录格式 50 4.3.3 常用的SEL命令 51 4.4 IPMI LAN及SOL 52 4.4.1 IPMI LAN 52 4.4.2 SOL 53 4.5 IPMI平台事件过滤 54 4.6 常用的IPMI接口 55 4.6.1 KCS 55 4.6.2 SSIF 56 4.6.3 IPMB 57 4.7 FRU 58 第5章 BMC常用的软件通信 协议 59 5.1 Redfish协议 59 5.2 MCTP 65 5.2.1 MCTP over I2C 66 5.2.2 MCTP over PCIe 67 5.3 SNMP 69 5.3.1 SNMP简介 69 5.3.2 SNMP功能实现 70 5.4 PLDM协议 73 第6章 BMC常用的调试工具 75 6.1 curl 75 6.2 lsof 76 6.3 objdump 77 6.4 netstat 79 6.5 GDB与栈回溯 79 6.6 ipmitool 82 第二部分 BMC固件开发实战 之OpenBMC 第7章 OpenBMC基础 86 7.1 OpenBMC总体介绍 86 7.2 OpenBMC开发环境准备 87 7.3 OpenBMC中的systemd 88 第8章 D-Bus通信的原理与使用 方法 92 8.1 D-Bus通信简介 92 8.2 D-Bus使用与调试 95 第9章 Boost. Asio的使用方法 97 9.1 Boost.Asio简介 97 9.2 Boost.Asio的用法 98 第10章 Yocto编译系统与BMC 工程管理 102 10.1 Yocto项目介绍 102 10.2 Yocto编译系统使用 104 10.3 软件包的编译 107 10.4 BMC工程管理 110 第11章 从零开始构建OpenBMC 工程 112 11.1 创建meta layer 112 11.2 配置硬件特性 114 11.3 添加应用程序 120 第12章 OpenBMC如何添加 传感器 123 12.1 添加阈值型传感器 123 12.1.1 phosphor-hwmon 方式 124 12.1.2 Entity-Managers + dbus-sensors方式 126 12.2 添加离散型传感器 126 12.3 添加IPMI传感器 128 12.3.1 添加IPMI SDR 129 12.3.2 添加IPMI SEL 配置 130 第13章 OpenBMC如何构建应用 程序 131 13.1 编写配方文件 131 13.2 编写service文件 133 13.3 应用程序的设计 134 第14章 OpenBMC常用软件模块 介绍 138 14.1 sdbusplus与phosphor-dbus-interfaces 138 14.2 phosphor-objmgr 139 14.3 bmcweb 140 14.4 obmc_ikvm 141 14.5 jsnbd 142 14.6 ipmid 143 14.7 服务器开关机控制 146 第15章 OpenBMC前端界面开发 147 15.1 Vue框架介绍与环境搭建 147 15.2 webui-vue源码目录 149 15.3 添加功能页面 151 15.4 支持中文显示 155 15.5 添加图标 156 第三部分 BMC固件开发 进阶与展望 第16章 服务器CPU与BMC 160 16.1 主流服务器CPU 160 16.1.1 Intel 161 16.1.2 AMD 162 16.1.3 ARM 162 16.1.4 国产CPU 163 16.2 RAS功能 164 16.2.1 x86架构RAS 165 16.2.2 RAS故障处理 165 16.3 CPU远程调试 166 第17章 BMC在数据中心的主要 应用 168 17.1 常用的服务器机型 168 17.2 BMC在数据中心的应用 场景 169 第18章 BMC固件技术的发展趋势 172 18.1 BMC固件技术与服务器重要 部件紧密结合 172 18.2 BMC固件开源势不可挡 173 18.3 BMC固件安全性日益受到 重视 174 18.4 BMC固件与人工智能技术 相结合 175 附 录 附录A 开源项目及文档 178 附录B BMC芯片GPIO Number表 180
|
| 內容試閱:
|
Preface 前 言 随着国家“东数西算”战略的实施,以及云计算、人工智能、大语言模型技术的蓬勃发展,国内市场上服务器需求激增,服务器的销量逐年增长。据不完全统计,在中国每天会销售一万台以上的服务器。这些服务器部署在全国各地的数据中心,24小时不间断地稳定运行。为服务器运行保驾护航的正是服务器BMC。BMC是服务器的核心管理控制单元,负责监控服务器的日常运行,实现服务器远程开关机等操作。BMC固件开发属于嵌入式软件开发的范畴,开发者不仅需要掌握基本的嵌入式软件开发技术,还需要了解服务器硬件相关的基础知识,学习门槛较高。近年来有许多其他领域的软件开发人员转行从事BMC固件开发,但苦于当前市面上没有一本系统介绍BMC固件功能和开发方法的专业指导书。基于此,我决定对该领域的专业知识做一个汇总,供大家参考。 本书旨在通过专业、系统的介绍,消除专业壁垒,为新入行的BMC工程师提供指导。同时,本书结合作者多年的实际工程项目经验,为广大BMC工程师同行提供软件方案设计参考和常见问题调试方法,帮助数据中心的运维人员深入了解BMC的相关功能。 本书共分为三部分,采用由浅入深的顺序,系统地介绍BMC的功能结构、软件开发方法。第一部分包括第1~6章:首先对服务器固件做了整体介绍,让读者对服务器固件有整体的认识;然后对BMC的常用功能进行介绍,包括KVM(Keyboard,Video,Mouse)、虚拟媒体挂载、服务器电源控制、风扇调速、固件更新等,基本覆盖了BMC的所有重要功能;同时介绍了BMC常用的硬件总线,包括I2C/I3C、LPC、USB、PCIe等,BMC工程师的日常工作主要是和这些硬件总线打交道;IPMI协议是服务器带外管理的核心,本书详细介绍了IPMI协议的使用,包括传感器和SEL(System Event Log,系统事件日志)的配置、SOL(Serial Over LAN),以及LAN、KCS和IPMB等接口,这些都是BMC固件开发绕不开的话题;接下来对Redfish、MCTP、SNMP、PLDM这些常用的BMC通信协议也做了介绍与分析;随后分享了笔者认为日常工作中比较有效的BMC固件开发调试工具,着重介绍了objdump、GDB(GNU Debugger)的用法,帮助工程师解决难以定位的内核驱动问题、用户态程序段错误问题。第二部分包括第7~15章:重点介绍了目前业界流行的OpenBMC软件架构,包括D-Bus、Boost. Asio、Yocto这些OpenBMC的重要技术栈,如何使用OpenBMC进行BMC软件工程管理,以及OpenBMC如何添加传感器、构建应用程序、开发前端界面等,帮助工程师从零开始学习OpenBMC,使用OpenBMC构建自己的BMC软件工程项目。第三部分包括第16~18章:介绍了当前市场上主流的服务器CPU(Central Processing Unit,中央处理器)产品,以及BMC与CPU通信的主要功能RAS(Reliability,Availability,Serviceability,可靠性、可用性、可服务性)和CPU远程调试,帮助读者了解重要的RAS技术、拓宽视野,并给出了笔者对于BMC在数据中心的主要应用场景和BMC技术未来发展趋势的观察与思考,希望能给读者以启发。在本书的最后,笔者还在附录中提供了一些参考资料,包括开源项目及文档的网址、BMC芯片GPIO Number表。读者可以联系笔者讨论技术问题,微信号是sky888888Fly666。 本书适合工作在BMC固件开发一线的广大工程师朋友、准备转行从事BMC开发的软件工程师、从事嵌入式软件研究的计算机专业和电子信息专业的高校师生,以及希望了解BMC功能应用的数据中心运维人员阅读和学习。笔者希望将本书打造成BMC固件技术方面让工程师爱不释手的技术手册。笔者愿与各位同行一起推动服务器固件技术的发展,希望更多优秀的软件工程师加入BMC固件开发行列。 最后,由于本人学识、工作经验有限,希望各位行业专家能够为本书提供宝贵意见,指出本书的不足之处。
李 哲
|
|