【RK3576】【Android14】如何在Android14下单独编译kernel-6.1?

单独编译kernel依赖如下几个源码:

【交叉编译工具链】

prebuilts/clang/host/linux-x86/clang-r487747c

【内核源码】

kernel-6.1

为什么Android下编译内核使用clang作为交叉编译工具链而不是GCC?

Android 14 选择使用预置的 Clang 工具链(如 clang-r487747c)而非 GCC 来编译内核,主要是因为 Google 为统一和掌控整个 Android 生态的构建环境。Clang 作为 LLVM 项目的一部分,相比 GCC 具有编译速度更快、内存占用更低、错误提示更清晰易懂等优势,并且其模块化设计更易于集成到 Android 的现代构建系统(如 Soong/Bazel)中。更重要的是,Google 能主动为 Clang 开发和集成针对 Android 平台的特定优化、安全强化特性(如更严格的未定义行为检查、内核控制流完整性保护 CFI)以及对现代 C/C++ 标准的支持,从而确保跨不同设备和内核版本构建的一致性、安全性和性能。

编译kernel-6.1内核,配置如下:

# 配置交叉编译工具链路径
export PATH=【绝对路径】/prebuilts/clang/host/linux-x86/clang-r487747c/bin:$PATH# 配置menuconfig
make LLVM=1 LLVM_IAS=1 ARCH=arm64 rockchip_defconfig# 编译内核源码
make LLVM=1 LLVM_IAS=1 ARCH=arm64 -j16 Image.gz dtbs

参数解析如下:

【LLVM=1】:

核心参数。告知内核构建系统使用 clang 作为编译器,而不是默认的 gcc。

【LLVM_IAS=1】:

告知内核构建系统使用 Clang 的集成汇编器来编译汇编代码(.S 文件),而不是使用 GNU 的 as 汇编器。这避免了潜在的不兼容问题。

【ARCH=arm64】:

指定目标 CPU 架构为 ARM64(AArch64)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/922436.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/922436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是Redis的Pipeline

介绍Redis的Pipeline是一种网络优化技术,在没有Pipeline的时候,客户端往redis发送请求,客户端需要等到redis响应之后才能发送下一个请求。而Pipeline,使redis可以一次性接收多个请求。减少了通信次数,显著的提高了性能…

【ElementUI el-table跨页勾选】

一、el-table需加上refs和 row-key属性 二、type"selection"勾选框 需加上 reserve-selection储备选择属性 三、在分页请求数据时&#xff0c;触发 setSelected()方法 四、在 selection-change变化时保存 selectedRows <el-table ref"tables" :data&quo…

论文阅读/博弈论/拍卖:《Truthful Auction for Cooperative Communications》

摘要&#xff1a;一方面&#xff0c;协作通信由于其在提升无线网络容量方面的巨大潜力而日益受到关注。另一方面&#xff0c;协作通信技术的实际应用却很少见&#xff0c;即使在一些对带宽需求极高的应用场景中&#xff0c;系统设计者也并未采用协作通信技术来开发创新的网络解…

系统软中间件:连接软件与硬件的桥梁

理解“系统软中间件”这个术语很重要&#xff0c;它实际上是两个紧密相关但又不同的概念的组合&#xff1a; 系统软件中间件 严格来说&#xff0c;“系统软中间件”不是一个标准的独立术语。它通常指的是属于系统软件范畴的中间件&#xff0c;或者理解为作为系统软件重要组成部…

音视频学习(六十四):avc1 hvc1和hev1

基础概念缩写编码标准FourCC说明AVC/H.264Advanced Video Codingavc1最常用的 H.264 编码标识符&#xff0c;兼容 MP4/MOV/FMP4 等容器。HEVC/H.265High Efficiency Video Codinghvc1HEVC 视频流在 MP4/FMP4 中常用标识符&#xff0c;要求存储 NALU 的 VPS/SPS/PPS&#xff08;…

【WIT】编程百问一

01 什么时postman&#xff1f; Postman 是一款专门用于帮助开发人员处理 API 的工具&#xff0c;它的作用主要有以下几个方面&#xff1a; 方便调试 API&#xff1a;就像你打电话给别人要先拨对号码一样&#xff0c;开发人员要让不同的软件系统之间通过 API 进行通信&#xff…

RAG 从入门到放弃?丐版 demo 实战笔记(go+python)

背景 我当前有一个业务系统&#xff0c;希望能添加一个机器人助手。直接使用大模型&#xff0c;由于缺少相关的业务数据&#xff0c;效果并不理想&#xff0c;了解一下 RAG。 什么是 RAG RAG(Retrieval Augmented Generation)&#xff0c;搜索引擎 大模型。 简单来说就是从…

《IDEA 突然“三无”?三秒找回消失的绿色启动键、主菜单和项目树!》

目录 一、左上角绿色启动键凭空消失 1.1 解决办法 二、顶部 File / Edit / View... 整条主菜单栏 罢工 2.1 解决办法 三、左侧 Project 工具窗口 集体失联&#xff0c;只剩 External Libraries 孤零零 3.1 解决办法 昨天下午撸代码&#xff0c;不知道按到了哪儿&#xff…

软件工程实践二:Spring Boot 知识回顾

文章目录一、创建项目&#xff08;Spring Boot 向导&#xff09;二、项目最小代码示例三、运行与验证四、标准目录结构与说明五、Maven 依赖最小示例&#xff08;仅供参考&#xff09;六、常用配置&#xff08;application.yml 示例&#xff09;七、返回 JSON 与统一异常八、Va…

【系列文章】Linux中的并发与竞争[04]-信号量

【系列文章】Linux中的并发与竞争[04]-信号量 该文章为系列文章&#xff1a;Linux中的并发与竞争中的第4篇 该系列的导航页连接&#xff1a; 【系列文章】Linux中的并发与竞争-导航页 文章目录【系列文章】Linux中的并发与竞争[04]-信号量一、信号量二、实验程序的编写2.1驱动…

Elasticsearch启动失败?5步修复权限问题

文章目录&#x1f6a8; 为什么会出现这个问题&#xff1f;✅ 解决方案&#xff1a;修复数据目录权限并确保配置生效步骤 1&#xff1a;确认数据目录存在且权限正确步骤 2&#xff1a;确认 elasticsearch.yml 中的配置步骤 3&#xff1a;**删除或清空 /usr/share/elasticsearch/…

Docker push 命令:镜像发布与管理的艺术

Docker push 命令&#xff1a;镜像发布与管理的艺术1. 命令概述2. 命令语法3. 核心参数解析4. 推送架构图解5. 完整工作流程6. 实战场景示例6.1 基础推送操作6.2 企业级推送流程6.3 多架构镜像推送7. 镜像命名规范详解8. 安全最佳实践8.1 内容信任机制8.2 最小权限原则9. 性能优…

智能合约测试框架全解析

概述 智能合约测试库是区块链开发中至关重要的工具&#xff0c;用于确保智能合约的安全性、正确性和可靠性。以下是主流的智能合约测试库及其详细解析。 一、主流测试框架对比 测试框架开发语言主要特点适用场景Hardhat WaffleJavaScript/TypeScript强大的调试功能&#xf…

【大模型算法工程师面试题】大模型领域新兴的主流库有哪些?

文章目录 大模型领域新兴主流库全解析:国产化适配+优劣对比+选型指南(附推荐指数) 引言 一、总览:大模型工具链选型框架(含推荐指数) 二、分模块详解:优劣对比+推荐指数+选型建议 2.1:训练框架(解决“千亿模型怎么训”) 2.2:推理优化(解决“模型跑起来慢”) 2.3:…

端口打开与服务可用

端口打开与服务可用“端口已打开但服务不可用” 并非矛盾&#xff0c;而是网络访问中常见的分层问题。要理解这一点&#xff0c;需要先明确 “端口打开” 和 “服务可用” 的本质区别&#xff1a;1. 什么是 “端口打开”&#xff1f;“端口打开” 通常指 操作系统的网络层监听该…

ByteDance_FrontEnd

约面了&#xff0c;放轻松&#xff0c;好好面 盲点 基础知识 Function 和 Object 都是函数&#xff0c;而函数也是对象。 Object.prototype 是几乎所有对象的原型链终点&#xff08;其 proto 是 null&#xff09;。 Function.prototype 是所有函数的原型&#xff08;包括 Obje…

go语言,彩色验证码生成,加减法验证,

代码结构相关代码 captcha/internal/captcha/generator.go package captchaimport (_ "embed" // &#x1f448; 启用 embed"image""image/color""image/draw""image/png""io""math/rand""golang.…

PuTTY软件访问ZYNQ板卡的Linux系统

PuTTY 是一款非常经典、轻量级、免费的 SSH、Telnet 和串行端口连接客户端&#xff0c;主要运行于 Windows 平台。它是在开源许可下开发的&#xff0c;因其小巧、简单、可靠而成为系统管理员、网络工程师和开发人员的必备工具。网上有非常多的下载资源。 我们使用PuTTY软件对ZY…

做一个RBAC权限

在分布式应用场景下&#xff0c;我们可以利用网关对请求进行集中处理&#xff0c;实现了低耦合&#xff0c;高内聚的特性。 登陆权限验证和鉴权的功能都可以在网关层面进行处理&#xff1a; 用户登录后签署的jwt保存在header中&#xff0c;用户信息则保存在redis中网关应该对不…

【算法】day1 双指针

1、移动零&#xff08;同向分3区域&#xff09; 283. 移动零 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a;注意原地操作。快排也是这个方法&#xff1a;左边小于等于 tmp&#xff0c;右边大于 tmp&#xff0c;最后 tmp 放到 dest。 代码&#…