RK3399 buildroot编译、重新编译、增量编译

Firefly rk3399烧录固件记录 1.下载boot失败 在Androidtool软件里面,默认分区配置为rk3399-ubuntu1804.cfg,如果要对Android进行分区烧写请右键倒入rk3399-Android81.cfg。 阅读详情

添加编译包

添加quectel-CM app

OK3399-linux-source$ ls app/quectel-CM
build.sh        ethtool-copy.h  main.c     MPQCTL.h  MPQMUX.h            QMIThread.c  quectel-CM            quectel-qmi-proxy    udhcpc.c          util.h
default.script  GobiNetCM.c     Makefile   MPQMI.h   NOTICE              QMIThread.h  quectel-mbim-proxy    quectel-qmi-proxy.c  udhcpc_netlink.c
device.c        libmnl          mbim-cm.c  MPQMUX.c  qmap_bridge_mode.c  QmiWwanCM.c  quectel-mbim-proxy.c  ReleaseNote.txt      util.c

在buildroot中添加配置文件

添加编译依赖
diff --git a/buildroot/package/forlinx/Config.in b/buildroot/package/forlinx/Config.in
index 59ad65d1d..0761d52e2 100644
--- a/buildroot/package/forlinx/Config.in
+++ b/buildroot/package/forlinx/Config.in
@@ -4,6 +4,7 @@ menuconfig BR2_PACKAGE_FORLINX

 if BR2_PACKAGE_FORLINX

+source "package/forlinx/quectel-CM/Config.in"
 source "package/forlinx/quectelCM/Config.in"
 source "package/forlinx/matrix-browser/Config.in"
 source "package/forlinx/forlinx-qt/Config.in"

添加配置文件和编译文件

buildroot/package/forlinx/quectel-CM/Config.in
config BR2_PACKAGE_QUECTEL_CM
        bool "QUECTEL-CM"
        help
          EC20 tool quectel-CM
buildroot/package/forlinx/quectel-CM/quectel-CM.mk
QUECTEL_CM_VERSION = 1.0
QUECTEL_CM_SITE = $(TOPDIR)/../app/quectel-CM
QUECTEL_CM_SITE_METHOD = local

QUECTEL_CM_LICENSE = Apache V2.0
QUECTEL_CM_LICENSE_FILES = NOTICE

define QUECTEL_CM_BUILD_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC=$(TARGET_CC)
endef

define QUECTEL_CM_INSTALL_TARGET_CMDS
        $(INSTALL) -D -m 0755 $(@D)/quectel-CM  $(TARGET_DIR)/usr/bin/quectel-CM
endef

$(eval $(generic-package))

需要注意的是配置文件中的config BR2_PACKAGE_QUECTEL_CM要和编译文件里的配置字段要匹配:

(*_QUECTEL_CM	对应	QUECTEL_CM_*)

在buildroot配置文件中添加app的编译选项

diff --git a/buildroot/configs/rockchip_rk3399_defconfig b/buildroot/configs/rockchip_rk3399_defconfig
index aebc92727..19c23513b 100644
--- a/buildroot/configs/rockchip_rk3399_defconfig
+++ b/buildroot/configs/rockchip_rk3399_defconfig
@@ -539,6 +539,7 @@ BR2_PACKAGE_LIBV4L_RKMPP=y
 # BR2_PACKAGE_RK_WEBUI is not set
 BR2_PACKAGE_CHROMIUM=y
 BR2_PACKAGE_FORLINX=y
+BR2_PACKAGE_QUECTEL_CM=y
 BR2_PACKAGE_QUECTELCM=y
 BR2_PACKAGE_MATRIX_BROWSER=y
 BR2_PACKAGE_FORLINX_QT=y

编译后查看编译结果:

OK3399-linux-source$ find buildroot/ -name "quectel-CM"
buildroot/package/forlinx/quectel-CM
buildroot/output/rockchip_rk3399/build/quectel-CM-1.0/quectel-CM
buildroot/output/rockchip_rk3399/target/usr/bin/quectel-CM
OK3399-linux-source$ ls buildroot/output/rockchip_rk3399/build/quectel-CM-1.0/ -a
.               device.c        main.c     MPQMI.h   qmap_bridge_mode.c  quectel-CM            quectel-qmi-proxy    .stamp_configured        udhcpc_netlink.c
..              ethtool-copy.h  Makefile   MPQMUX.c  QMIThread.c         quectel-CM-1.0.tar    quectel-qmi-proxy.c  .stamp_rsynced           util.c
build.sh        GobiNetCM.c     mbim-cm.c  MPQMUX.h  QMIThread.h         quectel-mbim-proxy    ReleaseNote.txt      .stamp_target_installed  util.h
default.script  libmnl          MPQCTL.h   NOTICE    QmiWwanCM.c         quectel-mbim-proxy.c  .stamp_built         udhcpc.c
.stamp_built							表示该源码已经被编译过
.stamp_configured						表示该源码已经被配置过
.stamp_rsynced							目测表示该源码已经被同步
.stamp_target_installed					表示该源码编译结果已经被安装,安装目录一般是target目录

还有几个类似的文件

.stamp_downloaded						表示该源码已经被下载过,如果没有此文件会重新进行下载
.stamp_patched							表示此文件已经打过补丁
.stamp_extracted						表示此文件已经被压缩过,一般该目录下会有个压缩包

重新编译

修改了buildroot中的内容后需要重新编译,如果编译过的某个package目录下有上面的这几个文件,该包就不会进行重新编译。
如果需要重新编译这个package,可以删除这几个文件,或者某个文件,使得某几个编译步骤重新执行。

e.g.
rm buildroot/output/rockchip_rk3399/build/libnspr-4.17/.stamp_*

不过实际过程中可能会有编译不过的情况出现,这个时候可以从其他路径下面拷贝需要的.stamp文件,这样就可以编译通过了。

或者可以执行make clean命令,清除output路径下的全部内容,不过重新编译的耗时会很长。

rk3399移植 u-boot (1) 基于迅为RK3399的开发板移植原厂 uboot ,记录 uboot 的移植的全过程,包括重点注意事项以及遇到的具体问题记录。 阅读详情

相关推荐

RK3566+Buildroot集成ffmpeg硬解实战指南

ffmpeg是嵌入式Linux中主流的多媒体处理框架,其硬件加速能力依赖于底层驱动、编译配置与系统环境的深度协同。在RK3566等ARM SoC平台上,单纯交叉编译或手动拷贝ffmpeg二进制文件往往失效,根本原因在于glibc/musl ABI不匹配、rkmpp驱动缺失及VPU设备节点权限错误。真正可靠的集成方式是通过Buildroot原生构建流程,在编译阶段统一管理内核、工具链、依赖库与ffmpeg配置,确保librockchip_mpp.so、drm、v4l2等关键组件全栈对齐。该方案不仅支持H.26

weixin_34293246的博客 362

一.Firefly RK3399 buildroot 板端配置

rk3399 SDK做的很完善了,里面直接有一个build.sh的脚本。脚本的某一处如下: RK_CFG_BUILDROOT板端的配置变量,在哪赋值的了,就是.BoardConfig.mk !/bin/bash # Target arch export RK_ARCH=arm64 # Uboot defconfig export RK_UBOOT_DEFCONFIG=rk3399 # Kernel defconfig export RK_KERNEL_DEFCONFIG=alpix_rk3399_li

qq_39971579的博客 3168

安全帽检测在RK3588边缘设备上的工业级落地实践

安全帽检测是工业视觉中典型的强约束目标检测任务,其核心不仅在于YOLO等模型的精度优化,更在于对真实作业环境(如光照变化、遮挡、反光、高温)的鲁棒性响应。该任务需融合头部关键点定位、颜色空间自适应校准、几何佩戴关系建模与抗干扰数据治理等多维技术能力。作为端侧AI部署的关键载体,RK3588凭借双VPU硬解+DMA零拷贝、NPU多模型并行调度、宽温低功耗(≤10W)及Linux嵌入式生态成熟度,成为工地、电厂等严苛场景下兼顾实时性(≤300ms)、稳定性与工程可维护性的首选平台。本文深入解析其从算法适配、模型

weixin_34259232的博客 269

RK3566调试EC20

sdk默认没选中,需要选择。然后点击save,最新的配置已保存到.config文件中了,需要将.config的内容覆盖编译所用的config文件,我编译所用的config文件为rockchip_linux_defconfig,那么执行cp .config arch/arm64/configs/rockchip_linux_defconfig。cd 到kernel目录,执行make ARCH=arm64 menuconfig,重新烧写boot.img,然后重启设备。然后重新编译kernel。

professionalmcu的专栏 2208

RK3588核心板实战:工业AI设备开发与YOLO模型部署全解析

在工业智能化浪潮中,边缘计算与嵌入式AI设备成为替代云端依赖的关键。传统的中央处理器(CPU)加通用计算架构难以满足低延迟、高可靠的本地推理需求,而NPU(神经网络处理单元)的设计则通过专用硬件加速卷积运算,让轻量级模型在设备端高效运行。工业视觉、缺陷检测、数据采集等场景往往要求兼顾性能与功耗,同时适应复杂的以太网、串口、CAN总线等外部接口。面对这一需求,具备多核CPU与独立NPU的嵌入式核心板逐渐成为选型焦点。RK3588核心板以四核A76与四核A55的大小核架构,搭配6TOPS的NPU算力,支持YOL

weixin_34392435的博客 304

GurumDDS:面向嵌入式实时场景的轻量级DDS中间件

Data Distribution Service(DDS)是一种面向分布式实时系统的发布-订阅通信标准,其核心原理是通过QoS策略保障数据传输的可靠性、时效性与确定性。在工业控制、自动驾驶仿真和边缘机器人等对低延迟、小内存、高确定性有严苛要求的领域,传统DDS实现常因依赖复杂、启动慢、资源占用高而难以落地。GurumDDS以零拷贝传输层、状态机驱动内核和极简C API为技术支点,将静态内存压缩至2.1MB以内、冷启动控制在80ms内,并原生支持Zephyr/FreeRTOS等轻量OS,显著提升资源受限设备

351

用Buildroot为RK3568构建定制Linux系统:从配置到部署

嵌入式Linux开发中,系统构建方式直接决定产品的可维护性和交付效率。面对芯片厂商庞大的SDK,开发者常被冗余组件和固化版本束缚。Buildroot作为轻量级构建工具,通过Kconfig配置和源码级管理,让开发者能精确控制内核、U-Boot、rootfs的每个细节。以瑞芯微RK3568为例,该平台四核A55处理器和丰富外设使其适合边缘计算与工业控制场景。借助Buildroot,可以高效完成从工具链选型、内核集成到分区烧录的全流程定制,并规避设备树、启动介质等常见坑点。这种“按需构建”的思路,不仅简化了版本管

weixin_33907511的博客 416

Whisper.cpp嵌入式部署指南:离线轻量语音识别实战

语音识别模型在资源受限设备上的落地,本质是计算、内存与功耗的系统性权衡。Whisper.cpp通过C/C++重构、静态图编译、4-bit量化(gguf格式)和纯CPU推理,将OpenAI Whisper从科研原型转化为可嵌入工业终端、信创设备与AI教具的确定性工具。其核心价值在于摆脱Python解释器依赖、规避GPU驱动栈、实现毫秒级可预测延迟,并支持SPI Flash分片加载、硬件看门狗集成与温度感知降频等工业级特性。相比原版,它牺牲少量WER换取资源可控性,成为车载本地唤醒、医疗方言归档、无网教室口语反

weixin_30615767的博客 354

RK3576嵌入式开发实战:从设备树到量产避坑指南

嵌入式Linux开发中,芯片选型与BSP适配往往决定项目成败。设备树作为硬件配置的核心描述文件,直接影响内核启动、外设驱动与系统稳定性,而动态调频、存储接口、显示栈等底层机制更需深入理解。RK3576作为中高端边缘计算平台,集成了四核A72与6T算力NPU,典型应用于边缘AI盒子、智能物联网网关等场景。其SDK复杂度较高,开发者常遇到DVFS电压配置不当、eMMC高速模式信号完整性、Mali GPU驱动版本不匹配等工程问题。本文基于真实项目复盘,梳理了从烧写启动到量产验证的完整链路,涵盖设备树调试、内核稳定

weixin_34166847的博客 342

ec20模块qmi_wwan拨号工具

ec20模块qmi_wwan拨号工具

BUSCO评估基因组的完整性

因为数据库收集的时候找的就是在不同的物种间都是单拷贝的基因,所以说在评估的物种里面应该也是单拷贝的状态才对。基因组层面评估:先去基因组上预测这些基因,再去做评估,如果说给他是一个注释好的基因集,这个时候提供的是一个蛋白集合,它就直接是去进行同源搜索,再去评估,看BUSCO数据库里面的这些单拷贝基因有或者无;首先,tblastn也是同源搜索,同源搜索之后,去对转录本进行读码框预测,预测完的结果还是去进行hmmsearch的搜索(hmmsearch是做蛋白质结构域搜索的),最终拿到BUSCO评估结果。

qq_64400864的博客 2954

aarch64平台Qt 5.14.2静态编译实战指南

静态链接是嵌入式Linux系统实现‘单二进制交付’的核心技术,其本质是在编译期将Qt库、C运行时及依赖模块(如OpenSSL、fontconfig)全部内联进可执行文件,消除运行时动态链接器依赖。该方案显著提升启动性能与环境兼容性,特别适用于无包管理、精简rootfs、musl或裁剪glibc的ARM64工业设备。技术关键在于交叉工具链可控构建、Qt源码级configure参数精准裁剪(如-no-icu、-openssl-linked、-sysroot),以及aarch64 ABI适配下的符号解析确定性。本

weixin_33858485的博客 509

USB-Type-C PCB布局布线设计规范

USB Type-C连接器有24个引脚。图1和图2分别显示了USB Type-C插座和插头的插针。母头/母座公头/插头可以很明显看出,插口内的Pin功能相对于中心对称。公头插入母头,无论正反插,引脚功能都完美契合。而且电源VBUS/GND都拥有4个Pin,最大支持5A电流,在保证高速数据传输的同时也提高了电流承载能力。表 1 和表 2 分别汇总了在 USB Type-C 型插座和插头上所使用的信号列表。

weixin_63005522的博客 8250

Qt 5.14.2 AArch64静态交叉编译实战:从零搭建到部署

交叉编译是嵌入式Linux开发中不可或缺的基础技能,它允许开发者在x86主机上构建适用于ARM等目标架构的二进制程序。其核心原理是借助交叉工具链与sysroot,在隔离的依赖环境中编译出目标平台可运行的镜像。对于Qt应用而言,采用静态交叉编译可显著降低目标板运行库依赖,规避动态库版本冲突,提升部署效率与稳定性。在工业HMI、医疗仪器等环境受限的ARM板卡(如RK3399)上,这一技术尤其重要,能实现单文件交付与快速迭代。本文以Qt 5.14.2为例,系统演示aarch64架构下的静态交叉编译全过程,包括工具

weixin_34348805的博客 221

从DBC到ARXML:用RTA-CAR7实现车载通信协议栈自动化生成全流程

本文详细介绍了如何利用ETAS RTA-CAR7工具链,特别是ISOLAR-A和RTA-BSW ConfGen,实现从车载通信DBC文件到AUTOSAR ARXML系统描述文件,再到基础软件(BSW)协议栈代码的自动化生成全流程。该流程通过深度配置、信号路由、PDU复用及规则定制,大幅提升开发效率与一致性,是应对现代汽车电子复杂网络开发的关键实践。

brandy的博客 213

colmap+openMVS稠密重建

简要记录一下colmap+openMVS稠密重建相关使用。

weixin_41631106的博客 2235

Qt 5.14.2 aarch64 静态交叉编译实战指南

静态链接是嵌入式 Linux 应用实现单文件交付、零依赖部署的核心技术路径。其本质是将 Qt 运行时、C/C++ 标准库及第三方依赖(如 zlib、freetype)全部编译进可执行文件,规避动态库缺失、ABI 不兼容与启动延迟等问题。该方案特别适用于 ARM64 架构的工业 HMI、边缘网关等资源受限场景,需协同交叉编译工具链、精准 sysroot 和定制化 configure 参数完成构建。本文聚焦 Qt 5.14.2 版本,在 aarch64-linux-gnu 工具链下实现稳定、可复现的静态 Qt

weixin_34221112的博客 487

ArcGIS遥感影像分类技术在植被覆盖度计算中的应用

本文详细介绍了如何利用ArcGIS遥感影像分类技术高效计算植被覆盖度。通过数据准备、监督与非监督分类方法详解,并结合制表分析与栅格计算器进行面积统计,最终实现从分类图到覆盖度百分比的全流程自动化与可视化,为生态评估与规划提供精准数据支持。

weixin_29091445的博客 417

Qt 5.14.2 aarch64 静态交叉编译实战手册

Qt 是跨平台 C++ 图形用户界面框架,静态交叉编译指在 x86_64 宿主机上生成不依赖目标系统动态库的 aarch64 可执行文件。其核心原理是将 Qt 库、C/C++ 运行时及所有依赖(如 ICU、fontconfig、OpenGL ES)以静态归档(.a)形式链接进单一二进制,彻底规避目标板缺失 libQt5Core.so.5 或 libc.so.6 等运行时错误。该技术显著提升嵌入式部署鲁棒性,适用于 RK3399、Jetson Nano 等 ARM64 工控设备,尤其在只读 rootfs、离线

weixin_33850015的博客 402

我写了一个自动识别火车车厢位置的算法【lidar点云识别】

我写了一个自动识别火车车厢位置的算法【lidar点云识别】

qq_43212290的博客 793

基于STM32L4XX、HAL库的ESP32-S3-WROOM-1-N4 WIFI模块驱动程序设计

/ 检查是否收到完整的一行(以\r\n结尾)// 例如: 解析AT命令响应或MQTT消息等。// UART2初始化已在CubeMX中配置。// USART2初始化函数(由CubeMX生成)// 缓冲区溢出,重置。// 如果需要等待响应。// 处理接收到的数据。// 处理接收到的数据。// 等待ESP32模块启动。// 主循环其他任务。// 启用UART全局中断。// 发送HTTP GET请求。// 发送AT测试命令。// 连接Wi-Fi。// UART中断回调函数。

zhusl6688的博客 283

Qt Creator嵌入式Linux远程调试实战指南

嵌入式Linux调试本质上是符号级程序行为分析过程,其核心在于构建宿主机与目标板之间的跨架构调试通道。原理上依赖GDB协议栈(gdbserver + gdb client)、完整调试符号映射及路径重定向机制,技术价值体现在精准定位多线程死锁、QML绑定异常、动态库加载失败等printf无法覆盖的深层问题。典型应用场景包括ARM Cortex-A系列板卡上的Qt Widgets/QML应用开发、Buildroot/Yocto系统集成及资源受限环境下的内存与信号量调试。本文聚焦Qt Creator远程调试闭环配

weixin_33845881的博客 287

飞牛fnNAS虚拟机开启OVS导致失联的解决

摘要:用户在使用飞牛NAS时发现开启OVS网络功能后导致NAS失联。通过多种尝试(包括开关OVS、更换系统版本、手工配置、更换网卡、处理器检查等)后发现,OVS启用状态下DHCP无法获取IP地址,手动设置IP可暂时恢复网络。但重启后问题依旧,初步判断为OVS功能存在bug。目前临时解决方案是在需要时手动开关OVS,或考虑其他虚拟化方案。用户计划后续探索替代方案,并等待官方修复该问题。

dgnankai的专栏 4325

buildroot 修改包源代码后重新编译【转】

使用buildroot构建rootfs十分的方便,由于实际需要常常需要修改一些包的源码来添加一些自定义功能,修改源码之后怎么操作才能让buildroot重新编译这个包呢。 本帖最后由 shiyigudong 于 2012-07-16 14:54 编辑 最近使用buildroot制作编译环境,文件系统。使用过程当中有许多注意点。今天的一点注意记录如下: 使用buildroot则样重新编译某一个包。比如说我们在某一个包里修改了代码,怎么重新编译呢。 我使用的是buildroot-2012

Lenz_s_law的开发记录本 3677

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

3.6 RK3399项目开发实录-板载Buildroot 系统的使用(wulianjishu666)

瑞芯微RK3399开发笔记,欢迎点赞收藏。

vx349014857的博客 1972

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Buildroot for RK3399/zh

1Buildroot简介 Buildroot是Linux平台上一个构建嵌入式Linux系统的框架,由Makefile脚本和Kconfig配置文件构成,旨在简化系统制作步骤,可实现一站式生成可烧写的系统固件,最终的固件包含boot-loader、kernel和rootfs,以及rootfs中的各种库和应用程序 (例如qt, gstreamer, busybox等)。 由 FriendlyELEC...

yufeng1108的专栏 4464

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 通用接口(1)——GPIO控制
下一篇: uboot基础(1)——uboot shell(RK3399)
横山郡守
博客等级 码龄11年 9941粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值