课程大纲

    开始 获取 Buildroot 构建系统要求 交叉编译器术语:build、host、target、sysroot 选择正确的目标 构建一个最小的嵌入式系统并启动它 生成的文件系统映像的内容 并行构建 完全和部分重建
Buildroot 的设计目标
  • 需要做出的选择 C 库:glibc 还是 uClibc 还是 musl?
  • 初始化系统:busybox vs sysVinit vs systemd
  • 在 /dev 中管理设备节点
  • 选择其他软件包
  • 了解构建说明 Kconfig (Confog.in) 文件的语法
  • Buidroot Makefiles 使用的 GNU Make 的功能
  • Config.in 和 *.mk 文件的样式指南
  • 如何添加基于 Autotools 的简单软件包
  • 暂存目录和目标目录的区别
  • 对主机包的需求
  • 如何表达依赖关系和可选功能
  • 支持 C 以外的语言和 Autotools 以外的构建系统
  • 调试 Makefile
  • 重新生成单个包
  • 分析生成结果 是什么花费了这么多的构建时间?
  • 是什么占用了这么多磁盘空间?
  • 为什么要构建这个包?
  • 组织外部包树
  • 面向应用程序开发人员的工作流程 如何使用本地源目录
  • 覆盖构建说明
  • 调试应用程序
  • 加快重建速度
  • 查看构建日志
  • 处理常见的交叉编译问题 如何编写自己的软件,使其对交叉编译器友好
  • 内核开发人员的工作流程 内核如何在嵌入式系统上引导
  • 更改配置选项和添加补丁
  • 模块加载机制
  • 制作成品 在启动时运行守护程序
  • 提供自定义配置文件
  • 可用的固件更新机制
  • 升级到新的 Buildroot 版本
  • 遵守开源许可证
  • 要求

    • 参与者必须至少为传统桌面(非嵌入式)Linux系统构建过一次内核。
    • 知道桌面系统上的 Linux 用户空间由哪些组件组成。
    • 知道如何生成和使用补丁。
    • 必须能够解释什么是GNU Make,Autotools,还有哪些其他构建系统存在。
    • 理想情况下,至少维护一个 Linux 包,无论是作为上游作者,还是在任何传统的 Linux 桌面发行版中。
    • 不需要嵌入式开发经验,并且不能替代上述有关传统 Linux 桌面的知识。
     7 小时

    人数


    每位参与者的报价