RK356x-11:在win11的WSL中开发SDK

news2025/4/6 17:26:37

我拿到的SDK建议开发的系统是Ubuntu22.04(在SDK-docs中的文档有说明),因此,WSL中要先安装好它。由于PC机上WSL本身不支持aarch64架构,所以,进行ARM64的RK356X开发,需要手动加入支持。用到的支持软件和模拟器分别是binfmt-support和qemu-user-static。

1. 安装相关软件包

        1.1 首先当然得安装Ubuntu22.04

        在WSL中,不要安装更高的版本,之前试过Ubuntu24.04版,不行,虽然SDK中建议安装Ubuntu20.04以上版本,实际上新版ubuntu有很多不兼容的问题,只认准22.04即可。

        1.2 安装相关依赖软件

        在SDK文档中有说明需要安装哪些依赖包,注意,有的包在WSL中是不支持的,因此,需要安装其它替代软件,且后面开发需要对相关脚本进行调整。其中,最重要的是要安装binfmt-support和qemu-user-static,它是跨平台开发根文件系统支持的关键:

sudo apt install binfmt-support qemu-user-static

        SDK中是这样的安装顺序,是错的!在WSL中只需要安装qemu-user-static即可自动安装它适配的binfmt-support,如果先装binfmt-support,那么qemu将不能适配,造成qemu无法适配对应的跨平台二进制文件。 

2. 注册binfmt_misc解析器

        使用命令ls /proc/sys/fs/binfmt_misc查看内核当前注册的解析器,发现没有aarch64的解析器,也可以使用命令update-binfmts --display来查看:

        于是,我们需要手动注册,先使用命令查看是否存在aarch64解释器的可执行文件:

ls /usr/bin/qemu-aarch64* 

 

        可以看到有两个可执行文件,我们用前面一个,再查看解释器:

ls /usr/libexec/qemu-binfmt/aarch64*

        发现有一个解释器文件,它实际就是指向/usr/bin/qemu-aarch64-static的。

        然后编辑命令,注册解释器:

sudo update-binfmts --package qemu-aarch64-static \

--install qemu-aarch64 /usr/libexec/qemu-binfmt/aarch64-binfmt-P \

--magic '\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00 ' \

--mask '\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' \

--offset 0

        注意,--package指向一个包名,它是解释器可执行文件的名称;--install第一个参数就是注册后解释器的名称,可以通过update-binfmts --display name来查看注册信息的,name就是第一个参数,第二个参数是解释器的路径;--magic  --mask匹配魔数和掩码,这里需要看qemu-aarch64源代码,记住上面例子的就可以,--offset 偏移设为0即可。

        执行上面命令后,可以查看注册后的结果了:

        附加说明:binfmt_misc是linux内核一个功能,当需要执行其它平台(或架构)的二进制文件时,会读取该文件开始一段数据(起始位置即offset设定的位置,长度就是magic的长度),匹配注册信息中的magic(与mask作与运算),如果匹配到了,则调用解释器去执行该文件,在X86_64的PC中进行ARM64的开发时,这个功能是必须要的

        其它编译与vmware workstation中的基本一致。

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

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

相关文章

Java日志框架:log4j、log4j2、logback

文章目录 配置文件相关1. properties测试 2. XMl使用Dom4j解析XML Log4j与Log4j2日志门面 一、Log4j1.1 Logges1.2 Appenders1.3 Layouts1.4 使用1.5 配置文件详解1.5.1 配置根目录1.5.2 配置日志信息输出目的地Appender1.5.3 输出格式设置 二、Log4j22.1 XML配置文件解析2.2 使…

C语言(一)——初识C语言

目录 简单认识一段代码 数据类型 变量和常量 变量的作用域和变量的生命周期 常量 字符串 转义字符 注释 函数 数组 操作符 关键字 结构体 结构的声明 结构成员的类型 结构体变量的初始化 结构体传参 简单认识一段代码 main()函数是程序的入口,所以…

创新领先+效率领先,助力中国九牧加速品牌全球化

2024年,在全球市场经济和国家政策的双重驱动下,中国企业正在加速出海。 从早期粗放式的贴牌代工,到凝聚技术、产品、营销力的自主品牌出海,中国企业在国内市场对国际品牌上演过的追赶-超越戏码,如今正在海外市场上演。…

基于单片机的噪音检测系统(论文+源码)

1整体方案设计 2.2.1功能设计 本课题为噪音分贝仪,在功能上设计如下: 1.可以准确的识别周围环境的噪声大小。 2.检测的噪声大小可以通过液晶进行显示,并直观的给出当前噪声的程度大小; 3.可以通过按键设定报警阈值&#xff0…

十四、从0开始卷出一个新项目之瑞萨RZN2L之栈回溯(Default_Handler/hartfault)

目录 一、概述 二、参考资料 三、代码 四、日志 五、定位函数调用 六、README和工具 一、概述 软件开发中常见的比较棘手的问题就是hartfault/Default_Handler/dump,俗称跑飞了。 参考cmbacktrace,在瑞萨RZN2L/T2M实现栈回溯,串口打印…

OpenAI推出“深思熟虑对齐(Deliberative Alignment)”:为大语言模型建立更可靠的安全与伦理框架

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

GitCode 光引计划投稿 | GoIoT:开源分布式物联网开发平台

GoIoT 是基于Gin 的开源分布式物联网(IoT)开发平台,用于快速开发,部署物联设备接入项目,是一套涵盖数据生产、数据使用和数据展示的解决方案。 GoIoT 开发平台,它是一个企业级物联网平台解决方案&#xff…

【鸿蒙(HarmonyOS)性能优化指南】启动分析工具Launch Profiler

Launch Profiler概述 DevEco Studio内置Profiler分析调优工具。其中Launch主要用于分析应用或服务的启动耗时,分析启动周期各阶段的耗时情况、核心线程的运行情况等,协助开发者识别启动缓慢的原因。此外,Launch任务窗口还集成了Time、CPU、F…

微博用户消费趋势报告,多个领域增速明显,年轻一代成消费主力军

文 | 魏力 发布 | 大力财经 站在岁末回首这一年,在信息浪潮的汹涌翻涌之下,社交媒体平台犹如社会经济的晴雨表,精准地折射出大众生活与消费的万千景象。近日,大力财经看到一份报告,微博发布了《2024微博用户消费趋势…

智能公文写作一体机,开箱即用快速部署超便捷

在繁忙的政企事业单位中,时间就是生产力。公文撰写作为各类组织日常工作的核心环节,却常常因为传统的公文处理流程繁琐耗时而成为效率的瓶颈。如何打破这一瓶颈,实现高效的公文撰写,成为了众多单位关注的焦点。 一款即开即用的公文…

重温设计模式--中介者模式

中介者模式介绍 定义:中介者模式是一种行为设计模式,它通过引入一个中介者对象来封装一系列对象之间的交互。中介者使得各个对象之间不需要显式地相互引用,从而降低了它们之间的耦合度,并且可以更方便地对它们的交互进行管理和协调…

无人机双目视觉鲁棒定位方法!

无人机双目视觉鲁棒定位方法是一种先进的定位技术,它利用两个摄像头(即双目相机)模拟人的视觉系统,通过视差来确定物体的位置。这种方法在无人机定位领域具有广泛的应用前景,特别是在GPS信号拒止或弱纹理环境中&#x…

【R语言遥感技术】“R+遥感”的水环境综合评价方法

R语言在遥感领域中是一个强大的工具,它提供了一系列的功能和优势,使得遥感数据的分析和应用更加高效和灵活。以下是R语言在遥感中的具体应用: 数据处理:R语言可以处理和清洗遥感数据,包括数据转换、滤波处理、去噪和数…

vue预览和下载 pdf、ppt、word、excel文档,文件类型为链接或者base64格式或者文件流,

** 方法1&#xff1a;word、xls、ppt、pdf 这些文件&#xff0c; 如果预览的文件是链接可以直接打开&#xff0c;可用微软官方的预览地址 ** <iframe width"100%" :src"textVisibleURl " id"myFramePPT" style"border: none;backgroun…

无人设备遥控器之定向天线篇

一、定义与功能 定向天线&#xff0c;顾名思义&#xff0c;是通过改变天线的辐射方向&#xff0c;实现信号发射、接收和增强的天线。它可以让信号以更高的功率、更远的距离传输到指定区域&#xff0c;同时也能够降低与周围天线之间的干扰。在无人设备遥控器中&#xff0c;定向天…

什么是Redis缓存击穿?如何解决

1.缓存击穿介绍 Redis的缓存击穿指的是在高并发场景下&#xff0c;当一个被大量请求访问的热点key&#xff08;即非常热门的数据项&#xff09;在Redis中过期时&#xff0c;所有请求几乎同时发现缓存失效并尝试直接从后端数据库读取数据&#xff0c;这可能会导致瞬间大量的数据…

Qt父窗口处理子窗口大小变化消息installEventFilter

1.需求描述 父窗口从上到下时标题栏&#xff0c;播放窗口和工具栏&#xff0c;希望监测中间播放窗口的大小变化&#xff0c;来根据分辨率自动调整播放画面的宽高&#xff1b;因为工具栏和标题栏可以隐藏&#xff0c;所以父窗口大小不变&#xff0c;中间的播放窗口也会随着工具…

HiQA: A Hierarchical Contextual Augmentation RAG for Multi-Documents QA---附录

附录 建议的问答系统 在建议的框架中&#xff0c;问答过程是单步的。首先&#xff0c;根据查询使用 RAG 从文档库中检索相关知识。随后&#xff0c;将此上下文与问题一起输入到语言模型中以生成响应。返回答案的第一个字符所需的时间在 1 到 3 秒之间。图 5 显示了 QA 流程的…

MoGe---最新单目3D几何估计方法

目录 一、概述 二、相关工作 1、单目深度估计 2、单目几何估计 3、相机内参估计 4、单目几何的大规模数据训练 三、前置知识 1、仿射不变和尺度不变指标 2、FOV和shift 3、ROE对齐求解器 四、MoGe 1、为什么设计仿射不变&#xff1f; 2、恢复相机焦距和移位 3、…

Jenkins安全部署规范及安全基线

Jenkins安全部署规范及安全基线 进入安全设置界面启用安全Disable remember me访问控制——安全域&#xff08;Security Realm&#xff09;servlet容器代理&#xff08;Delegate to servlet container&#xff09;Jenkins专有用户数据库&#xff08;Jenkins’ own user databas…