华为 DevKit 25.2.rc1 源码迁移分析使用教程(openEuler + ARM64)

【信息科学与工程学】【产品体系】第二十七篇 存储系统系列一 01 存储系统是一个横跨单机引擎 → 分布式系统 → 硬件指令集 → 云上多地域的四层技术栈。下面按你给的格式,用一组相互关联的表把"各类特性组合"一次性铺开。版本号以各厂商当前 GA 版本为准,功能清单为生产级能力摘要。编号存储系统(厂商 / 内核 / 引擎 / 版本 / 功能清单)S01Ceph(Red Hat / 自研内核模块 / RADOS + BlueStore + RocksDB / Squid 19.x)/ 功能:RBD 块、RGW 对象(S3/Swift)、CephFS POSIX、副本+EC 混 阅读详情

一、前言

华为 DevKit 是一款用于 x86 → 鲲鹏(ARM64)平台代码迁移分析 的工具。从 v25.0 起,DevKit 采用 模块化 RPM 包设计 ,需安装多个组件才能使用源码迁移功能。本次实验我带大家实操一下码迁移分析使用,实验有以下几点需要注意。

⚠️ 注意 :

  • 25.2.rc1 为 Release Candidate 版本 ,存在权限和参数接口变更问题。
  • 正式版(如 25.1.0)体验更佳,建议实验完成后升级。
  • 本次实验是在华为云开发者空间上进行的,点击进入https://developer.huaweicloud.com/space/devportal/platform/devEnvironment?tab=cloud_desktop&ticket=ST-8160487-KjIyCRlHrKoolUkIbqrfPb59-sso&locale=zh-cn

二、准备工作

1. 下载所需 RPM 包

确保已下载以下三个包(架构:aarch64):

devkit-25.2.rcll-1.aarch64.rpm
devkit-porting-25.2.rc1-1.aarch64.rpm     # 必须!提供迁移分析能力
devkit-sys-mig-25.2.rc1-1.aarch64.rpm     # 可选(本次实验不需要)

在这里插入图片描述

💡 若未下载,请从 华为鲲鹏社区 获取。

2. 准备待分析项目

以开源项目 simdjson 为例:

cd ~
git clone https://github.com/simdjson/simdjson.git

在这里插入图片描述

项目路径:/home/developer/simdjson


三、安装 DevKit

1. 卸载旧版本(如有)

sudo rpm -e devkit devkit-porting devkit-sys-mig 2>/dev/null || true

2. 按依赖顺序安装 RPM 包

# 进入 RPM 所在目录(假设在 ~/Downloads)
cd ~/Downloads

# 安装主框架
sudo rpm -ivh devkit-25.2.rc1-1.aarch64.rpm

# 安装源码迁移模块(关键!)
sudo rpm -ivh devkit-porting-25.2.rc1-1.aarch64.rpm

# (可选)安装系统迁移模块
# sudo rpm -ivh devkit-sys-mig-25.2.rc1-1.aarch64.rpm

在这里插入图片描述

✅ 验证安装:
/usr/local/devkit/devkit --version

在这里插入图片描述


四、运行源码迁移分析

1. 创建输出目录

mkdir -p /home/developer/migration_report

2. 执行分析命令(关键:使用新参数格式)

⚠️ DevKit 25.2.rc1 参数变更 :
--project-path → --input 或 -i
--output-path → --output 或 -o
--language → --source-type

sudo devkit porting src-mig \
  --input /home/developer/simdjson \
  --output /home/developer/migration_report \
  --source-type c,c++

在这里插入图片描述

🔍 为什么用 sudo ?
RC 版本硬编码日志路径为 /usr/local/devkit/...,普通用户无写权限。
正式版默认使用 $HOME/.kunpeng-devkit,无需 sudo。

3. 等待分析完成

典型输出:

Using the local system as target os: openeuler22.03
Current progress: [100%] [Phase 3/3] Scan completed. Generating reports.
...
Files to be modified: 30
Lines to be modified: 204
Estimated transplant workload: 0.5 person/months.

在这里插入图片描述


五、查看分析报告

1. 报告文件列表

ls ~/migration_report/

生成三个文件:

  • Code_Porting_ .html ← 主报告(推荐)
  • Code_Porting_ .csv ← 表格数据
  • Code_Porting_ .json ← 原始数据

在这里插入图片描述

3. 报告内容解读

类别说明
架构相关指令x86 汇编(如 _mm_load_si128)、SSE/AVX 内建函数
编译器差异GCC/Clang 特有扩展在 ARM64 上的兼容性
字节序与对齐大端/小端、内存对齐问题
依赖库兼容性第三方库是否支持 ARM64

六、常见问题与解决方案

问题原因解决方案
error: init execute pwd failed未安装 devkit-porting安装 devkit-porting- .rpm
Permission denied: common.log.lockRC 版硬编码系统路径使用 sudo 运行
The task name is incorrect未指定子任务使用 devkit porting src-mig ...
required: -i/--input参数格式变更将 --project-path 改为 --input
SELinux 阻止写入安全策略限制临时执行 sudo setenforce 0

七、后续建议

1. 升级到正式版

卸载 RC 版:

sudo rpm -e devkit devkit-porting devkit-sys-mig

下载并安装 DevKit 25.1.0 正式版 ,享受:

  • 无需 sudo
  • 自动使用 $HOME/.kunpeng-devkit
  • 更稳定的 CLI 接口

2. 修改代码并验证

根据报告提示:

  • 替换 x86 内建函数为 ARM NEON 等价实现
  • 添加跨平台宏(如 #ifdef __aarch64__)
  • 在鲲鹏服务器上编译测试

八、附录:完整命令速查

# 安装
sudo rpm -ivh devkit-*.rpm devkit-porting-*.rpm

# 分析(RC 版必须用 sudo + 新参数)
sudo devkit porting src-mig \
  --input /path/to/source \
  --output /path/to/report \
  --source-type c,c++

# 归还权限
sudo chown -R $USER:$USER /path/to/report

# 查看帮助
devkit porting src-mig --help

总结

作为一个开发者,在 openEuler ARM64 环境下使用 DevKit 25.2.rc1 进行源码迁移分析时,需特别注意其 RC 版本的限制:必须安装 devkit-porting 模块,且因日志路径硬编码于系统目录,普通用户无写权限, 需用 sudo 执行 。同时,CLI 参数已变更——--project-path 改为 --input,--language 改为 --source-type。虽然流程略显繁琐,但工具能精准识别 x86 专属指令(如 SSE/AVX)、内存对齐等问题,并生成 HTML 报告,极大提升 ARM64 移植效率。建议实验后升级至正式版以获得更友好的开发体验。

鲲鹏社区直达https://www.hikunpeng.com/developer?utm_campaign=com&utm_source=csdnkol

【合规领域】【信息科学与工程学】计算机科学与自动化——第五百篇 国产化/XC解决方案 第三十一篇 毕昇(BiSheng) 编译器适配01 给定 A,B,C∈Rn×n,α,β∈R,求解:朴素三重循环的时间复杂度为 O(n3)。 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第一百五十九篇 并行计算开发设计01

编号编程语言(含版本)+开发框架应用场景机制+用法+详细设计+详细配置编译器(版本+内核+底层机制+优化方法+阶段)底层实现·说明·缺陷+优势的·解决方案及数学建模引入版本国产化/信创/商用CPU/GPU/DPU芯片适配及指令集列表和指令调用和时序图关联知识&标准1高性能科学计算、深度学习训练与推理、图像处理、物理模拟、金融风险分析SIMT模型,kernel函数并行执行海量线程。用法:定义__global__

weixin_49199313的博客 247

IPD咨询洞察:华为项目管理:分析价值创造的来源

华为项目管理中,价值交付不是笼统的完成任务,而是从两个角度拆解:价值的形态和归属。价值有三个维度——当期商业价值、未来战略目标、整体能力提升。价值归属四类对象:客户、企业、伙伴、团队。先定义价值,再对齐对象,项目才算真正交付了价值。

weixin_58096508的博客 236

前端宝典之七:React性能优化实战精华篇

本文主要讲解实战项目中React性能优化的方法,主要分为三个大的方面:减少不必要的组件更新、组件优化以及tree-shaking,共11个方法

franktaoge的博客 1902

【2026-11-06】华为研发机试三道编程题解

本文整理了华为11月6日研发岗三道编程题解法:第一题为按列填充句子,通过枚举行数模拟列宽计算,求最小行数;第二题为生鲜库存优化,利用动态分配思想,预处理“采购-销售”成本,贪心选择最便宜来源满足需求;第三题涉及AC自动机与动态规划结合的序列化奖励问题。代码均以Java实现,思路清晰,适合笔试刷题参考。关注公众号【TechGuide】获取更多真题解析。

试问道几许 382

大模型事件抽取学习——论文学习笔记《LLMs Learn Task Heuristics from Demonstrations:......》

本篇博客介绍一篇发表在2024 ACL main上的文章:《LLMs Learn Task Heuristics from Demonstrations: A Heuristic-Driven Prompting Strategy for Document-Level Event Argument Extraction》 方向:大模型事件抽取 本篇博客为个人阅读论文的总结与笔记,在这里进行简单的分享 论文链接:https://arxiv.org/abs/

weixin_53751318的博客 1852

DCDC BUCK开关电源PCB设计

在开关电源中,BUCK(降压)电路、BOOST(升压)电路以及BUCK - BOOST(升降压)三种电路是最基本的拓扑结构。转换器又分DCDC(直流转直流)和ACDC(交流转直流),DCDC装换器结构无疑是比ACDC转换器结构简单,所以从DCDC转换器结构入手学习开关电源是一种很好的选择。本文主要从应用角度,进行相关器件的选型计算以及PCB绘制讲解DCDC 12V转5Vbuck电路。

2301_78342510的博客 6885

华为OceanStor卷丢失数据恢复实战【东方护航数据恢复深圳店】

华为OceanStor存储卷丢失故障中,因NAS卷跨双LUN条带化分布,恢复需先解析LUN映射关系,通过镜像副本虚拟重组逻辑卷,再逐层重建文件系统结构。基于目录项、节点与文件特征多重匹配,结合日志残留信息,成功提取办公文档、图片视频等数据。关键经验:及时停写、分层诊断、镜像操作、多线索验证,确保数据安全高效恢复。

dfhuhangdr的博客 156

[V-10]ARMv8/v9-CPU Virtualization-CPU虚拟化架构简介(vCPU/vPE)

本文简要介绍了CPU虚拟化架构的基础知识。

基层架构师的分享 1267

华为运维面试题

华为面试注重真实经历与价值观契合,主管面采用STAR+价值观锚点+反思闭环框架,强调“我”的决策与量化结果。运维手撕题重思路表达与边界处理,需清晰复述、分步讲解、主动验证。云场景设计题须先澄清需求,再分层设计,兼顾可靠性与成本,突出取舍意识。通用心法:聚焦“我”、结构先行、主动说明边界与改进,以数字和反思收尾,展现复盘能力与华为文化匹配度。

dp340823的博客 186

AUTOSAR从入门到精通-【应用篇】基于AUTOSAR架构的混合动力电池 ECU 软件开发

由于严峻的环境污染和能源短缺问题,各国都在致力于发展新能源车,以达到节能排放的目的。在此背景下,12V启停系统由于成本较低廉、匹配方便,得到广泛应用。但是12V系统作为启停系统后存在许多问题,比如节能和减排效果有限,并且轻度混合动力系统的功率需求通常在10~15KW,在此电压条件下运行时,电池的电流会达到1000A,因此该方案行不通。高压混合动力系统(>110V)的节油效果好,但是成本很高,并且需要大功率的电机。48V混合动力系统比高压混合动力系统成本。

getusushu的博客 1489

使用Python从图像中提取表格

python 实现图片表格提取

qq_30895747的博客 2570

鸿蒙手机远程控制Windows电脑:华为手机控电脑实操完全指南

对于鸿蒙(HarmonyOS)用户来说,用华为手机/平板远程控制Windows电脑,ToDesk是目前最佳选择

球球!? 266

基于Simulink的PID控制器自动驾驶仿真建模示例

本文通过Simulink仿真平台,详细讲解了基于PID控制器的自动驾驶路径跟踪实现方法。主要内容包括:1)建立自行车运动学模型作为被控对象;2)定义参考路径与横向误差计算方法;3)设计PD控制器并调试参数;4)在Simulink中搭建完整仿真模型;5)分析30km/h车速下的双移线跟踪性能。文章强调PID控制作为自动驾驶入门基础的重要性,并指出其在中低速场景下的适用性,同时给出了工程实践中的优化建议(如前视距离、抗积分饱和等)和扩展方向(如Stanley控制器)。通过完整案例,帮助读者掌握车辆运动学建模和P

xiaoheshang_123的博客 65

华为HCIP网络工程师认证—网络管理与运维

随着网络的规模越来越庞大,网络中的设备种类繁多,如何对越来越复杂的网络进行有效的管理,从而提供高质量的网络服务,已成为网络管理所面临的巨大挑战。网络的管理与运维手段多样,本博客将对几种网络管理与运维手段展开介绍。网络管理与运维,就是让你从“一台一台跑去敲命令的消防员”,变成“坐在总控室看大屏的指挥官”的一套技术体系。 它的核心目标就四个字:可视、可控——你得先“看见”网络在发生什么,然后才能“控制”它不出事。网络管理与运维,在 HCIP 里不像 OSPF、VLAN 那样需要算得很深,但它是一个“框架性”……

极客园地 287

09 SAP CPI 访问公共API接口

我在网上找了一个公共API,入参输入汉字返回拼音。至此,一个真正的访问API的接口就做好了。点击保存时可看到红叉报错。

SAP CPI 477

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

华为鲲鹏920s芯片serdestool工具使用说明

目前鲲鹏920s上面可以使用华为提供的serdestool进行眼图查看,查看100G网卡的眼图等2、操作步骤首先需要安装欧拉系统安装后可以使用everything源进行图形化配置将华为提供的serdestool工具拷贝到模块上面主要有三个文件下载地址见步骤1将serdestool工具放置到/usr/bin目录下。步骤2进入该目录执行赋予权限。步骤3将文件放到对应填好的目录下,默认是在root目录下,可自行执行装载环境。步骤4将文件放。

无知的我 267

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

华为昇腾计算卡全解析:从 910 架构到 CANN 软件栈与超节点实践

昇腾的价值不能只用"单卡跑分"衡量。它是一套从达芬奇架构、910/950/960 系列芯片、超节点互联,到 AscendC 编程范式、CANN 软件栈、PyTorch/Triton/TileLang 适配的完整体系。这套体系目前的短板在软件生态成熟度和算子覆盖深度,优势在于自主可控、系统级协同和推理场景的能效比。

Maxwell_Newton的博客 732

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HUAWEI HiPlay 认证费用构成拆解:测试费、平台服务费明细

入口在华为开发者联盟伙伴平台,签生态框架协议、提交资质,这一步本身不收会员费或接入费,但会卡进度 —— 资质审核、协议来回,时间成本要算进去。协议一致性(设备发现、连接建立、音频流协商、编解码匹配、断连重连)、音频客观指标(频响、失真、信噪比、声道分离)、无线射频性能,三块跑完才算完整。所以问 HiPlay 费用,别只问总价,让对方把准入、开发、测试、复测、变更、维护分开列。音频主控、无线模组、天线设计对接华为技术团队预审,这一轮通常不额外收费,但硬件不达标被要求换方案,后面的采购和改板就是实打实的支出。

BlueAsia_TechSvc的博客 301

变相解决华为Mate 8锁屏后无法建立入站网络连接

当你的华为Mate 8手机锁屏时,拒绝一切入站网络连接……

xyzzklk的博客 384

存储 HCIE 是什么:华为存储认证三级体系与 V4.0 考纲变化

华为存储HCIE-V4.0于2026年9月30日起正式适用,聚焦AI驱动的存储应用与运维,新增AIFabric智能预测性维护等AI内容,实验考试增设15分故障排查模块(含预置与动态场景故障)。三大能力模块为CCSS、CCSN、CDPS,知识框架升级。备考需按官方考纲清单化训练,实验在云端限时演练。V3.0预计2027年3月30日下线,期间可选考。

352

IPD咨询洞察:华为项目管理:如何以价值交付为中心

华为项目管理的关注重心经历了三个阶段:以质量为中心,满足基本业务需求;以客户满意为中心,提升客户黏性与响应速度;以价值交付为中心,围绕客户战略与商业目标展开交付。先讲清楚价值,再呈现价值、证明价值,项目才算真正完成。

weixin_58096508的博客 171

华为VPLS over SRV6

IGP IPv6:在 P 与 PE 上启用 IS-IS Level-2 和 IPv6 拓扑,并在物理接口与 LoopBack0 上使能 IS-IS IPv6,打通底层 IPv6 可达性。BGP 邻居:以 LoopBack0 为源建立 IBGP 邻居,P 作为反射器,为 EVPN 路由传递提供通道。EVPN 对等体:在 l2vpn-family evpn 下使能邻居并声明 SRv6 封装类型,确保 EVPN 路由可正常收发。locator 与 SID 动态分配。

304

鸿蒙远程控制软件哪个好?华为远程PC、ToDesk、向日葵三款实测

综合来看,本次横测最终更推荐ToDesk:它在支持跨品牌连接的基础上,外接鼠标、全屏远控、移动设备协助和多屏功能覆盖更完整,更适合作为主力远控工具。

2401_85083137的博客 370

华为CE设备配置EVPN OVER VXLAN

本文基于华为 CE 交换机,完整演示 EVPN 与 RFC 5549 的配置过程。全文以 IPv6 链路本地地址建立 EBGP 邻居,无需配置互联接口 IP,即可用 IPv6 下一跳转发 IPv4 地址;随后通过 EBGP 发布环回地址,并用 IPv6 环回地址建立 EVPN 邻居。内容依次覆盖接口配置、BGP unnumbered、EVPN BGP 邻居、EVPN VXLAN、分布式网关与 TYPE5 路由引入、三层 VPC 模拟,以及 TYPE2/TYPE5 路由与三层 VPN 路由表的查看验证。

47

【FDE知识库】(1):AI 编程时代开发语言选型分析,云使用go,企业用java,算法python,底层c

AI 编程时代,开发语言选型需综合考量AI适配度、编译速度、跨平台与学习成本。Python以海量语料和即时执行成首选,适用于AI/ML与原型开发;TypeScript凭借类型系统与秒级构建,成为前端及应用层主流;Go以极速编译与统一风格,契合AI代理高效迭代需求。Rust/C++虽性能强,但编译慢、学习成本高,不适于快速试错。综合推荐:优先选Python、TypeScript、Go,兼顾效率与生态,实现最优AI协作体验。

freewebsys的专栏 577
上一篇: 鲲鹏DevKit实战经验:从X86到ARM,代码迁移工具(Porting Advisor)的深度解析与实战指南
下一篇: 深度解析Reactor模式与Netty高性能IO设计原理
秋说
秋说 优质创作者: 编程框架、信息安全技术领域 优质创作者: 编程框架、信息安全技术领域
博客等级 码龄4年 3万+粉丝 1906原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值