0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Firefly-PX3-SE主板Buildroot开发

firefly 来源:firefly 作者:firefly 2019-12-04 08:33 次阅读
Buildroot开发
SDK目录

SDK工程目录介绍:

工程目录下有 buildroot、 app、 kernel、 u-boot、 device、 external、prebuilts、rockimg、tools 等目录。

  • buildroot:用于生成根文件系统、交叉编译工具以及相关工具和应用的管理;
  • app:存放上层应用 app;
  • external :相关库,包括音频视频网络等;
  • kernel::kernel 代码;
  • device/rockchip/px3-se:存放开机初始化脚本,存放第三方库、 bin、 alsa、wifi等配置文件;另还存放编译脚本;
  • prebuilts:存放编译 kernel 需要的 gcc 和交叉编译工具 toolschain;
  • rockimg:存放编译输出固件;
  • tools:存放平台工具。
Buildroot开发

当前Buildroot版本为Buildroot 2016.08.1

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

整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样。

$ make menuconfig

配置界面如下:

在Target packages里面添加和裁剪一些工具,按需求定制系统功能,常用到的qt5、ssh、vsftpd、wpa_supplicant、pppd等都可在里面配置。

需要了解的是:

  • 进行编译时,buildroot根据配置,会自动从网络获取相关的软件包,包括一些第三方库,插件,实用工具等,放在dl/目录。
  • 软件包会解压在output/build/目录下,然后进行编译。
  • 如果要修改软件包的源码,可以通过打补丁的方式进行修改,补丁集中放在package/目录,buildroot会在解压软件包时为其打上相应的补丁。
编译Buildroot

Buildroot配置好后,可以直接运行make进行编译。

但是SDK下的app、device等目录将不会被编译到,所以配置完后,最好回到SDK根目录,执行./build_all.sh进行编译。

如果在开发过程中,针对output/build/某个包源码进行了修改,需要单独重新编译该软件包,直接编译Buildroot是不起效果的。

Buildroot在编译某个包的时候,会将编译的过程,通过一些标志文件记录下来,保存在对应的软件包源码的目录里,这些标志文件分别有:

.stamp_configured .stamp_downloaded .stamp_extracted .stamp_patched .stamp_staging_installed .stamp_target_installe

这些标识文件主要控制这个软件包的下载,解压,打包,配置,编译,安装等。具体详细说明可参考:

docs/manual/rebuilding-packages.txt

也可以直接看mk文件,了解原理:

package/pkg-generic.mk

要想重新执行哪一个步骤,相应的就要删掉其对应的标志文件。假如你想重新编译某软件包源码,只需删掉该目录下的.stamp_built和.stamp_target_installed,然后再编译整个Buildroot就可以了。

当然,Buildroot有更快捷的实现方法。

  • 执行make show-targets显示出本次配置所要编译所有的目标,即packages。
  • 执行make 将构建并安装该软件包及其依赖项。

同时我们还可以通过make -,对软件包单独调用构建中的某一步骤,如下:

Package-specific: <pkg> - Build and install <pkg> and all its dependencies <pkg>-source - Only download the source files for <pkg> <pkg>-extract - Extract <pkg> sources <pkg>-patch - Apply patches to <pkg> <pkg>-depends - Build <pkg>'s dependencies <pkg>-configure - Build <pkg> up to the configure step <pkg>-build - Build <pkg> up to the build step <pkg>-graph-depends - Generate a graph of <pkg>'s dependencies <pkg>-dirclean - Remove <pkg> build directory <pkg>-reconfigure - Restart the build from the configure step <pkg>-rebuild - Restart the build from the build step

因此,如果我们想重新编译xxx软件包,执行make xxx-rebuild即可。

关于make的更多用法,可通过make help获得。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11222

    浏览量

    208888
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35201
  • Firefly
    +关注

    关注

    2

    文章

    538

    浏览量

    6983
  • Buildroot
    +关注

    关注

    1

    文章

    48

    浏览量

    1384
收藏 人收藏

    评论

    相关推荐

    ROC-RK3568-PC的Buildroot开发案例分享

    ROC-RK3568-PC 的 Buildroot 开发为例进行阐述。  交叉编译 Qt-5.12.2  若您想在 Firefly 官方发布的 Buildroot 系统上进行 Qt
    发表于 10-25 17:08

    fireflyPX3-SE开发板 介绍

    采用PX3-SE四核处理器,主频高达1.3GHz,工业级的稳定性,工作温度-20℃ ~ 80℃。Firefly-PX3-SE采用底板和核心板组合方式,核心板具有多种配置可选,轻松控制成本,极低的成本与优秀的性能让产品极具性价比
    的头像 发表于 11-15 14:36 1666次阅读
    fireflyPX<b class='flag-5'>3-SE</b><b class='flag-5'>开发</b>板 介绍

    Firefly-PX3-SE主板FAQ方案

    FAQ 开机异常卡死或重启 可能是电源电流不够,请使用电压为 5V,电流为 2.5A~3A 的电源 系统用户名和密码 用户:root 密码:123 多U盘挂载问题 目前Firefly-PX3-SE
    的头像 发表于 11-29 09:29 1127次阅读
    <b class='flag-5'>Firefly-PX3-SE</b><b class='flag-5'>主板</b>FAQ方案

    Firefly关于PX3-SE程序SSH使用介绍

    SSH是很常用的工具,几乎是每一台Linux电脑的标准配置,因此我们为了开发方便,在Buildroot中默认配置好了SSH,联网即用。
    的头像 发表于 11-29 09:43 1713次阅读
    <b class='flag-5'>Firefly</b>关于<b class='flag-5'>PX3-SE</b>程序SSH使用介绍

    Firefly-PX3-SE系统ADB介绍

    ADB,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志,上传下载文件,安装应用等。
    的头像 发表于 11-29 10:03 1142次阅读
    <b class='flag-5'>Firefly-PX3-SE</b>系统ADB介绍

    Firefly关于PX3-SE系统Qt介绍

    Firefly-PX3-SEBuildroot系统,目前支持三种Qt版本
    的头像 发表于 11-29 09:49 2506次阅读
    <b class='flag-5'>Firefly</b>关于<b class='flag-5'>PX3-SE</b>系统Qt介绍

    Firefly-PX3-SE主板音频输入输出介绍

    Firefly-PX3-SE有三路音频输出、两路音频输入。
    的头像 发表于 12-02 15:15 1913次阅读

    Firefly-PX3-SE--WIFI模块及以太网简介

    关于Firefly-PX3-SE网络的使用,目前在设置app里面只能使用WiFi以及WIFI热点功能,以太网功能暂时还没添加。
    的头像 发表于 12-02 16:56 1430次阅读

    Firefly-PX3-SE编译根文件系统简介

    编译根文件系统 准备工作 编译 Buildroot 对机器的配置的要求
    的头像 发表于 12-04 08:32 1429次阅读

    Firefly-PX3-SE核心板MaskRom模式

    MaskRom 模式是设备变砖的最后一条防线。强行进入 MaskRom 涉及硬件操作,有一定风险,因此仅在设备进入不了 Loader 模式的情况下,方可尝试 MaskRom 模式。
    的头像 发表于 12-03 15:48 1023次阅读
    <b class='flag-5'>Firefly-PX3-SE</b>核心板MaskRom模式

    Firefly-PX3-SE主板启动介绍

    Firefly-PX3-SE 有灵活的启动方式。
    的头像 发表于 12-04 08:36 1491次阅读

    Firefly-PX3-SE烧录升级固件

    本文介绍了如何将主机上的固件文件,通过 Micro USB OTG 线,烧录到开发板的闪存中。
    的头像 发表于 12-04 08:39 2408次阅读

    Firefly-PX3-SE主板串口介绍

    Firefly-PX3-SE 开发板的调试串口与 TF 卡接口有信号引脚复用,因此无法同时使用。
    的头像 发表于 12-04 08:49 1650次阅读
    <b class='flag-5'>Firefly-PX3-SE</b><b class='flag-5'>主板</b>串口介绍

    fireflyROC-RK3308B主板CC-Buildroot开发简介

    Buildroot开发 Buildroot开发基础 Buildroot版本
    的头像 发表于 12-20 09:18 2180次阅读
    fireflyROC-RK3308B<b class='flag-5'>主板</b>CC-<b class='flag-5'>Buildroot</b><b class='flag-5'>开发</b>简介

    Core PX3 SEJ固件Buildroot系统

    电子发烧友网站提供《Core PX3 SEJ固件Buildroot系统.txt》资料免费下载
    发表于 09-16 10:42 0次下载
    Core <b class='flag-5'>PX3</b> SEJ固件<b class='flag-5'>Buildroot</b>系统