rk356x 关于yocto编译linux及bitbake实用方法
Yocto 完整编译
source oe-init-build-envbitbake core-image-minimal
Yocto 查询包名
bitbake -s | grep XXX
// 获取rockchip相关包
:~/rk3568/yocto$ bitbake -s | grep rockchip
android-tools-conf-rockchip :1.0-r0
gstreamer1.0-rockchip :1.0-r0
linux-rockchip :5.10-r0 :4.19-r0
rockchip-alsa-config :1.0-r0
rockchip-libmali :1.0-r0
rockchip-librga :1.0-r0
rockchip-mpp :1.0-r0
rockchip-npu :1.0-r0
rockchip-rkaiq :1.0-r0
udev-conf-rockchip :1.0-r0
Yocto 确定包的源码目录
// 从包名确认内核名为linux-rockchip
:~/rk3568/yocto$ bitbake -e linux-rockchip | grep ^S=
S="/homexx/yocto/rk3568/yocto/build/tmp/work-shared/roc-rk3568-pc/kernel-source"
Yocto 确定包的下载地址
:~/rk3568/yocto$ bitbake -e linux-rockchip | grep ^SRC_URI=
SRC_URI=" git://gitlab.com/firefly-linux/kernel.git;protocol=https;nobranch=1;branch=rk356x/firefly; file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/files/cgroups.cfg file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/files/ext4.cfg file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/linux-rockchip_4.19/0001-perf-bench-Share-some-global-variables-to-fix-build-.patch file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/linux-rockchip_4.19/0002-perf-parse-events-Use-asprintf-instead-of-strncpy-to.patch file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/linux-rockchip_4.19/0003-perf-tests-bp_account-Make-global-variable-static.patch file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/linux-rockchip_4.19/0004-libtraceevent-Fix-build-with-binutils-2.35.patch file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/linux-rockchip_4.19/0005-init-do_mounts.c-Retry-all-fs-after-failed-to-mount-.patch file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/linux-rockchip_4.19/0006-HACK-drm-rockchip-Force-enable-legacy-cursor-update.patch file:///home4/yocto/rk3568/yocto/build/../meta-rockchip/recipes-kernel/linux/linux-rockchip_4.19/0007-HACK-drm-rockchip-Prefer-non-cluster-overlay-planes.patch"
Yocto 编译内核
bitbake linux-rockchip -C compile
输出目录:build/tmp/deploy/images/
Yocto 查询当前recipe哪些tasks可执行
bitbake linux-rockchip -c listtasks
···
do_config_analysis
do_configure Configures the source by enabling and disabling any build-time and configuration options for the software being built
do_deploy Writes deployable output files to the deploy directory
do_deploy_setscene Writes deployable output files to the deploy directory (setscene version)
do_deploy_source_date_epoch
do_deploy_source_date_epoch_setscene (setscene version)
do_devpyshell Starts an interactive Python shell for development/debugging
do_devshell Starts a shell with the environment set up for development/debugging
do_diffconfig Compares the old and new config files after running do_menuconfig for the kernel
do_fetch Fetches the source code
do_fixup_wks
do_install Copies files from the compilation directory to a holding area
do_kernel_checkout Checks out source/meta branches for a linux-yocto style kernel
do_kernel_configcheck Validates the kernel configuration for a linux-yocto style kernel
do_kernel_configme Assembles the kernel configuration for a linux-yocto style kernel
do_kernel_link_images Creates a symbolic link in arch/$arch/boot for vmlinux and vmlinuz kernel images
do_kernel_metadata
···
Yocto recipe 说明
在 Yocto 中,有几种不同类型的 recipe,其中两种主要的是 Package recipe 和 Image recipe。
- Package recipe:
Package recipe 用于定义如何构建一个软件包。它包括了软件包的元数据(比如名称、版本、许可证等)以及构建软件包所需的步骤(比如下载源码、配置、编译、安装等)。Package recipe 的文件扩展名通常是 .bb,例如 foo_1.0.bb。Package recipe 可以被其他 recipe 继承或扩展,以添加额外的配置或修改构建过程。 - Image recipe:
Image recipe 用于定义如何构建一个完整的镜像,包括了操作系统的核心组件、用户空间工具、库以及其他资源。Image recipe 定义了如何从各种软件包中组装这些组件,并将它们打包成一个可用于在目标设备上运行的镜像文件。Image recipe 的文件扩展名通常是 .bb,例如 myimage.bb。Image recipe 也可以被其他 recipe 继承或扩展,以添加额外的配置或修改构建过程。
参考:
-
bitbake手册
bibake官方手册 -
yocto
rk3588平台构建一个基础镜像
什么是yocto
yocto使用技巧
yocto项目将编译目标安装到rootfs的过程
相关文章:
rk356x 关于yocto编译linux及bitbake实用方法
Yocto 完整编译 source oe-init-build-envbitbake core-image-minimalYocto 查询包名 bitbake -s | grep XXX // 获取rockchip相关包 :~/rk3568/yocto$ bitbake -s | grep rockchip android-tools-conf-rockchip :1.0-r0 gstreamer1.0-rockchip …...
Chrome您的连接不是私密连接 |输入“thisisunsafe”命令绕过警告or添加启动参数
一、输入 thisisunsafe 在当前页面用键盘输入 thisisunsafe ,不是在地址栏输入(切记),就直接敲键盘就行了 因为Chrome不信任这些自签名ssl证书,为了安全起见,直接禁止访问了,thisisunsafe 这个命令,说明你…...
牛客面试前端1
HTML语义化 是什么 前端语义化是指在构建网页时多使用html语义化标签布局,多使用带有语义的标签如header,aside,footer等标签为什么 结构清晰利于开发者开发与维护 有利于seo搜索引擎优化 有利于在网络卡顿时,正常显示页面结构&a…...
Linux的软件包管理器-yum
文章目录 软件包的概念yum源的配置的原因yum的使用查看软件包安装软件卸载软件 软件包的概念 软件包(SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。可分为应用软件包和系统软件包两大类 在Linux系统中,下载安装软件的方式…...
选择排序(Selection Sort)
选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理如下: 遍历数组:从待排序的数列中,找到当前未排序部分(即整个数组或已排序部分之后的部分)中的最小(或最大,取决于排序方式)元素。 交换位置:将找到的最小元素与未排序部分的第一个元素交换位置,这…...
网络面试题目
1、BGP报文有哪些? 有5种报文,Open、 Update、 Notification、 Keepalive和 Route-refresh等5种报文类型。 2、Vxlan了解多少? VLAN作为传统的网络隔离技术,VXLAN完美地弥补了VLAN的上述不足。 VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),(VXL…...
Web,Sip,Rtsp,Rtmp,WebRtc,专业MCU融屏视频混流会议直播方案分析
随着万物互联,视频会议直播互动深入业务各方面,主流SFU并不适合管理,很多业务需要各种监控终端,互动SIP硬件设备,Web在线业务平台能相互融合,互联互通, 视频混流直播,录存直播推广&a…...
Unreal 编辑器工具 批量重命名资源
右键 - Editor Utilities - Editor Utility Blueprint,基类选择 Asset Action Utility 在类默认值内,可以添加筛选器,筛选指定的类型 然后新建一个函数,加上4个输入:ReplaceFrom,ReplaceTo,Add…...
Voice Conversion、DreamScene、X-SLAM、Panoptic-SLAM、DiffMap、TinySeg
本文首发于公众号:机器感知 Voice Conversion、DreamScene、X-SLAM、Panoptic-SLAM、DiffMap、TinySeg Converting Anyones Voice: End-to-End Expressive Voice Conversion with a Conditional Diffusion Model Expressive voice conversion (VC) conducts speak…...
短信群发平台分析短信群发的未来发展趋势
短信群发平台在当前的移动互联网时代已经展现出了其独特的价值和广泛的应用场景。随着技术的不断进步和市场的不断变化,短信群发的未来发展趋势也将呈现出一些新的特点。 首先,随着5G网络的推广和普及,短信群发的速度和稳定性将得到进一步提…...
supervisord 使用指南
supervisord 使用指南 supervisord的安装 supervisor是一系列python脚本文件,以python package的形式管理,可以用于UNIX类系统的进程管理。 安装supervisor也相当简单,只需要用pip安装即可。 sudo pip install supervisor但是有可能将其安…...
AngularJS 的生命周期和基础语法
AngularJS 的生命周期和基础语法 文章目录 AngularJS 的生命周期和基础语法1. 使用步骤2. 生命周期钩子函数3. 点击事件4. if 语句1. if 形式2. if else 形式 5. for 语句6. switch 语句7. 双向数据绑定 1. 使用步骤 // 1. 要使用哪个钩子函数,就先引入 import { O…...
docker-compose 网络
自定义网络 - HOST 与宿主机共享网络 version: "3" services:web:image: nginx:1.21.6restart: alwaysports:- 80:80network_mode: host自定义网络 - 固定ip version: "3" services:web:image: nginx:1.21.6restart: alwaysports:- 80:80networks:app&am…...
农药生产厂污废水如何处理达标
农药生产厂的污废水处理是确保该行业对环境的负面影响最小化的重要环节。下面是一些常见的处理方法和步骤,可以帮助农药生产厂的污废水达到排放标准: 预处理:将废水进行初步处理,去除大颗粒悬浮物和固体残渣。这可以通过筛网、沉淀…...
根据相同的key 取出数组中最后一个值
数组中有很多对象 , 需根据当前页面的值current 和 数组中的key对比 拿到返回值 数据结构如下 之前写法 const clickedItem routeList.find(item > item.key current) // current是当前页 用reduce遍历数组返回最后一个值 const clickedItem routeList.reduce((lastIte…...
Github Action Bot 开发教程
Github Action Bot 开发教程 在使用 Github 时,你可能在一些著名的开源项目,例如 Kubernetes,Istio 中看到如下的一些评论: /lgtm /retest /area bug /assign xxxx ...等等,诸如此类的一些功能性评论。在这些评论出现…...
使用docker创建rocketMQ主从结构,使用
1、 创建目录 mkdir -p /docker/rocketmq/logs/nameserver-a mkdir -p /docker/rocketmq/logs/nameserver-b mkdir -p /docker/rocketmq/logs/broker-a mkdir -p /docker/rocketmq/logs/broker-b mkdir -p /docker/rocketmq/store/broker-a mkdir -p /docker/rocketmq/store/b…...
一次完整的 http 请求是怎样的?
一次完整的 http 请求是怎样的? 💖The Begin💖点点关注,收藏不迷路💖 域名解析 --> 发起 TCP 的 3 次握手 --> 建立 TCP 连接后发起 http 请求 --> 服务器响应 http 请求,浏览器得到 html 代码 --…...
并行执行的概念—— 《OceanBase 并行执行》系列 一
From 产品经理: 这是一份姗姗来迟的关于OceanBase并行执行的系统化产品文档。 自2019年起,并行执行功能已被许多客户应用于多种场景之中,其重要性日益凸显。然而,遗憾的是,我们始终未能提供一份详尽的用户使用文档&…...
使用 ipdb 调试回调函数
一、问题概述 回调函数是指一个函数执行完后,调用另外一个函数的过程。 一般步骤是,回调函数作为参数传递给原始函数,原始函数执行完自己的逻辑后,自动调用回调函数并将自己的执行结果作为参数传递给回调函数。 根据不同的用法&a…...
Awesome-ChatGPT:社区驱动的AI资源导航与高效知识管理实践
1. 项目概述:一个汇聚ChatGPT智慧的“藏宝图”如果你和我一样,在ChatGPT爆火之后,既兴奋又有点迷茫,那么这个名为“awesome-chatpt”的项目,绝对是你探索这片新大陆的绝佳起点。它不是一个具体的软件或工具,…...
Gemini CLI:将AI助手集成到终端,提升开发者效率的实战指南
1. 从命令行到智能伙伴:为什么你需要一个终端里的AI助手如果你和我一样,每天大部分时间都泡在终端里,那么你肯定经历过这样的场景:面对一个陌生的代码库,想快速理解它的架构,却不得不花上半天时间在文件树和…...
终极指南:如何为boardgame.io配置完整的GitHub Actions持续集成工作流 [特殊字符]
终极指南:如何为boardgame.io配置完整的GitHub Actions持续集成工作流 🚀 【免费下载链接】boardgame.io State Management and Multiplayer Networking for Turn-Based Games 项目地址: https://gitcode.com/gh_mirrors/bo/boardgame.io boardga…...
网盘直链解析方案:如何通过浏览器脚本实现多平台文件下载优化
网盘直链解析方案:如何通过浏览器脚本实现多平台文件下载优化 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...
Cursor编辑器使用统计工具:量化开发效率与AI辅助深度分析
1. 项目概述:一个为开发者量身定制的Cursor使用统计工具如果你和我一样,日常开发重度依赖Cursor这款AI代码编辑器,那你肯定也好奇过:我到底有多“卷”?每天在编辑器里花了多少时间?最常用的功能是哪些&…...
机器视觉项目中的GRR和CPK
在机器视觉项目中,GRR 和 Cpk 是两个核心的统计学指标,分别用于评估测量系统本身是否可靠以及生产过程是否稳定受控。下面分别详细解释。---一、GRR(量具重复性与再现性)1.1 是什么?GRR(Gauge Repeatabilit…...
3步在Windows电脑运行安卓应用的终极指南:APK安装器完全教程
3步在Windows电脑运行安卓应用的终极指南:APK安装器完全教程 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想过,如果能在Windows电…...
系统化交易资源宝库:从入门到实战的量化学习路径
1. 项目概述与核心价值如果你对量化交易、系统化投资感兴趣,并且正在寻找一个能帮你快速入门、避免重复造轮子的资源宝库,那么paperswithbacktest/awesome-systematic-trading这个项目绝对值得你花上几个小时好好研究。这个项目本质上是一个由社区驱动的…...
构建数据科学AI代理规则库:从自动化到智能化的关键路径
1. 项目概述:一个为数据科学工作流定制的智能代理规则库最近在GitHub上看到一个挺有意思的项目,叫ds-agent-rules。光看名字,你可能觉得这又是一个平平无奇的规则文件集合。但作为一个在数据科学和自动化领域摸爬滚打多年的从业者,…...
告别时钟线!用三根线搞定高速传输:MIPI C-PHY硬件连接与编码原理详解
告别时钟线!用三根线搞定高速传输:MIPI C-PHY硬件连接与编码原理详解 在高速数据传输领域,传统并行总线的时钟同步机制已成为提升速率的瓶颈。MIPI联盟推出的C-PHY标准,以革命性的"三线无时钟"架构打破了这一僵局。本文…...
