containers icon indicating copy to clipboard operation
containers copied to clipboard

Provide Arm-based OS container

Open Damien-Chen opened this issue 10 months ago • 10 comments

In future, more and more people may use Arm-based system to develope UEFI system firmware. According to the issue in edk2 here.

We should provide Arm-based container for edk2 CI pipepline. May I know if the Tianocore members is happy with these ?

If it`s feasible, I will develop the Arm-based container for it.

Damien-Chen avatar Jun 23 '25 07:06 Damien-Chen

Sounds good to me.

osteffenrh avatar Jun 24 '25 06:06 osteffenrh

Please start with the Fedora 41 image, since this will be used in the x64 CI.

osteffenrh avatar Jun 24 '25 06:06 osteffenrh

Understood, will start on Fedora 41 AArch64 container.

Damien-Chen avatar Jun 24 '25 11:06 Damien-Chen

It seems that git-credential-manager don`t have linux Arm-64 version, @osteffenrh from your point of view, how to handle that ?

Damien-Chen avatar Jul 10 '25 11:07 Damien-Chen

That is only used for developer convenience. CI does not use it. I think we can do without for now.

osteffenrh avatar Jul 10 '25 14:07 osteffenrh

It can build build_step "ArmVirtPkg/PlatformCI/QemuBuild.py" "AARCH64" build_step "ArmVirtPkg/PlatformCI/QemuBuild.py" "ARM" Bud always fail on build_step "OvmfPkg/PlatformCI/PlatformBuild.py" "X64"

To build X64 on Arm-64 OS, we need to install gcc-x86_64-linux-gnu cross compiler. But I try export GCC, or anything other method. It still fail to build OvmfX64.dsc https://github.com/Damien-Chen/containers/actions/runs/16625140524/job/47039392313

Damien-Chen avatar Jul 30 '25 15:07 Damien-Chen

Hm yeah, it is calling "gcc" which is probably the aarch64 one and not the x86_64 cross. Not sure why that is the case though.

osteffenrh avatar Jul 30 '25 16:07 osteffenrh

I found someone faced similar error as mine https://forums.developer.nvidia.com/t/question-about-edk2-uefi-build/236888

In installation, the followin error happen in Check(Linux) stage: Note: It`s part of error log.

ERROR - mu_nasm is host specific, but does not appear to have support for Host(os='Linux', arch='ARM', bit='64'). ERROR - Verify support for detected host: Host(os='Linux', arch='ARM', bit='64') and contact dependency provider to add support. ERROR - Otherwise, delete the external dependency directory to reset. ERROR - edk2-acpica-iasl is host specific, but does not appear to have support for Host(os='Linux', arch='ARM', bit='64').

I think some packages are still not available on Arm-64 platform.

Damien-Chen avatar Aug 09 '25 06:08 Damien-Chen

Hm.

The Check(Linux) stage is only there as a simple smoke-test to see if the image can build something at all. This can be modified or skipped if we feel that it helps us.

Are you able to cross-build OvmfPkg for x64 at all, locally (without using the CI)?

osteffenrh avatar Aug 11 '25 07:08 osteffenrh

Yes, I think I can modify the script so that it will not build OvmfPkg on AArch-64 OS temporarily.

Damien-Chen avatar Aug 15 '25 15:08 Damien-Chen

Close it as already completed

Damien-Chen avatar Dec 16 '25 13:12 Damien-Chen