从零开始的openEuler/CCA开发环境搭建:依赖安装到源码编译全攻略
2026/7/2 20:53:06 网站建设 项目流程

从零开始的openEuler/CCA开发环境搭建:依赖安装到源码编译全攻略

【免费下载链接】CCAARM Confidential Computing Architecture stacks and solutions项目地址: https://gitcode.com/openeuler/CCA

前往项目官网免费下载:https://ar.openeuler.org/ar/

openEuler/CCA是ARM Confidential Computing Architecture(机密计算架构)的开源实现,本文将带你完成从依赖安装到源码编译的完整开发环境搭建流程,帮助新手快速上手这一安全计算技术。

📋 环境准备:硬件与系统要求

搭建openEuler/CCA开发环境需要满足以下基础条件:

  • 处理器架构:aarch64(ARM64)
  • 操作系统:openEuler-25.09
  • 内核版本:Linux 6.6.0-102.0.0.5.oe2509.aarch64(Host及Guest)
  • 终端工具:建议使用MobaXterm Professional Edition v10.5及更高版本

🚀 第一步:安装核心依赖工具

1.1 初始化repo工具

repo工具用于管理多仓库代码,执行以下命令安装:

curl -L https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod +x repo

1.2 配置rpmbuild环境

rpmbuild用于构建RPM包,执行:

yum install rpm-build mkdir -p /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

1.3 安装必备依赖包

执行以下命令安装开发所需的依赖组件:

pip install cryptography -i https://pypi.tuna.tsinghua.edu.cn/simple yum install python3-pyelftools yum install acpica-tools yum install cmake yum install elfutils-libelf-devel dwarves yum install xterm xorg-x11-xauth yum install go

1.4 配置wget证书验证

创建wget配置文件关闭证书验证:

echo "check_certificate = off" > ~/.wgetrc

🔧 第二步:获取与初始化源码仓库

2.1 克隆openEuler/CCA项目

使用以下命令克隆官方仓库:

git clone https://gitcode.com/openeuler/CCA cd CCA

2.2 初始化QEMU虚拟环境

创建工作目录并同步代码:

mkdir ~/cca cd ~/cca repo init -u https://git.codelinaro.org/linaro/dcap/op-tee-4.2.0/manifest.git -b cca/v9 -m qemu_v8_cca.xml --repo-url https://mirrors.tuna.tsinghua.edu.cn/git/git-repo repo sync -j8 --no-clone-bundle

2.3 编译工具链

初始化构建环境并编译工具链:

cd build make -j8 toolchains make -j8

⚙️ 第三步:源码配置与编译

3.1 准备内核源码

获取并配置Linux内核源码:

# 安装内核源码包 rpm -ivh kernel-6.6.0-102.0.0.5.oe2509.src.rpm rpmbuild -bp /root/rpmbuild/SPECS/kernel.spec --nodeps # 拷贝源码到工作目录 mv ~/cca/linux ~/cca/linux-default cp -r /root/rpmbuild/BUILD/kernel-6.6.0/linux-6.6.0-102.0.0.5.aarch64 ~/cca/linux

3.2 配置内核编译选项

进入内核目录并配置编译选项:

cd ~/cca/linux make openeuler_defconfig

通过make menuconfig开启以下CCA必要选项:

CONFIG_NET_9P=y CONFIG_VIRTIO_CONSOLE=y CONFIG_NET_9p_VIRTIO=Y CONFIG_NET_FAILOVER=y CONFIG_VIRTIO_BLK=y CONFIG_SCSI_VIRTIO=y CONFIG_MACVLAN=Y CONFIG_MACVTAP=Y CONFIG_VIRTIO_NET=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_MMIO=y CONFIG_EXT4_FS=y CONFIG_NETFS_SUPPORT=y CONFIG_9P_FS=y CONFIG_TSM_REPORT=y CONFIG_ARM_CCA_GUEST=y

编译内核镜像:

make -j Image

3.3 编译QEMU与libvirt

3.3.1 准备QEMU源码
rpm -ivh qemu-8.2.0-44.oe2509.src.rpm rpmbuild -bp /root/rpmbuild/SPECS/qemu.spec --nodeps cp -r /root/rpmbuild/BUILD/qemu-8.2.0 ~/cca/
3.3.2 准备libvirt源码
rpm -ivh libvirt-9.10.0-18.oe2509.src.rpm rpmbuild -bp /root/rpmbuild/SPECS/libvirt.spec --nodeps cp -r /root/rpmbuild/BUILD/libvirt-9.10.0 ~/cca/
3.3.3 配置源码路径
cd ~/cca/out-br vim local.mk # 添加以下内容 QEMU_CCA_OVERRIDE_SRCDIR=~/cca/qemu-8.2.0 LIBVIRT_OVERRIDE_SRCDIR=~/cca/libvirt-9.10.0
3.3.4 编译QEMU
cd ~/cca/buildroot-external-cca # 应用补丁(详见官方文档) cd ~/cca/buildroot make qemu-cca-dirclean O=../out-br make -j qemu-cca O=../out-br
3.3.5 编译libvirt
cd ~/cca/buildroot # 应用补丁(详见官方文档) make BR2_EXTERNAL=../buildroot-external-cca cca_defconfig make menuconfig # 配置选项 make savedefconfig make libvirt-dirclean O=../out-br make -j libvirt O=../out-br

3.4 生成rootfs文件系统

cd ~/cca/build make buildroot

🖥️ 第四步:启动与验证环境

4.1 启动Host虚拟机

cd ~/cca/build make run-only

正常启动后会出现4个终端窗口:FirmWare、Host(Host OS)、Secure和Realm(Guest OS)。

4.2 创建并启动Guest虚拟机

4.2.1 创建配置文件

创建realm.xml配置文件:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>realm</name> <memory unit='MiB'>2048</memory> <vcpu placement='static'>2</vcpu> <os> <type arch='aarch64' machine='virt'>hvm</type> <kernel>/mnt/out/bin/Image</kernel> <initrd>/mnt/out-br/images/rootfs.cpio</initrd> <cmdline>rodata=full earlycon=pl011,0x10009000000 console=ttyAMA0</cmdline> </os> <launchSecurity type='cca'> <measurement-algo>sha256</measurement-algo> <personalization-value>ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEknbSBhIHRlYXBvdA==</personalization-value> <measurement-log state='off'/> </launchSecurity> <features> <gic version='3' its='on'/> <kvm> <hidden state='off'/> </kvm> </features> <cpu mode='host-passthrough'/> <devices> <console type='pty'> <target type='serial' port='0'/> </console> </devices> <qemu:commandline> <qemu:arg value='-nographic'/> </qemu:commandline> </domain>
4.2.2 启动虚拟机

在Host OS中执行:

# 配置libvirtd vim /etc/libvirt/libvirtd.conf # 设置 listen_tls = 0 并配置日志 # 启动服务 mkdir /var/log/libvirt && touch /var/log/libvirt/libvirtd.log virtlogd & libvirtd --daemon --listen --config /etc/libvirt/libvirtd.conf & # 创建并启动虚拟机 cd /mnt virsh define realm.xml virsh start realm
4.2.3 登录与验证
virsh console realm # 在Guest OS中执行证明报告生成命令 cca-workload-attestation report

📚 参考资料

  • 官方使用指南:docs/zh/2509/cca_user_guide.md
  • 驱动代码:driver/
  • SDK示例:sdk/samples/
  • 远程证明组件部署:sdk/coco/docs/部署远程证明组件.md

通过以上步骤,你已成功搭建openEuler/CCA开发环境。如果遇到编译错误,可以参考官方文档中的"常见编译错误"章节进行排查。祝你的机密计算开发之旅顺利!

【免费下载链接】CCAARM Confidential Computing Architecture stacks and solutions项目地址: https://gitcode.com/openeuler/CCA

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询