皮皮网
皮皮网

【git简易源码】【spring加载源码】【testlink源码解析】aarch源码编译

时间:2024-12-23 22:43:09 来源:开源网校源码进

1.QEMU搭建arm环境1-直接启动kernel
2.(未完)ubuntu20.04 qt6.2.4 aarch64 开发编译环境配置
3.MindSpore环境配置记录(一):centos 7.6 aarch 64版本下安装Anaconda,源译升级GLIBC,码编make 升级,源译Gcc升级
4.手把手搭建qemu+buildroot开发环境
5.GCC 源码编译安装
6.AARCH64 开发系列1: AARCH64 环境搭建

aarch源码编译

QEMU搭建arm环境1-直接启动kernel

       QEMU搭建ARM环境:从启动kernel到SD卡镜像

       要通过QEMU模拟ARM系统,码编首先需要选择合适的源译模拟器,如qemu-system-arm针对位Arm cpu(如Arm9,码编git简易源码 Arm、Cortex-A7/A9/A),源译而qemu-system-aarch则针对位Arm cpu(如Cortex A,码编 A)。使用`qemu-system-arm -machine help`可以查看支持的源译开发板。

       搭建过程中,码编先要安装交叉编译工具链,源译从Linaro官网下载并配置环境变量。码编接着,源译从Linux官网获取6.6.8版本的码编kernel源码,注意处理可能的源译编译依赖库安装问题。编译成功后,将生成kernel文件。

       对于BusyBox,无需修改配置,编译完成后会在当前目录生成_install文件夹,这部分将在根文件系统构建中发挥作用。手动构建rootfs时,需要在rootfs下创建必要目录,如lib、proc、sys等,并将BusyBox的_install目录文件复制,以及工具链sysroot目录的lib文件(如Linaro的sysroot-glibc-linaro)。记得减小库文件大小以便于镜像。

       创建rcS脚本,挂载proc和sysfs,执行设备节点扫描。spring加载源码随后,使用`sudo ./rootfs.sh`打包镜像。在启动QEMU虚拟机时,可以选择使用Ubuntu作为根文件系统,通过挂载SD卡的根文件系统,如`sudo create_qemu_ubuntu.sh`生成QEMU SD卡镜像。

       为了获得更完善的Ubuntu rootfs,可以考虑使用chroot配合qemu,或者通过debootstrap定制。同时,处理apt update时可能出现的证书错误,将)

       安装交叉编译器:

       先看看自己虚拟机(PC)的信息

       然后看下嵌入式设备(arm)的信息

       针对arm嵌入式系统,使用Ubuntu.系统apt 安装交叉编译器, 其安装命令是

       通过这个指令获取就不用下面的操作下载压缩包了,

       从网盘获取交叉编译器、Qt库文件(针对aarch平台)、sysroot文件 # 复制文件到虚拟机系统中

       查看解压到的位置

       查看刚才解压的文件。

       安装完了之后在terminal中输入aarch + TAB,如下就是安装成了:

       编译源码测试:

       先写个c文件交叉编译试试

       main.cpp内容:

       编译通过后通过file指令查看文件类型是否是ELF:bit LSB shared object,ARM aarch...。如果是,则完成源码编译。

       编译后生成了main可执行文件,拷贝到arm平台测试,查看输出:hello world!!!。

       Qt编译arm(aarch)环境搭建

       下载qt6.2.4源代码,在虚拟机上编译aarch版本的库文件

       打开QT Creator,打开kits配置套件

       如下添加一个/opt目录下的qmake

       添加gcc g++ aarch编译器

       添加一个构建套件kit, 如下:

       源程序选择构建套件并运行:

       在嵌入式设备linux系统上运行编译好的程序:

       复制Qt库到板卡,然后设置相应的环境变量,就可以运行程序。 先复制前面编译的testlink源码解析Qt程序到板卡,然后简单运行程序:

       使用winscp拷贝依赖文件到嵌入式设备上,如树莓派:

       解压完成后,设置该库为环境变量

       并重新运行程序

       如果要永久变更,就在~/.bashrc中写入

       终端运行:

       板卡上可能要安装一些库

MindSpore环境配置记录(一):centos 7.6 aarch 版本下安装Anaconda,升级GLIBC,make 升级,Gcc升级

       在centos 7.6 aarch 版本下,安装Anaconda时遇到了最低要求GLIBC为2.的问题。初始版本的GNU libc为2.,这意味着需要进行升级。然而,直接升级GLIBC存在风险,可能导致系统崩溃,因此建议在个人环境中反复测试确保无误后再在生产环境操作,且不要直接从2.跳到2.,应逐版本升级。

       尝试以root权限直接升级到2.失败,导致系统崩溃。遇到问题后,有人建议可以制作引导盘进行恢复,但尝试失败。因此,建议谨慎处理Glibc升级,最好逐版本升级,并在docker中进行测试。

       在处理过程中,为了避免系统崩溃,先在新创建的用户MStest下进行GCC和Make的升级。首先,添加新用户并下载所需依赖到Downloads目录,然后验证并安装了Make 4.3。flask 网站 源码尽管Make升级成功,但gmake版本仍需更新。在确认需要升级GCC后,从GCC 4.8开始,通过下载源码、安装依赖并编译来完成升级。

       尽管GCC升级过程复杂,还需要配置环境变量,但最终遇到的问题是升级glibc时,发现Python版本不匹配。解决Python和zlib问题后,编译glibc时仍然遇到了问题,尝试使用非root用户失败,导致系统崩溃。最后,由于一系列问题,只能选择重装系统。

       总结教训:避免直接跨版本升级Glibc,尤其是作为root用户,务必在备份后进行,并考虑在低版本环境中编译应用或选择特定版本的安装包。更多详细步骤和经验可以在后续文章中找到。

手把手搭建qemu+buildroot开发环境

       本文将指导您从零开始构建QEMU+Buildroot的ARM开发环境,以简化移植工作并自动构建定制化的嵌入式根文件系统。无需繁琐的移植,只需通过menuconfig配置所需的特性,Buildroot将自动处理源码下载、编译和打包,省去了大量手动操作。

       环境准备

       在Windows 上,借助VMware ,artmethod源码解释选择Ubuntu .作为虚拟机系统,设定为位的Cortex-a处理器。

       依赖安装

       为了搭建环境,首先需要安装QEMU 8.2.0和Linux Kernel 5..,以及AARCH的工具链。从QEMU官网获取8.2.0源码,确保Python版本大于3.8和glib2.0环境。

       配置与编译

       在已安装依赖的前提下,进入QEMU源码目录,配置并编译。配置过程中,针对ARM架构进行定制。接着,下载并解压Buildroot ..1,配置kernel,关注关键选项。

       执行buildroot编译,生成Image、roots.ext4和start-qemu.sh文件。在start-qemu.sh中,需修改第行,登录console时使用root账户。

       启动与操作

       启动QEMU,登录后,可通过组合键退出当前会话(CTRL + a, x)。作者潘小帅,Linux技术爱好者,欢迎关注他的微信公众号“Linux随笔录”,持续获取更多技术分享。

GCC 源码编译安装

       前言

       本文主要介绍如何在特定条件下,通过源码编译安装GCC(GNU Compiler Collection)4.8.5版本。在Linux环境下,特别是遇到较老工程代码和低版本GCC适配问题时,网络仓库不可用,可通过下载源码进行本地编译安装。文章总结了该过程的步骤,以期帮助读者解决类似需求。

       Linux系统版本:SUSE Linux Enterprise Server SP5 (aarch) - Kernel \r (\l)

       GCC版本:gcc-4.8.5

       步骤如下:

       1,源码下载

       直接在Linux终端执行:wget ftp.gnu.org/gnu/gcc/gcc...

       或手动下载:ftp://gcc.gnu.org/pub/gcc/infrastructure

       选取对应的gcc版本下载。

       2,解压并进入目录

       解压下载的tar包:tar -jxvf gcc-4.8.5.tar.bz2

       进入解压后的目录:cd gcc-4.8.5

       3,配置依赖库

       联网情况下:cd gcc-4.8.5/

       ./contrib/download_prerequisites

       无法联网时,手动下载依赖库(如mpfr、gmp、mpc)并上传到指定目录,然后分别解压、重命名并链接。

       4,创建编译存放目录

       在gcc-4.8.5目录下执行:mkdir gcc-build-4.8.5

       5,生成Makefile文件

       cd gcc-build-4.8.5

       ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

       推荐配置时,根据环境调整参数,如X_环境下的`--disable-libsanitizer`。

       6,执行编译

       make(可能耗时较长)

       解决可能出现的问题,如libc_name_p和struct ucontext uc,通过参考gcc.gnu.org/git或直接覆盖相关文件。

       7,安装GCC

       在gcc-build-4.8.5目录下执行:make install

       安装完成后,可直接解压并安装。

       8,配置环境变量

       执行命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/gcc-4.8.5/mpc:/root/gcc-4.8.5/gmp:/root/gcc-4.8.5/mpfr

       确保路径一致,执行 source /etc/profile 使环境变量生效。

       9,检查安装情况

       通过`gcc -v`和`g++ -v`验证GCC版本。

       ,库升级

       遇到动态库未找到问题时,需升级gcc库,通过查找和替换最新库文件解决。

       ,卸载系统自带的gcc

       以root用户执行:rpm -qa |grep gcc | xargs rpm -e --nodeps

       ,修改ld.so.conf文件

       编辑文件:vi /etc/ld.so.conf,在最下面添加实际路径,如/usr/local/lib和/usr/local/lib。

       执行 ldconfig /etc/ld.so.conf。

       ,修改GCC链接

       确保GCC及其相关工具的正确链接,使用`ll /usr/bin/gcc*`和`ll /usr/bin/g++*`检查链接结果。

       至此,GCC源码编译安装流程完成,可满足特定环境下的GCC版本需求。

AARCH 开发系列1: AARCH 环境搭建

       在个人电脑的x环境下搭建AARCH开发环境,对有兴趣深入Arm相关技术的开发者来说是至关重要的。本文指导你如何快速搭建此开发环境,以适应Arm服务器的迅猛发展需求。

       通过访问docker-hub,可以找到名为dev4arm/aarch:ubuntu_._sve的Docker镜像,这为AARCH环境搭建提供了方便。通过提供的命令,你可以轻松进入AARCH开发环境,或者按照附录中的步骤,手动创建开发环境。

       尽管官方发布的gcc版本尚不支持SVE intrinsics,但在GitHub上,一个名为gcc-mirror的仓库提供了包含aarch/sve-acle-branch分支的源代码。通过手动编译此分支的源代码,可以生成支持SVE intrinsics的gcc编译器,更多详情请查阅相关参考资料。本文所构建的AARCH开发环境已内嵌一个支持SVE intrinsics的gcc编译器,以满足这一需求。

       使用此内置的gcc_sve目录下的支持SVE intrinsics的编译器,你可以在开发环境中完成所有代码的测试、编译。实验代码已包含在dev4arm/aarch:ubuntu_._sve Docker镜像中。

       接下来,我们将逐步介绍在AARCH环境中执行基本汇编编译与运行、Neon、Neon intrinsics、SVE以及SVE intrinsics的编译与运行。

       在~/work/aarch_asm目录下,你可以找到一个用于测试AARCH基本汇编的内置程序。通过执行makefile,可以获取相关结果。Neon的测试代码位于~/work/neon目录下,提供了关于Neon编译与运行的实例。接下来,我们关注Neon intrinsics的编译与运行,以及SVE相关的编译与运行。

       SVE的测试代码位于~/work/sve目录下,通过SVE指令计算字符串长度的示例展示了SVE汇编编译与运行的过程。在SVE intrinsics部分,我们提供了一个通过SVE intrinsics进行批量运算的示例。

       对于希望手动构建AARCH开发环境的读者,附录提供了必要的指导,包括下载附件和在命令行上执行特定命令以创建环境。

       在参考文献中,我们引用了几个关键资源,帮助读者深入了解AARCH开发环境搭建的各个细节,包括SVE在QEMU的使用、交叉编译支持SVE ACLE的gcc、qemu-user-static release以及Arm编译工具链下载等。

RK开发笔记(一):基于方案商提供的宿主机交叉编译Qt5..

       本文旨在详细记录RK开发车机时,针对未预编译Qt5..版本的宿主机环境,进行自行交叉编译Qt系统的操作过程。通过以下步骤,我们可以实现Qt系统的顺利安装与使用,为后续的开发工作奠定基础。

       首先,我们对宿主机进行准备。下载并运行宿主机,注意该环境仅提供SDK,但未包含交叉编译Qt的版本。

       接下来,下载Qt5..的开源软件,作为后续编译的基础。同时,下载并准备交叉编译工具链以及目标编译系统所需的sysroot文件系统,确保所有依赖均已就绪。

       正式进入交叉编译Qt的流程。我们首先解压编译工具链,通过对比发现,虽然单独提供的工具链中缺少bin目录下的g++工具,但实际开发板提供的SDK中包含该组件,因此我们选择复制SDK中的bin目录内容,以确保g++工具可用。

       为了方便后续操作,建立一个env.sh脚本,引入交叉编译工具链。通过source env.sh命令激活环境,确保路径正确设置,便于后续编译操作。注意,环境配置时需与方案提供的平台相匹配,确保编译过程顺利进行。

       紧接着,解压qt源码并进入配置阶段。在qt-everywhere-src-5..目录下,修改平台配置文件,指定编译器名称、配置选项以及目标平台等关键信息。使用bash脚本方式构建配置文件,简化操作流程,如:

       #!/bin/bash

       ./configure \

       -prefix /home/ht/work/build-qt5.. \

       -sysroot /home/ht/work/sysroot \

       -confirm-license \

       -opensource \

       -release \

       -make libs \

       -xplatform linux-aarch-gnu-g++ \

       -no-opengl \

       -no-feature-completer \

       -verbose

       配置完成并保存后,运行脚本执行编译操作。在编译过程中,可能出现路径错误等问题,如用户路径设置问题,应根据实际情况进行调整。

       编译工作完成后,进行Qt的安装。通过执行make install命令,将Qt系统安装至指定目录,至此,Qt5..的交叉编译过程顺利完成。

更多内容请点击【百科】专栏