什么是buildroot

Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。

buildroot目录结构

1.buildroot/package/下面放着应用软件的配置文件,每个应用软件的配置文件有Config.in和soft_name.mk其中soft_name.mk(这种其实就Makefile脚本的自动构建脚本)文件可以去下载应用软件的包。
2.buildroot/output/是编译出来的输出文件夹,里面的build/目录存放着解压后的各种软件包编译完后的现场。host/目录放着制作好的编译工具链,target/ 目录是用来制作rootfs的,里面放着Linux系统基本的目录结构,以及各种编译好的应用库和bin可执行文件。Images/目录下就是最终生成的可烧写到板子上的各种image。
3.buildroot/dl存放下载的源码包及应用软件的压缩包
4.buildroot/fs放各种文件系统的源代码
5.buildroot/fs/skeleton放生成文件系统镜像的地方,及板子里面的系统
6.buildroot/linux/ 存放着Linux kernel的自动构建脚本。
7.buildroot/configs放置开发板的一些配置参数,
8.buildroot/dl/目录存在从官网上下载的开源软件包,第一次下载后,下次就不会再去从官网下载了,而是从dl/目录下拿开源包,以节约时间。
9.buildroot/docs/ 存放相关的参考文档。
10.buildroot/arch/ 目录存放CPU架构相关的配置脚本,如arm/mips/x86 ,这些CPU相关的配置,在制作工具链,编译boot和内核时很关键。

buildroot工作原理

Buildroot原则上是一个自动构建框架,虽然说u-boot、linux kernel这些经典的开源软件包的构建脚本,官方社区都在帮你实现了,但是有时候你还是需要加入你自己特有的app_pkg软件包,用以构建自己的应用。
Buildroot提供了函数框架和变量命令框架(下一篇文章将介绍细节),采用它的框架编写的app_pkg.mk这种Makefile格式的自动构建脚本,将被package/pkg-generic.mk 这个核心脚本展开填充到buildroot主目录下的Makefile中去。最后make all执行Buildroot主目录下的Makefile,生成你想要的image。

package/pkg-generic.mk中通过调用同目录下的pkg-download.mk、pkg-utils.mk文件,已经帮你自动实现了下载、解压、依赖包下载编译等一系列机械化的流程。你只要需要按照格式写Makefile脚app_pkg.mk,填充下载地址,链接依赖库的名字等一些特有的构建细节即可。

总而言之,Buildroot本身提供构建流程的框架,开发者按照格式写脚本,提供必要的构建细节,配置整个系统,最后自动构建出你的系统。

buildroot/packages里面有丰富的应用软件的配置文件,可以通过make menuconfig,出现图形化界面进行选择丰富的开源软件包的编译和构建。

buildroot认知相关推荐

  1. buildroot:Linux平台构建嵌入式Linux系统的框架

    buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和编译Linux内核一样,通过buildro ...

  2. Linux | buildroot使用介绍

    buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和编译Linux内核一样,通过buildro ...

  3. Buildroot 介绍

    buildroot使用介绍 - ArnoldLu - 博客园 (cnblogs.com) buildroot使用介绍 buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Bui ...

  4. 《OpenCV3编程入门》学习笔记2 启程前的认知准备

    第2章 启程前的认知准备 2.1 OpenCV 官方例程引导与赏析 位置:-\opencv\sources\samples\cpp 2.1.1彩色目标跟踪:Camshift (Continuously ...

  5. buildroot httpd php

    /********************************************************************* buildroot httpd php* 说明:* 在bu ...

  6. IBM全面拥抱Linux,为“认知商业”提供POWER

    ZD至顶网服务器频道 03月03日 新闻消息(文/于泽):3月1日,IBM开年大会--IBM论坛2016盛大开启."认知商业"是IBM此次提出并覆盖未来一段时间的目标或者愿景,等同 ...

  7. 2018-3-9 论文(网络评论中非结构化信息表示与研究)笔记---模糊认知图的形式化表示

    定义: 模糊认知图_百度百科 https://baike.baidu.com/item/%E6%A8%A1%E7%B3%8A%E8%AE%A4%E7%9F%A5%E5%9B%BE/20881975?f ...

  8. Cognitive Inference:认知推理下的常识知识库资源、常识推理测试评估与中文实践项目索引...

    作者 | 刘焕勇 责编 | 李雪敬 出品 | CSDN博客 CognitiveInference Cognitive Inference,认知推理.常识知识库.常识推理与常识推理评估的系统项目,以现有 ...

  9. 认知推理下的常识知识库资源、常识测试评估与中文实践项目索引

    作者 | 刘焕勇 责编 | 李雪敬 出品 | CSDN博客 Cognitive Inference Cognitive Inference,认知推理.常识知识库.常识推理与常识推理评估的系统项目,以现 ...

最新文章

  1. 【Leetcode】刷题之路2(python)
  2. 【ACM】杭电OJ 1241(深度优先搜索小结)
  3. 福特数据总监:汽车业的大数据框架如何构建?
  4. Qt creator5.7 OpenCV249之中值滤波(含源码下载)
  5. 使用 jsfl 发布flash IDE 插件
  6. 初学python-练习_4使用python编写本地登录程序(带注册)
  7. CentOS 7 下的LVM 实战
  8. Objective C类方法load和initialize的区别
  9. 虚拟DOM和DIFF算法的理解
  10. OrCAD设计原理图
  11. mapxtreme 2005 v6.6 破解
  12. 小白理解transformer解析博客
  13. 最全的期货交易术语在这里
  14. 怎么申请https证书
  15. 以太网 STP临时环路的产生、STP BPDU的转发过程、根桥故障案例分析。
  16. C语言:初学者2--求π的值(3种方法)
  17. CTF一百题/10之菜狗陈海
  18. Ajax(jQuery封装),表单form提交(Ajax),art-template模板引擎,原生Ajax,XML和JSON,axios,跨域和JSONP,防抖和节流,HTTP协议
  19. 看完这妹纸的日更作业,网友直呼:中国计算机界的神!
  20. 跨境电商竞争格局头部化,中小平台如何突围?

热门文章

  1. mysql如何查看远程用户_MySQL系列(十)--用户权限及远程访问
  2. MT9V034摄像头学习笔记(二)
  3. 制作无后端的静态网页
  4. 【源代码】一键分享各个社交平台_android
  5. 为什么湾区程序员买不起房?
  6. yara 源码学习(三)  扫描部分
  7. 【愚公系列】2021年12月 攻防世界-简单题-CRYPTO-010(转轮机加密)
  8. 2022年注册会计师(CPA)考试精选试题及答案
  9. 【Oracle】高级查询练习题详解
  10. Android | 教你如何在安卓上实现二代身份证识别,一键实名认证