解决90%的开发难题!openEuler/hi-mpu系统编译运行常见FAQ大全

📅 2026/7/1 19:56:24 👤 编程新知 🏷️ 技术资讯
解决90%的开发难题!openEuler/hi-mpu系统编译运行常见FAQ大全 解决90%的开发难题openEuler/hi-mpu系统编译运行常见FAQ大全【免费下载链接】hi-mpuhi-mpu is the open source repository for the mpu chip driver package. This repository provides the source code for the chip driver, driver dependencies, and build project configurations.项目地址: https://gitcode.com/openeuler/hi-mpu前往项目官网免费下载https://ar.openeuler.org/ar/openEuler/hi-mpu项目是海思MPU系列芯片的开源驱动仓库为开发者提供了完整的芯片驱动、依赖库和构建工程源代码。对于嵌入式开发者和系统工程师来说这个项目是构建高性能MPU系统的重要工具。然而在实际编译和运行过程中开发者常常会遇到各种问题本文整理了最常见的90%开发难题及其解决方案帮助你快速上手hi-mpu系统编译运行。 快速入门hi-mpu项目架构概览hi-mpu项目采用分层架构设计主要包含以下几个核心目录build/- 构建脚本目录包含所有编译相关的自动化脚本custom/- 用户定制文件存放目录用于存放openEuler基础组件open_source/- 开源组件源码目录包含ATF、U-Boot等关键组件platform/- 平台软件目录包含适配层和安全库代码src/- 驱动源码目录分为实时侧和非实时侧驱动代码hi-mpu项目采用模块化设计清晰分离硬件驱动和系统组件 构建openEuler文件系统与内核镜像FAQQ1oebuild初始化版本不一致或update失败问题问题现象使用oebuild初始化时指定了版本参数但update时下载的版本不一致或者update过程直接失败。解决方案这通常是由于oebuild工具版本过旧导致的。执行以下命令升级oebuildpip3 install oebuild --upgrade升级后重新执行初始化流程即可。建议定期更新oebuild工具以确保能够拉取最新版本的openEuler构建代码。Q2QT特性参数不支持当前硬件问题现象在oebuild generate过程中输入QT特性参数结果显示不支持当前硬件。解决方案当前QT特性实际上支持Hi3093芯片但oebuild的清单文件中硬件支持列表尚未添加Hi3093。需要手动修改openeuler-qt.yaml文件cd ./src/yocto-meta-openeuler/.oebuild/features/ vi openeuler-qt.yaml将文件中的support: raspberrypi4-64|ok3568|ryd-3568|x86-64内容删除保存后重新执行generate命令。Q3内核配置被错误关闭问题现象修改配置文件后发现defconfig把arm64等基本内核配置关闭。解决方案在使用X86编译环境时生成和修改内核配置文件必须加上ARCHarm64参数否则会使用默认的目标体系结构导致arm64配置被关闭# 依据defconfig生成.config配置文件 make ARCHarm64 defconfig CROSS_COMPILEaarch64-openeuler-linux- # 使用交互式菜单修改.config配置文件 make menuconfig ARCHarm64 CROSS_COMPILEaarch64-openeuler-linux-Q4QT驱动编译后未出现在烧片包中问题现象修改配置文件打开了QT相关驱动但在编译Hi3093烧片包内却没有相关驱动文件。解决方案首先检查hi-mpu/open_source/linux5.10/目录下是否编译出了修改后打开的驱动文件确认配置文件是否正确替换openEuler 24.03-LTSsrc/yocto-meta-openeuler/bps/meta-hisilicon/recipes-kernel/linux/files/config/hi3093openEuler 22.03-LTS-SP3src/yocto-meta-openeuler/meta-openeuler/recipes-kernel/linux/files/config/️ 编译Hi3093烧片包常见问题Q5网络问题导致工具链安装失败问题现象由于默认交叉编译工具链镜像仓位于欧洲网络连接不稳定导致下载失败。解决方案手动下载工具链并安装。访问openEuler镜像站选择合适的镜像仓下载对应版本的工具链# 以22.03-LTS-SP3为例的安装命令 sh openeuler-glibc-x86_64-openeuler-image-aarch64-qemu-aarch64-toolchain-22.03-LTS-SP3.sh -d /home/${USER}/hi3093_tool -y重要提示工具链安装路径推荐为/home/${USER}/hi3093_tool如安装到其他路径需同步修改脚本文件内的TOOLCHAIN_DIR变量推荐使用Truenetwork仓或HUAWEI-CLOUD仓网络稳定性更好Q6openssl库文件找不到问题现象编译过程中提示无法找到openssl下的库文件。解决方案安装openssl开发包# Ubuntu或Debian系统 sudo apt-get install libssl-dev # CentOS或Red Hat系统 sudo yum install openssl-develQ7文件系统库文件版本不匹配问题现象在打包Hi3093烧片包时无法复制文件系统内的某些库文件。解决方案不同openEuler版本构建的文件系统库文件存在差异。例如libpcre库在openEuler22.03中为libpcre.so.1.2.13而在openEuler24.03中为libpcre2-8.so.0.11.2。需要修改hi-mpu/build/build_fs/build_hi3093_ext4.sh脚本文件更新对应的库文件路径。Q8基础工具命令not found问题现象pushd、source、log_error等基础工具命令提示not found。解决方案这些工具通常内置在bash解释器中。检查当前shell解释器ls -l /bin/sh如果指向dash而非bash有两种解决方法重新配置默认shell解释器sudo dpkg-reconfigure dash选择no关闭dash在报错文件首行添加#!/bin/bash运行命令改为./XXX.sh而非sh XXX.sh 硬件配置与启动问题Q9SPC和EMMC启动串口复用配置问题需求需要将新版本SPC和EMMC启动使用同一个串口。解决方案硬件上需要调整电阻配置取下电阻R375在R383位置焊上阻值为1k的电阻Q10MCS设备树配置修改问题需求使用最新的mica工具启动实时侧UniProton需要修改MCS相关设备树。解决方案在hi3093_mcs_3with1.dts设备树文件中修改reserved-memory节点为以下内容reserved-memory { #address-cells 0x2; #size-cells 0x2; ranges; client_os_reserved: client_os_reserved93000000 { reg 0x00 0x93000000 0x00 0x4000000; no-map; }; client_os_dma_memory_region: client_os-dma-memory90000000 { compatible shared-dma-pool; reg 0x00 0x90000000 0x00 0x3000000; no-map; }; }; mcs-remoteproc { compatible oe,mcs_remoteproc; memory-region client_os_dma_memory_region, client_os_reserved; };Q11MICA脚本启动CPU核心冲突问题现象使用mica脚本启动实时侧UniProton时报错无法通过指定CPU启动。解决方案将UniProton配置文件中指定的CPU核心下线echo 0 /sys/devices/system/cpu/cpu3/onlineQ12SPC启动后网络权限问题问题现象使用16M大小的SPC烧录后SPC启动网口使用正常但使用ping时报错无权限。解决方案SPC包内的bin文件权限不足导致。执行以下命令修复cd / chmod -R 777 *bin* insmod /lib/net/gmac_drv.ko ifconfig eth2 192.168.0.11 ping 192.168.0.10 高效调试技巧与最佳实践调试工具推荐使用合适的调试工具可以大幅提高问题排查效率编译环境检查清单在开始编译前建议按以下清单检查环境✅ Python版本确保Python 3.8已安装✅ 交叉编译工具链验证工具链路径正确性✅ 系统依赖包flex、bison、cmake、dtc等基础工具✅ 网络连接确保能访问必要的代码仓库✅ 磁盘空间至少预留50GB可用空间常见错误代码速查表错误代码可能原因解决方案RWX权限警告安全编译选项修改Makefile添加-Wl,--no-warn-rwx-segmentfetch失败网络问题或文件缺失手动下载缺失文件到src目录命令找不到shell解释器问题切换为bash或添加#!/bin/bash库文件缺失版本不匹配更新脚本中的库文件路径 关键文件路径参考掌握以下关键文件路径能帮助你快速定位和解决问题内核配置文件hi-mpu/custom/openeuler/defconfig-kernel构建脚本hi-mpu/build/build_fs/build_hi3093_ext4.shoebuild配置文件src/yocto-meta-openeuler/.oebuild/features/openeuler-qt.yaml设备树文件hi3093_mcs_3with1.dts工具链环境/home/${USER}/hi3093_tool/toolchain/environment-setup-aarch64-openeuler-linuxhi-mpu构建流程涉及多个组件协同工作 实用技巧与优化建议编译加速技巧并行编译使用make -j$(nproc)充分利用多核CPU缓存利用合理配置ccache减少重复编译时间增量编译只修改必要文件避免全量重新编译版本兼容性注意事项openEuler 22.03与24.03在文件系统结构上有差异不同版本的QT组件可能需要不同的配置参数工具链版本需要与目标系统版本匹配网络问题备选方案当遇到网络下载问题时可以使用国内镜像源加速下载手动下载依赖包到指定目录配置代理服务器提高连接稳定性 总结与后续支持通过本文的FAQ大全你已经掌握了解决hi-mpu系统编译运行中90%常见问题的方法。记住关键点保持工具链更新、注意版本兼容性、合理配置编译环境。当遇到新问题时首先检查错误日志然后按照环境检查→配置验证→依赖确认的流程进行排查。系统化的问题排查流程能帮助你快速定位问题根源对于更复杂的问题建议查阅项目文档中的详细说明或参考社区讨论。hi-mpu作为openEuler生态的重要组成部分拥有活跃的开发者社区支持相信通过本文的指导你能够顺利解决编译运行中的各种挑战【免费下载链接】hi-mpuhi-mpu is the open source repository for the mpu chip driver package. This repository provides the source code for the chip driver, driver dependencies, and build project configurations.项目地址: https://gitcode.com/openeuler/hi-mpu创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考