Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AArch64/arm64 support? #3291

Closed
jdstroy opened this issue Sep 30, 2021 · 12 comments
Closed

AArch64/arm64 support? #3291

jdstroy opened this issue Sep 30, 2021 · 12 comments
Labels
help wanted Extra attention is needed linux packaging

Comments

@jdstroy
Copy link

jdstroy commented Sep 30, 2021

Hello,

Would it be possible to build arm64 binary packages for Ubuntu 20.04? I see that the advice is to avoid distribution packaging, but binaries aren't on xpra.org for arm64/aarch64.

Thanks.

@totaam
Copy link
Collaborator

totaam commented Oct 1, 2021

I don't have any experience building arm packages on x86_64, I would prefer using buildah since that's what the build scripts already use, but it's not clear to me how feasible that is.
https://buildroot.org/ seems to be another popular option.

@totaam
Copy link
Collaborator

totaam commented Oct 1, 2021

Doing a v3.1.x build today on a PI model B for #3288: this took over 3 hours before it failed at the very end! 😠
So I ended up doing some experimental beta builds on the PI4, which you can find here:
https://xpra.org/beta/buster/main/binary-armhf/
https://xpra.org/beta/buster/main/binary-arm64/

But I can't do this by hand for every release, for every sub-arch and for every distro...


I'm going to have to play with buildah and try to understand exactly what this does:

buildah from --arch arm64 --name "fedora-35-arm64-build" fedora:35

@jdstroy
Copy link
Author

jdstroy commented Oct 2, 2021

If it helps, Oracle Cloud has no-cost ARM servers available for the public. They should be considerably faster than building on a Raspberry Pi.

Linux jean 5.11.0-1016-oracle #17~20.04.1-Ubuntu SMP Thu Aug 12 06:20:07 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
processor       : 3
BogoMIPS        : 50.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x3
CPU part        : 0xd0c
CPU revision    : 1

(Incidentally, this is why I'm interested in builds for arm64; I'd like to use Xpra with audio, and the version downstream doesn't support that.)

@totaam
Copy link
Collaborator

totaam commented Oct 2, 2021

It turns out that buildah does some magic and invokes qemu-aarch64-static when we create an --arch arm64 image.
From then on, all the build scripts just work the same.
Emulation is not super-fast on my old i7 CPU, but it does seem to emulate multiple cores and this is a lot better than running on a RPI. The key thing is that it can be fully automated just like the other builds.

The build scripts updates are here:
Xpra-org/repo-build-scripts@71f39e4

@jdstroy
Copy link
Author

jdstroy commented Oct 2, 2021

Awesome, thank you! I'm looking forward to trying xpra-4.x.x on AArch64!

@totaam
Copy link
Collaborator

totaam commented Oct 3, 2021

There are beta packages for:

  • Ubuntu Focal
  • Ubuntu Hirsute
  • Debian Bullseye
  • Fedora 34

in the beta area: https://xpra.org/beta/

The following distros should be coming later:

  • Fedora 35
  • CentOS / RHEL 8

This required a number of changes and fixes to the build scripts:
Xpra-org/repo-build-scripts#3

@jdstroy / @rrthomas please let me know if those work for you so that I can close this ticket.

@rrthomas
Copy link
Contributor

rrthomas commented Oct 3, 2021

@totaam Sorry, I'm not sure why I subscribed to this issue! (I remember playing with xpra back in August, but that was to run Audacity conveniently via run_scaled on an x86_64 machine…)

@jdstroy
Copy link
Author

jdstroy commented Oct 3, 2021

Spectacular, thank you! I've upgraded to Xpra 4.3 on Ubuntu 20.04 on AArch64 and now I have remote audio.

@arrowd
Copy link
Contributor

arrowd commented Oct 24, 2021

Just a note that FreeBSD 13 and 14 also have the binary Xpra package for AArch64.

@totaam
Copy link
Collaborator

totaam commented Nov 5, 2021

As of now, we produce arm64 packages for:

  • Fedora 34 and 35
  • CentOS 8
  • Ubuntu focal and hirsute
  • Debian bullseye

More can be added easily enough:
https://github.com/Xpra-org/repo-build-scripts

@totaam
Copy link
Collaborator

totaam commented Dec 4, 2021

For CUDA support: #3378.

@totaam
Copy link
Collaborator

totaam commented Jul 20, 2024

For the record, making arm64 builds takes time, a lot of time. Even on powerful x86 hardware.
Building an updated Cython just took 23 hours.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed linux packaging
Projects
None yet
Development

No branches or pull requests

4 participants