OpenBMC 应用远程调试
由于 qemu 模拟的 romulus 机器性能太差,且内存最大只能设置 1G,如果直接进行本地调试基本上 gdb 进程直接就 oom 被杀掉了。
OpenBMC debug build
为了进行 gdb 调试,构建调试版本是前提,可以通过定义 `DEBUG_BUILD` 来启用调试版本的构建。
OpenBMC 修改 flash 大小
romulus 机器默认的 32M flash 实在是太小,几乎就没有多少剩余空间,这对于在 Qemu 环境下进行 BMC 程序的开发调试很不方便,因此有必要把这个大小稍微调整一下。
OpenBMC v2.8 启用 NFS 客户端支持
尝试在 OpenBMC 上调试程序时如果要上传带符号信息的可执行文件,那么会发现 flash 空间远远不够,因此使用 NFS 是很自然的选择,不过在 OpenBMC v2.8 上启用 NFS 客户端支持也不是那么简单的事情。
OpenBMC 构建 systemd 出错
构建 devtool modify checkout 出来的 systemd 时出现了静态断言,稍微分析了一下导致错误的原因。
OpenBMC v2.8 devtool
在 Ubuntu 20.04 docker 环境构建 OpenBMC v2.8 时遇到了一个 devtool 使用的问题,记录一下。
OpenBMC devtool
devtool 是 OpenBMC 提供的一个工具,可以用于辅助本地的开发验证工作。
OpenBMC cross compile toolchain
如果只是简单的 C/C++ 代码需要验证,那么写一个 recipe 显得稍微有点麻烦,但是 OpenBMC 并没有提供简单的方法提供一套完整的交叉编译工具链。
bitbake 调试运行
bitbake 的多进程架构导致调试变的不是很方便,从而对于理解 bitbake 的运行原理不是很友好。
使用 docker 容器进行 OpenBMC 构建
尝试在 ArchLinux 上构建 OpenBMC v2.8 版本,发现由于工具链差异太大导致错误太多,最终只得采用 docker 容器的方式进行构建。