- 博客(75)
- 收藏
- 关注
原创 OpenBMC KVM 功能全解析:远程可视化管理的核心实现与实战
支持用户在 WebUI 自定义最多 6 组快捷键,用于快速执行常用操作;前端自动校验快捷键唯一性,避免冲突,配置存储在浏览器 localStorage,下次登录自动生效;核心价值:适配不同用户的操作习惯,提升远程操作效率。跨平台兼容:基于 RFB 协议和 V4L2 框架,适配不同硬件平台和浏览器;低延迟传输:支持 JPEG 压缩、跳帧优化,平衡带宽与画质;资源高效:客户端连接时动态分配资源,断开后自动释放,不占用额外系统资源;功能全面。
2025-12-23 10:48:12
998
原创 OpenBMC 服务创建完全指南:从代码编写到镜像集成
OpenBMC 服务创建的核心是 “适配生态、规范配置”—— 通过sdbusplus融入 D-Bus 通信体系,通过 systemd 实现生命周期管理,通过 Yocto 完成构建集成。掌握本文的流程和方法,可快速实现一个标准的 OpenBMC 服务,适配硬件管理、设备监控等场景。命名统一:软件包、配方文件、服务名保持一致,简化维护;依赖准确:配方文件的DEPENDS需与代码依赖完全一致,避免编译失败;路径规范:可执行文件、服务文件、配置文件安装到 OpenBMC 标准路径(如/usr/bin。
2025-12-23 10:47:49
697
原创 OpenBMC 用户与用户组全解析:认证机制、权限管理与实战配置
权限精细化:通过用户组批量控制不同登录方式和操作权限,降低管理成本;认证多样化:适配 Web、IPMI、SSH 等多场景,兼顾通用性和安全性;配置灵活化:支持本地用户和 LDAP 远端用户,适配独立部署和批量管理需求。首次登录后立即修改默认用户密码,避免使用初始密码;按 “最小权限原则” 分配用户角色,普通操作使用操作员或只读用户;定期审计用户和用户组配置,清理无用账号,保障系统安全。
2025-12-19 10:37:47
595
原创 OpenBMC 核心组件实战:通用 DBus 模板与配置管理模块全解析
在下创建对应功能目录(如Software/),新增文件,定义属性、方法;在对应目录下更新,添加新接口的生成规则;生成补丁,通过配方文件(.bbappend)引入,确保编译时自动生成代码。phosphor-dbus-interfaces、phosphor-settings-manager 与 OEM 定制配置模块,共同构成了 OpenBMC 系统 “接口标准化、配置统一化、扩展灵活化” 的核心支撑。
2025-12-19 10:37:22
893
原创 Linux 内核完全指南:核心架构、驱动开发与调试技巧
Linux 内核是嵌入式系统的 “底层引擎”,其模块化架构、灵活的驱动机制和丰富的配置选项,使其能适配从服务器到单片机的各类硬件。掌握内核的核心功能、代码结构和调试技巧,能帮助开发者快速解决硬件适配、驱动开发中的问题,提升系统稳定性和性能。对于 OpenBMC 等嵌入式场景,内核的核心价值在于:通过设备树适配硬件差异,通过驱动扩展支持专用硬件,通过调试工具快速定位问题,最终实现硬件资源的标准化管理与高效利用。
2025-12-18 09:52:54
1016
原创 OpenBMC 核心配置文件全解析:构建、编译与服务管理的关键基石
OpenBMC 的四类核心配置文件,分别承载了 “构建配方、编译配置、服务管理” 的关键职责,是系统定制化开发的基础。快速适配新硬件(通过 bbappend 扩展配方);灵活定制编译规则(通过 meson/CMake 调整参数);保障服务稳定运行(通过.service 配置生命周期)。对于 OpenBMC 开发者而言,熟练运用这些配置文件,是实现功能开发、系统优化和问题排查的核心能力。
2025-12-18 09:52:12
892
原创 OpenBMC 中 Redfish 全解析:现代化服务器管理接口的架构与实战
标准化兼容:跨厂商、跨平台的统一接口,降低多设备管理成本;前后端解耦bmcweb隔离底层 D-Bus 和上层 Redfish,简化开发与维护;安全可靠:HTTPS 传输 + 多认证机制,保障远程管理安全;易用扩展:JSON 格式 + RESTful 设计,支持 OEM 定制扩展,适配复杂业务需求。对于嵌入式开发者而言,掌握 Redfish 在 OpenBMC 中的实现逻辑,能够快速开发标准化管理接口,支撑服务器远程管理全场景需求。
2025-12-04 15:56:11
902
原创 OpenBMC 中 IPMI 协议全解析:架构、组件与实战应用
IPMI 协议在 OpenBMC 系统中扮演着 “硬件管理中枢” 的角色,通过标准化的命令集、灵活的通信通路和模块化的组件架构,实现了服务器硬件的全生命周期管理。其核心价值在于:跨平台兼容性确保了不同厂商硬件的统一管理,分层架构提升了功能的可扩展性,定制化支持满足了特殊场景的个性化需求。对于嵌入式开发者而言,掌握 OpenBMC 中 IPMI 的实现逻辑,能够快速适配不同服务器硬件的管理需求,提升系统的可管理性和可靠性。
2025-12-04 15:55:50
872
原创 OpenBMC 传感器系统全解析:架构、类型与实战配置
OpenBMC传感器系统通过模块化架构实现服务器硬件全维度监控,包含阈值型和离散型两类核心传感器,分别处理数值化状态监控和硬件事件捕捉。系统采用"驱动采集-中间件处理-标准化输出"分层设计,通过DBus总线实现高效通信,并支持虚拟传感器计算、动态传感器适配和IPMI规范集成等高级功能。配置工具简化了开发流程,同时支持OEM定制化扩展,满足特殊硬件监控需求。这套标准化、灵活可扩展的传感器体系,为服务器稳定运行提供了可靠的"感知神经"保障。
2025-11-24 13:52:56
884
原创 从头开始c++ day4
成员变量和成员函数分开存储:对象仅持有成员变量,成员函数存储在代码区共享,这一设计极大地节省了内存空间;this 指针:作为隐含参数连接对象与成员函数,解决了成员函数区分不同对象的问题,显式使用可解决命名冲突和实现链式编程;空指针访问成员函数:不访问成员变量时可执行,访问成员变量时会崩溃,建议在成员函数中对 this 指针判空;const 修饰成员函数:通过修饰 this 指针限制成员变量的修改,结合mutable可实现局部可变,常对象只能调用常函数,保证了数据的安全性。友元应谨慎使用。
2025-11-24 11:02:23
1041
原创 从头开始c++ day3
C++对象初始化和清理机制实现了对象生命周期的自动化管理。通过构造函数和析构函数,C++解决了C语言手动初始化和清理资源的痛点,保证了程序的健壮性。文章系统讲解了构造/析构函数基础、构造函数的分类调用、拷贝构造时机、深/浅拷贝问题、初始化列表用法、类对象成员的生命周期以及静态成员特性等核心知识点。特别强调了动态内存管理中必须使用深拷贝避免重复释放,以及初始化列表对常量/引用成员初始化的必要性。这些机制共同构成了C++对象生命周期的完整管理体系,为面向对象编程奠定了坚实基础。
2025-11-21 09:37:54
985
原创 D-Bus 完全指南:从基础原理到 OpenBMC 实战应用
解耦进程间交互:通过统一接口屏蔽底层差异,让各功能模块独立开发、灵活组合;简化开发复杂度:封装网络编程、消息解析等细节,开发者专注业务逻辑;支持高并发场景:dbus-broker 与 sdbusplus 的组合,满足嵌入式系统的性能需求;标准化接口生态:phosphor-dbus-interfaces 定义统一接口,降低硬件适配成本。对于嵌入式开发者而言,掌握 D-Bus 不仅能解决进程间通信问题,更能理解 OpenBMC 等复杂系统的架构设计思路。
2025-11-21 09:37:14
262
原创 从头开始c++ day2
C++封装特性解析:从数据暴露到安全封装 本文深入分析了C++封装特性如何解决C语言的结构体缺陷。C语言中,结构体数据暴露且与操作函数分离,导致数据安全隐患和维护困难。C++通过类实现了数据和方法的打包,配合private、public等访问权限控制,有效保护数据安全。 文章通过学生成绩管理案例,对比展示了C结构体与C++类的实现差异。封装后,数据只能通过验证接口访问,避免了非法修改,同时提高了代码内聚性和可维护性。文中还探讨了构造函数、函数重载等进阶技巧,并总结了封装的四大优势:数据安全、低耦合、高复用和
2025-11-20 09:39:22
698
原创 Git 完全指南:从核心原理到企业级实战
本文系统解析了分布式版本控制系统Git的核心技术与应用。首先介绍Git的诞生背景及其相较于集中式系统的优势,包括本地完整存储、高效分支管理和数据安全性等。重点阐述Git三大核心概念(工作区/暂存区/仓库)、文件状态流转机制及底层数据结构(Blob/Tree/Commit)。详细讲解日常开发中的高频操作命令,涵盖配置管理、代码提交、分支操作、版本追溯及团队协作流程等场景。最后给出企业级协作规范建议,包括分支命名、提交信息和代码审核等标准,并指出Git钩子、子模块等进阶方向。全文旨在帮助开发者深入掌握Git原理
2025-11-20 09:36:01
582
原创 从头开始C++ day1
C++是从C语言发展而来的一门面向对象编程语言,由Bjarne Stroustrup在1979年开发。相比C语言,C++增加了面向对象特性(如类和对象)、命名空间、引用、函数重载等新功能。本文介绍了C++的基础知识:命名空间解决命名冲突,输入输出使用cout/cin替代printf/scanf,new/delete提供更安全的内存管理,引用作为变量的别名,以及函数默认参数、占位参数和重载等特性。这些改进让C++既保留了C语言的高效性,又增强了代码组织能力和安全性。
2025-11-19 10:02:10
1106
原创 OpenBMC 开发调试实战:devtool 工具与核心调试手段全解析
OpenBMC 的调试流程可总结为 “定位→修改→验证用devtool提取源码,通过busctl定位目标模块;用 C++ 标准打印 /添加日志,修改源码;用bitbake单独编译,通过scp替换设备文件,结合journalctlsystemctl验证效果;硬件问题用i2cdetectgpioinfo排查,DBus 问题用busctl验证。这些工具和方法的核心价值,是让开发者摆脱 “全量编译” 的低效循环,实现 “精准定位、快速迭代、全链路排查”。
2025-11-19 09:32:01
970
原创 BitBake 深度解析:OpenBMC 构建系统的核心工具与实战指南
本文深入解析嵌入式Linux核心构建工具BitBake的技术细节与实战应用。作为YoctoProject和OpenBMC等项目的基础构建引擎,BitBake通过元数据文件(Recipe/Class/Append等)实现自动化编译流程处理复杂依赖关系。文章系统阐述BitBake的五大核心配置文件、常用命令操作、完整编译流程(从源码处理到镜像生成)以及构建目录结构,并以OpenBMC开发为例,说明如何通过devtool进行源码定制。最后给出学习路径建议,强调掌握BitBake对嵌入式Linux开发的重要意义,是
2025-11-18 09:33:03
877
原创 OpenBMC 深度解析:开源 BMC 的架构设计、核心概念与厂商实践
本文系统剖析了OpenBMC开源服务器管理控制器技术。开篇指出OpenBMC作为开源BMC事实标准,解决了传统封闭固件的痛点。主体内容包含:1)发展历程,从Facebook发端到Linux基金会标准化;2)基于Yocto的分层架构,包括基础构建层至应用定制层;3)关键概念如元数据、层、配方等构建要素;4)硬件支持现状及国产化适配;5)联想定制案例解析。文章最后展望OpenBMC在云原生、国产化和智能化方向的发展趋势,指出其作为嵌入式Linux和开源协作实践的重要价值。全文为开发者、运维人员提供了OpenBM
2025-11-18 09:31:58
931
原创 BMC 深度解析:服务器带外管理的核心技术架构与实践
BMC(基板管理控制器)是服务器带外管理的核心组件,独立于主机系统运行,提供远程监控与控制能力。文章系统解析BMC技术,包括其基本概念(独立嵌入式控制器)、核心功能(硬件监控、电源控制、远程控制台等)、软硬件框架(分层设计的嵌入式系统)以及开源与商业实现方案(如OpenBMC和厂商专属固件)。BMC通过IPMI/Redfish等协议实现服务器全生命周期管理,适用于数据中心运维、故障排查等场景,并正朝着云原生、智能化方向发展。其核心价值在于弥补带内管理的局限性,成为现代IT基础设施不可或缺的部分。
2025-11-17 14:56:27
1614
原创 企业级服务器技术全解密
服务器的本质是 “为企业业务提供持续、可靠的计算与存储能力”,其硬件架构(冗余、并发、扩展)和技术特性(带外管理、高可用、自动化)都是为了实现这一目标。与 PC 相比,服务器不是 “性能更强的电脑”,而是 “为服务而生的专用基础设施”—— 它的每一个组件、每一项技术,都在诠释 “稳定为王” 的企业级准则。随着云计算、大数据、AI 的发展,服务器正朝着 “ARM 架构、液冷散热、边缘计算” 等方向演进,但 “高可用、高并发、可管理” 的核心目标始终不变。
2025-11-17 14:24:39
960
原创 linux系统嵌入式开发流程(以fierfly-k3588s为例)
前言根据之前的学习其实我们已经大概掌握了嵌入式的开发框架,今天我们就来总结一下整个开发流程,在物联网和边缘计算盛行的时代,掌握嵌入式Linux开发已成为工程师的必备技能。本文以Firefly ROC-RK3588S-PC开发板为例,详细记录从零开始的完整开发流程。整个流程包括环境搭建、固件编译、驱动开发到应用部署的全过程,现将关键步骤和经验总结分享给大家。
2025-09-12 11:05:38
1242
原创 重头开始嵌入式第四十八天(Linux内核驱动 linux启动流程)
操作系统是管理计算机硬件与软件资源的计算机程序。操作系统内核是操作系统的核心部分,它负责管理系统的最基本功能和资源,直接与硬件交互,并为上层软件提供基础服务。驱动,全称为设备驱动程序,是一种特殊的软件,它在计算机系统中起着至关重要的作用。主要作用:连接硬件与操作系统:驱动程序充当了硬件设备和操作系统之间的桥梁。不同的硬件设备有着各自独特的工作方式和指令集,而操作系统需要一种统一的方法来与这些设备进行交互。
2024-10-10 21:00:20
1580
原创 重头开始嵌入式第四十七天(硬件 ARM裸机开发 RS232 RS4885 IIC)
RS232是美国电子工业协会颁布的一种串行物理接口标准。RS485是由美国电子工业协会制定的一种通信标准。IIC(Inter-Integrated Circuit),也称为 I²C(“I-squared-C”),中文叫集成电路总线。它是一种串行通信总线,由飞利浦公司在 1980 年代为连接主板、嵌入式系统或手机等的低速周边设备而发展。
2024-10-09 21:46:50
1912
原创 重头开始嵌入式第四十六天(硬件 ARM裸机开发 ADC 中断 UART)
ADC(Analog-to-Digital Converter)即模拟数字转换器。在计算机系统中,中断是一种非常重要的机制。中断是指计算机在执行程序的过程中,由于出现了某些突发事件(如外部设备请求服务、定时器溢出等),暂停当前正在执行的程序,转而去执行相应的中断处理程序,处理完突发事件后再返回到被中断的程序继续执行。在芯片和通信领域中,UART(Universal Asynchronous Receiver/Transmitter)即通用异步收发传输器。
2024-10-09 20:39:39
1594
原创 重头开始嵌入式第四十五天(硬件ARM裸机开发 时钟配置 看门狗 )
总之,看门狗是一种重要的系统监测和故障恢复机制,能够提高系统的可靠性和稳定性,保障系统的正常运行。例如,在处理器中,时钟信号用于同步指令的取指、译码和执行等阶段,保证每个操作都在规定的时间窗口内完成。1. 高性能需求场景 - 例如在图形处理、科学计算等对运算速度要求很高的应用中,可以将时钟频率设置得较高,使芯片以更快的速度处理数据,提高系统的整体性能。PCLK 是提供给用于外设如 WDT,IIS,I2C,PWM 定时器,MMC/SD 接口,ADC,UART,GPIO,RTC 和。Fref 意思为参考。
2024-10-09 19:43:52
1263
原创 重头开始嵌入式第四十四天(硬件 ARM裸机开发)
总之,ARM 裸机开发是一种直接在 ARM 处理器上进行软件开发的方法,具有直接控制硬件、高效性、资源占用少等特点。在进行 ARM 裸机开发时,需要掌握硬件知识、编程语言、开发工具等方面的技能,并且需要进行充分的测试和优化,以确保程序的稳定性和可靠性。在某些特定的应用场景中,由于资源受限、对实时性要求极高或者为了追求更高的性能和效率,开发者会选择进行 ARM 裸机开发。总之,三星 S3C2440A 是一款功能强大、性能优异的微控制器,在嵌入式系统开发中具有重要的地位,为各种嵌入式应用提供了可靠的解决方案。
2024-09-27 21:29:58
1858
原创 重头开始嵌入式第四十三天(硬件 ARM架构 汇编语言)
汇编语言是一种低级编程语言,它使用助记符来代表机器指令,以便程序员更容易理解和编写程序。以下是关于汇编语言的详细介绍:一、定义与特点1. 与机器语言的关系:- 汇编语言是机器语言的一种符号化表示。机器语言是由二进制代码组成的指令集,直接被计算机硬件执行。而汇编语言用易于记忆的助记符(如 MOV 表示数据传送、ADD 表示加法等)和符号来代替机器语言的二进制指令,使得程序员能够更方便地编写程序。2. 特点:- 直接操作硬件:汇编语言可以直接访问计算机的硬件资源,如寄存器、内存地址和 I/O 端口等。
2024-09-26 20:27:24
1793
2
原创 重头开始嵌入式第四十二天(硬件 ARM体系架构)
一、处理器处理器,也称为中央处理器(CPU),是计算机系统的核心部件。它主要负责执行计算机程序中的指令,对数据进行运算和处理,以实现各种计算任务。处理器的主要功能包括:指令执行:从内存中读取指令,并按照指令的要求进行操作,如算术运算、逻辑运算、数据传输等。数据处理:对输入的数据进行加工和处理,生成输出结果。控制计算机系统:协调和控制计算机系统中各个部件的工作,确保整个系统的正常运行。
2024-09-25 21:14:38
2473
原创 重头开始嵌入式第四十一天(数据结构 树 哈希表)
树:n(n>=0)个结点的有限集合。n = 0 ,空树。在任意一个非空树中,1,有且仅有一个特定的根结点2,当n>1 时,其余结点可分为m个互不相交的有限集合T1,T2,T3.。。。。Tm,其中每一个集合又是一个树,并且称谓子树。结点拥有子树的个数称谓结点的度。度为0的结点称谓叶结点。度不为0,称谓分支结点。树的度数是指,这棵树中,最大的结点的度数,称谓树的度数。树的深度或高度,从根开始,根为第一层,根的孩子为第二层。树的存储,顺序结构,链式结构。
2024-09-14 17:04:08
1677
原创 重头开始嵌入式第四十天(数据结构 队列)
在 C 语言中,队列(Queue)是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,在表的后端(rear)进行插入操作。int front;int rear;} Queue;在这个定义中:- data 数组用于存储队列中的元素。- front 表示队列的前端,用于删除元素。- rear 表示队列的后端,用于插入元素。队列具有以下特点:- 先进先出(FIFO):先进入队列的元素先被取出。- 当队列满时,不能再进行插入操作;当队列空时,不能再进行删除操作。
2024-09-13 21:31:02
718
原创 重头开始嵌入式第三十九天(数据结构 栈)
栈是一种数据结构,它具有以下特点:1. 只能在一端进行插入和删除操作,这一端被称为栈顶。2. 遵循“后进先出”(Last In First Out,LIFO)的原则。也就是说,最后进入栈的元素最先被弹出。3. 可以用数组或链表来实现。例如,把书一本一本叠放在桌子上,只能从最上面取书或放书,这就类似栈的操作。后放上去的书先被拿走,符合“后进先出”原则。
2024-09-13 10:25:55
952
原创 从头开始嵌入式第三十八天(数据结构 双向链表)
2. 相比单向链表,双向链表在某些操作上更加灵活,比如在删除节点时,可以快速找到前驱节点进行调整,而单向链表需要从头开始遍历才能找到前驱节点。1. 每个节点包含两个指针,分别指向直接前驱节点和直接后继节点。这使得在双向链表中可以双向遍历,既可以向前也可以向后查找节点。1. 插入操作:可以快速确定插入位置的前后节点,进行指针调整,实现高效的插入操作。1. 需要频繁进行前后遍历的场景,如文本编辑器中对字符的双向移动和操作。2. 删除操作:由于能够直接访问前驱节点,删除操作也更加方便快捷。
2024-09-11 20:39:26
824
原创 重头开始嵌入式第三十六天(数据结构 顺序表)
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。具体来说,它包括以下两个方面:1. 数据元素:是数据的基本单位,可以是数字、字符、记录等。2. 特定关系:数据元素之间的关系可以是逻辑关系,如线性关系、树状关系、图状关系等;也可以是物理关系,即数据在计算机内存中的存储方式。数据结构的选择对于算法的效率和程序的性能至关重要。不同的数据结构适用于不同的应用场景,例如,数组适合随机访问但插入和删除操作效率较低;链表适合频繁的插入和删除操作但随机访问效率不高;
2024-09-10 11:42:40
1507
原创 重头开始嵌入式第三十四天(数据库二)
当一个表中的数据发生变化时,可以自动更新其他相关表中的数据,以保持数据的一致性。例如,当一个客户的联系方式在客户表中被更新时,可以自动更新与该客户相关的订单表中的联系方式。例如,有一个“学生表”和一个“成绩表”,通过学生的 ID 进行内连接,将只返回有成绩记录的学生信息。因此,在设计触发器时,应尽量避免复杂的逻辑和大量的计算,以减少对性能的影响。例如,可以使用子查询生成一个包含特定条件的产品列表,然后在外部查询中对这个列表进行进一步的操作。这意味着事务执行前后,数据库中的数据必须满足特定的约束条件。
2024-09-05 21:23:49
1415
原创 重头开始嵌入式第三十五天(网页设计)
Web 网页是通过互联网访问的文档,通常由 HTML(超文本标记语言)、CSS(层叠样式表)和 JavaScript 等技术构建而成。Web 网页具有以下特点:一、内容呈现1. 多媒体展示- 可以包含文本、图像、音频、视频等多种形式的内容,为用户提供丰富的信息和娱乐体验。- 例如,新闻网页会有文字报道、图片新闻以及相关的视频报道。2. 动态更新- 网页内容可以随时更新,保持信息的时效性。新闻网站、博客等经常会发布新的文章和资讯,用户每次访问都可能看到不同的内容。
2024-09-05 21:01:32
1314
原创 重头开始嵌入式第三十三天(数据库)
从管理角度来说,数据库提供了数据管理的功能,包括数据的插入、删除、修改和查询等操作。你可以根据特定的需求对数据库中的数据进行增删改查,以确保数据的准确性和完整性。数据库还具有数据独立性,即数据的存储结构和逻辑结构可以独立变化,而不会影响应用程序对数据的访问。insert into user1 values (2,'张三',23,datetime('now','+8 hours'));sqlite> insert into user3 (NULL,'李四',23,datetime('now'));
2024-09-04 17:31:48
1994
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅