- 博客(134)
- 收藏
- 关注
原创 openbmc-learning-plan
完成标准:能画出「Redfish 请求,到 D-Bus 属性,到 systemd 目标,到平台服务」这条链,并指出 Romulus 的平台文件在哪个目录。完成标准:同一条信息能在 Redfish、D-Bus、systemd 三处对上。完成标准:能做一项不影响启动的调查,例如用 D-Bus 读出 BMC 主机名,或列出一条日志。它读 JSON 配置,在 D-Bus 上发布 CPU、内存、风扇、电源的库存对象。完成标准:能独立选定仓库、找到配方、在 QEMU 里验证,不再对照电源那一节。QEMU 保持运行。
2026-10-22 17:45:00
283
原创 openubmc 新增硬件资源对象
首先我们需要在my_app组件的MDS模型中定义资源类。打开在《新增一个组件》中创建的my_app组件的mds/model.json, 添加下面的模型定义"usage": ["CSR"完整代码},},"usage": ["CSR"与普通的组件MDS对象定义不同,这里新增了"usage": ["CSR"]的声明。这个表示在某个CSR中,存在一个叫做MyCSRModel的对象,包含TemperatureCelsius的属性。MDS 是给北向看的软件对象;CSR 是给南向扫硬件的描述。
2026-09-17 16:16:00
235
原创 openubmc 新增一个 IPMI Sensor
一个常见的场景便是需要将硬件上的某一个器件的读值,通过IPMI协议中定义的门限传感器呈现给用户。在本章节中,我们将配置一个LM75温度器件,同时配置一个对应的IPMI门限传感器,并呈现至对外接口。openUBMC采用一种软件描述性语言描述一个硬件的具体信息,这种描述性语言被称之为Component Self-description Record(CSR)。找到vpd声明位置,将版本改至对应的构建版本,然后在manifest中再次进行整包构建。此处我们定义了两个对象,一个是Lm75器件,一个是定期扫描任务。
2026-09-17 14:11:00
243
原创 openubmc 对外扩展接口-redfish
这里我们通过接口映射配置,不仅将Redfish的uri资源进行了具体的定义,并将Redfish的uri资源与openUBMC资源协作接口关联了起来,开发者无需再编写Redfish的接口代码逻辑。整包构建过程中,会先在temp构建工作区生成集成后的rootfs目录(tmp_root),它就是hpm包内rootfs镜像的直接来源,其中的文件会原样打包进升级包。openUBMC的SDK已经提供了完备的Redfish协议管理能力,并提供了强大的映射配置器,简化北向接口的适配工作量。
2026-09-16 13:48:00
284
原创 openubmc 扩展对外接口-新增ipmi命令
openUBMC中提供了一套描述IPMI模型的方式,也属于MDS模型的一部分,因此仅需在MDS中定义IPMI命令,便可自动生成IPMI命令的封装解析帮助函数代码。详细的IPMI模型定义,请参考《MDS也是在 my_app 组件下增加打开mds/ipmi.json(如果没有该文件,请新建),粘贴下面的代码"cmds": {"req": [],"rsp": [},"req": [],"rsp": [这里我们创建了两个IPMI命令,都是此命令用于查询SecretNumber。
2026-09-15 17:28:00
275
原创 openubmc 新建一个组件
openUBMC系统中,每个组件都拥有自己的业务资源,通过遵循MDS模型定义,openUBMC即可以完成BMC整体资源的建模,统一系统内的交互规范。同时基于相同的模型基础,openUBMC运行框架简化了组件间的交互逻辑,组件开发人员仅需围绕着自身的资源对象进行业务逻辑代码编写。首先进入到新建的my_app项目中打开mds/model.json,粘贴以下配置},
2026-09-15 17:11:00
193
原创 openubmc 环境搭建
前提:容器已按 1.4 节 Docker 环境启动并安装基础工具,并完成了 2.2(Git 全局配置)、2.3(创建工作目录)和 2.4(克隆 manifest 仓库),当前在。字段指定了 SDK 的 Conan 包引用,bingo 在构建时自动通过 Conan 拉取对应版本的交叉编译器、工具链等,用户无需手动下载或解压。基于 Ubuntu 24.04 LTS 搭建 openUBMC 构建环境,完成系统准备、环境初始化、工具安装、配置及构建出包的全流程。安装后正常运行 init.py 即可。
2026-09-15 15:17:00
317
原创 entity-manager/bin/baseboard.fru.bin 生成与转成可读文件
为了确保万无一失,生成时需要留意保持文件大小一致。查看原始文件大小,生成时使用。到与原始完全相同的大小。
2026-06-12 11:23:00
269
原创 journalctl 指令
journalctl 是 systemd 系统中查看、管理系统日志的核心命令(替代传统的 /var/log/messages 等日志文件),用于查询内核、服务、应用等所有 systemd 管理的日志,支持实时监控、过滤、分页、导出等强大功能。
2026-06-10 11:23:00
281
原创 BMC代码构建(bitbake 指令使用)
bitbake 是 Yocto Project / OpenEmbedded 构建系统的核心命令,用于编译、构建、打包嵌入式 Linux 系统(镜像、软件包、SDK 等)
2026-06-10 10:57:00
372
原创 UPD 广播与组播
下面的 enp3s0 即使网卡名(当前机器的ip是inet 10.101.197.112 )格式:sudo tcpdump -i <网卡名称> -nn 'udp port <端口号>'如果在输出的ip列表里有你定义的组播地址,说明加入成功了。在发送端新开一个窗口,执行。
2026-05-28 17:07:00
86
原创 OEM 自定义命令开发
用 IPMI 标准指令获取传感器温度# 读取所有传感器# 只看温度传感器# 精简显示 只看数值# 实时刷新 监控变换# 只想看某一个的温度既然有这么多标准命令,为什么还要自己实现呢?标准 IPMI 功能不够用(最常见)传感器数量限制:标准 IPMI 传感器编号上限通常为 255 个。现代服务器 / 设备传感器极多(CPU 多核心、多硬盘、多 PCIe 设备),超过 255 个就必须用 OEM 扩展。数据格式不灵活标准只能返回 单个数值 + 阈值。
2026-04-14 15:18:00
507
原创 OpenBMC D-Bus 介绍
D-Bus(Desktop Bus)本质是消息总线 + 服务注册中心 + 事件通知机制。是 OpenBMC 的核心中枢,是一套标准化、面向对象的进程间通信(IPC)总线系统,负责连接所有 BMC 内部服务、硬件抽象层与外部管理接口(IPMI/Redfish/REST)。系统 “中枢神经”:所有组件(传感器、风扇、电源、日志、用户、状态机)通过 D-Bus 交互服务化架构底座:每个功能模块以 服务名 + 对象路径 + 接口 + 方法 + 属性 + 信号 暴露能力。
2026-04-14 10:53:00
716
原创 OpenBMC + QEMU 仿真环境搭建
OpenBMC:开源基板管理控制器(BMC)固件,提供标准化的硬件管理功能,支持 IPMI、Redfish 等协议。QEMU(OpenBMC 定制版):专门适配 Aspeed AST2500/AST2600 等 BMC 芯片的模拟器,区别于上游 QEMU,可完整仿真 BMC 硬件逻辑。
2026-04-09 12:46:00
680
原创 BMC IPMI协议
通道间桥接(Channel-to-Channel Bridge):最常用,比如「LAN 通道 → IPMB 通道」「LAN 通道 → 系统接口通道」;总线桥接(IPMB/ICMB Bridge):用于 IPMB 总线上的多 BMC 级联,比如机箱管理控制器(CMC)通过 ICMB 桥接多个刀片服务器的 BMC。
2026-04-08 15:44:00
780
原创 windows 检查whl(pyd)缺失文件
可以把缺失的dll直接拷贝到sit-packages/package name 下面 ,再次运行导入 就会解决。在python中 import package 出现缺失dll时,可以用下面方法分析。5.点击 Add 添加每条规则 → OK → Apply → OK。(右键 → 以管理员身份运行,否则无法捕获系统级事件)2.以管理员身份运行 Procmon.exe1.3.点击页面上的filter->filter..8.看到报错后 → 立即暂停捕获(Ctrl+E)(解压即用,无需安装)
2026-02-05 13:15:00
307
原创 Windows 编译安装hdf5库
可以用msys2安装minGW64(cmake),如果是自己独立装的minGW64(cmake),在msys2的安装目录下/home/你的名字/.brashrc文件末尾添加。在电脑应用中打开MSYS2 MINGW64终端,执行下面命令。将安装目录/bin 添加到环境变量。
2026-02-02 13:58:00
357
原创 MSYS2 中安装 GCC 13.2.0 版本完整指南
MSYS2 安装指定 GCC 版本 MinGW64 完整指南文档说明适用环境:Windows 10/11 系统 + MSYS2核心目标:通过 MSYS2 的 pacman 包管理工具,安装指定版本的 MinGW64-GCC 工具链(含 C/C++ 编译器)注意事项:MSYS2 包仓库仅保留近期 GCC 版本,过于老旧版本可能无法直接获取一、核心前提已完成 MSYS2 安装(安装路径无中文、无空格,如 D:\msys64)
2026-01-29 16:29:00
828
原创 稀疏矩阵 数据格式 csr
https://blog.youkuaiyun.com/m0_64204369/article/details/123035598
2024-09-19 10:34:00
234
原创 tronado websocket
server代码:from flask import Flaskfrom flask_cors import CORSfrom tornado import websocket, ioloop, webfrom tornado.web import FallbackHandlerfrom tornado.wsgi import WSGIContainerfrom apps.moni...
2024-09-11 16:16:00
477
原创 DataFrame RHS语法查询语句
RHS:https://github.com/acoboh/query-filter-jpa/blob/main/README.md规则:查询字段名:查询条件(条件值) 关系符 查询字段名:查询条件(条件值) ...查询条件有:‒ eq: 等于‒ gt: 大于‒ gte: 大于等于‒ lt: 小于‒ lte: 小于等于‒ ne: 不等于‒ cn: 包含‒ ncn: 不包含...
2024-07-26 17:04:00
463
原创 射线法检查一个点在不在多边形内-python 实现
参考文档:https://www.cnblogs.com/gxcdream/p/7597865.htmlhttps://www.cnblogs.com/muyefeiwu/p/11260366.htmlhttps://blog.youkuaiyun.com/liangzhaoyang1/article/details/51088475代码:点击查看代码# encoding=utf8import n...
2024-07-10 10:55:00
503
原创 多边形填充-活动边表法
参考文档:参考1:https://blog.youkuaiyun.com/u013044116/article/details/49737585参考2:https://blog.youkuaiyun.com/keneyr/article/details/83747501算法思想:对多边形沿y轴从0开始遍历,建立边表NET。只记录顶点的x, dx, ymax。根据NET构建活动边表AET(activate ed...
2024-07-08 10:27:00
533
原创 cython 笔记
数据类型# bool 类型// bool_type_ptactice.pyxcdef bint a = 123 # 非0 为 真 , 0 为假cdef bint b = -123cdef bint c = 0py_a = a # cdef 定义的内容没法直接在python中直接引用py_b = bpy_c = c// main.pyimport pyximport...
2024-06-26 23:19:00
379
原创 cython 数据类型
文档: https://docs.cython.org/en/latest/src/userguide/language_basics.html#declaring-data-types
2024-06-23 14:10:00
292
原创 线程池 + 回调 (进程赤用法类似)
import osimport threadingimport timefrom concurrent.futures import ThreadPoolExecutorfrom functools import wrapsThreadPool = ThreadPoolExecutor(max_workers=10)def thread_executor(a): pri...
2024-06-04 17:20:00
183
原创 numba-Ahead of time
参考文档:https://numba.pydata.org/numba-doc/latest/user/pycc.htmlCompiling code ahead of time(运行之前编译代码)虽然 numnb 主要是 Just-In-Time(运行时)编译,但也提供了 Ahead-Of-Tiem(提前编译)的工具。优点:AOT 编译提供了一个不依赖 numba 的编译扩展模块,它...
2024-05-12 22:34:00
555
原创 numba-cfunc
参考文档: https://numba.pydata.org/numba-doc/latest/user/cfunc.htmlcfunc创建 C/C++回调函数与 jit 相似,有一个不同点是,cfunc 强制传递一个签名,用来确定 C 回调的可见签名。cfunc 对象暴漏出编译后的 C 回调地址,以便可以传递给任何的外部 C/C++ 库。他还暴漏了一个 ctypes 回调对象指向该回调...
2024-05-12 17:40:00
388
原创 numba-jitclass
参考文档:https://numba.pydata.org/numba-doc/latest/user/jitclass.html#jitclass对类进行装饰import numba as nbimport numpy as npfrom numba.experimental import jitclassspec = [ ("value", nb.int32), ...
2024-05-12 16:51:00
592
原创 numba-vectorize
参考文档: https://apachecn.github.io/numba-doc-zh/#/docs/17vectorize装饰器:允许python函数的标量入参使用 numpy 的 ufuncs。import numba as nb@nb.vectorize([nb.int32(nb.int32, nb.int32)], nopython=True)def f(x, y):...
2024-05-12 12:52:00
403
原创 复杂二进制数据
点击查看代码# 读取嵌套型和大小可变的二进制结构from itertools import chainimport struct# 多边形数组polys = [ [(1.0, 2.1), (2.0, 3.2), (3.0, 4.3)], [(1.1, 2.2), (2.1, 3.3), (3.1, 4.4), (4.1, 5.5)], [(1.2, 2.3)...
2024-04-27 14:27:00
376
原创 二进制数组
点击查看代码# 读写二进制结构数组from functools import partialfrom struct import Struct# Writedef write_records(records, format, f): """Write a sequence of tuple to a binary file of structures""" rec...
2024-04-27 14:26:00
324
原创 二进制文件内存映射
点击查看代码# 对二进制文件做内存映射# 使用 mmap 模块对文件进行内存有映射操作import mmapimport os.pathdef memory_map(filename, access=mmap.ACCESS_WRITE): """ :param filename: :param access: mmap.ACCESS_WRITE: 读写...
2024-04-27 14:25:00
471
原创 ab压测命令
linux安装# 安装命令:apt-get install httpd-tools# 检查是否安装成功ab -V# ab参数说明ab -h>>>-n 在测试会话中所执行的请求个数。默认时,仅执行一个请求。-c 一次产生的请求个数。默认是一次一个。-t 测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总...
2024-04-11 18:03:00
416
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅