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
Ensure Linux arm64 is working properly #4051
Comments
ping @jmacato |
Now you can unofficially build Wasabi to ARM/ARM64.. I personally use it most of the time (because x86 is a hot mess, with AMD PSP and Intel ME crap in it + spectre BS) but it misses the bitcoin full node and HWI functionality. |
Can you explain how? I see .NET as a dependency, and the issue yahiheb linked to above says that isn't available for arm. How can I build it the way you do? |
I believe you will have to do some research on your side. I would start with this: # Clone the repo
git clone https://github.com/zkSNACKs/WalletWasabi.git
cd WalletWasabi
# Attemp to publish for linux-arm64 in `dist` folder.
dotnet publish --configuration Release --force --output "./dist" --self-contained true --runtime "linux-arm64" -fl /p:VersionPrefix=1.1.20 --disable-parallel --no-cache /p:DebugType=none /p:DebugSymbols=false /p:ErrorReport=none /p:DocumentationFile=\"\" /p:Deterministic=True; List of Linux RIDs is here: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#linux-rids (From #3950 (comment)) But given that I don't have linux-arm64 I can't test it. So as said here #2189 (comment), it's not officially supported and you are on your own in this. |
Off topic - HWI functionality is available on ARM systems. I've gotten my hardware wallets working with ARM (you can refer to this project which I'm maintaining which bundles specter desktop in a cross platform docker container . No issues running a full node too. Though I'd love to see arm64 support so I can use this on my pinebook |
you'd have to also change the following --- a/WalletWasabi.Backend/WalletWasabi.Backend.csproj
+++ b/WalletWasabi.Backend/WalletWasabi.Backend.csproj
@@ -1,7 +1,7 @@
<EF><BB><BF><Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <PlatformTarget>x64</PlatformTarget>
+ <PlatformTarget>arm64</PlatformTarget>
diff --git a/WalletWasabi.Gui/WalletWasabi.Gui.csproj b/WalletWasabi.Gui/WalletWasabi.Gui.csproj
index f616a4e88..f1150b4c5 100644
--- a/WalletWasabi.Gui/WalletWasabi.Gui.csproj
+++ b/WalletWasabi.Gui/WalletWasabi.Gui.csproj
<PropertyGroup>
- <PlatformTarget>x64</PlatformTarget>
+ <PlatformTarget>arm64</PlatformTarget> It does build, however this is now the error when you try to run it (don't have much dotnet experience here). But appears that the
|
@nopara73 I think arm is becoming way more important... we need to look into supporting ARM on OSX, and Linux, id imagine in 12 months time... Windows on ARM may start to become popular enough to warrant it also. |
Looks like theres an issue with fonts on that branch
|
I think with Apple recently announcing their complete migration to arm64, and the new boom in Linux for arm64, that arm64 should be strongly considered now. Will Wasabi 2.0 be based on the same foundation (.Net, etc) or will it be entirely different? |
ACK, I added this to the WW2 board, but I have no idea what's needed here and what it entails. @danwalmsley, would @jmacato have time to deal with this for WW2 as he's already done something before it may be the most reasonable to task him. |
Talked with @danwalmsley and @jmacato :
|
From master branch ? |
Yes. |
@nolim1t sorry I made a mistake, it's not the |
Current status of ARM64 support:
|
neofetch is good, please post it here |
Similar issue in avalonia repo: AvaloniaUI/Avalonia#4427 |
neofetch
|
@nolim1t can you try installing |
cool that worked. Should mention this in the docs for the next release too |
@nolim1t yeah i think we should... but srlsy.. arch distros are weird lol |
Any updates on this? i am able to run How do I package this? I tried following the instructions at |
@sgulls One important note though: You are building (most likely) x64 version, not
Historically, Packager was written to work on Windows-only. There are some minor improvements in the pipeline (like #6810) that makes it better but ultimately Packager is not ready to be run on non-Windows OS yet. Anyway, I have a rough patch to improve Packager and to improve building for Apple Silicon but it's not finished yet. But if you can contribute a patch that would help with this, then great :-) |
No I know I’m not because I changed all the runtime IDs throughout and it still compiled and ran. Plus, Activity Monitor reports “Apple Silicon”. However, the tor binary it bundles in is indeed x64. But both tor and just recently tor browser have been successfully compiled and running on arm64-Darwin. |
Yeah, then it's correct 👍
Thanks for the info. Good to know. |
@jmacato @danwalmsley what's the status of this? |
Apple Silicon (macOS) supportRegarding Apple Silicon (macOS) support we did:
and it works for @jmacato and me (last time I checked). Note that Tor we use on this platform is x64 and it runs under Rosetta. There was no build for macOS-arm64 last time I checked. linux-arm64 supportRegarding Tor for linux arm64:
HWI: bitcoin-core/HWI#345 - still open; though there is kiminuo/HWI#1 PR. |
I've been running Wasabi on linux-arm64 for years, Avalonia support is good but the Tor Browser binaries for linux-arm64 are not made yet. We could use debian-arm for it but idk if we will allow that. Aside from that it works good enough here on my linux arm64 laptop. |
There wont be any official support for this platform for now. Closing. |
What is the reason to close this issue? |
Re-opening. The progress here is very slow but:
Any help is welcome. |
3d3c02d Improve (Kiminuo) ee3cf5f Add release instructions (Kiminuo) d93c8f7 Add support for arm64 (Kiminuo) Pull request description: Related to #345 Related to zkSNACKs/WalletWasabi#4051 (comment) Discussion: Some discussion here: kiminuo#1 This PR just shows how to do a deterministic build for `arm64` architecture. The hope is HWI's support for `arm64` will improve a bit. ### Setup To set up your environment, install: ```s sudo apt install qemu-user-static ``` ### Build for arm64 Use [docker buildx](https://docs.docker.com/buildx/working-with-buildx/) to replicate [deterministic build instructions](https://github.com/bitcoin-core/HWI/blob/master/docs/development/release-process.rst#deterministic-builds-with-docker) for the arm64 build: ```s docker buildx build --no-cache --platform linux/arm64 -t hwi-builder -f contrib/build.Dockerfile . # Note the use of "--without-gui". docker run --platform linux/arm64 -it --rm --name hwi-builder -v $PWD:/opt/hwi --workdir /opt/hwi hwi-builder /bin/bash -c "contrib/build_bin.sh --without-gui && contrib/build_dist.sh --without-gui" ``` i.e. the change is: ```diff -docker build --no-cache -t hwi-builder -f contrib/build.Dockerfile . -docker run -it --name hwi-builder -v $PWD:/opt/hwi --rm --workdir /opt/hwi hwi-builder /bin/bash -c "contrib/build_bin.sh && contrib/build_dist.sh && contrib/build_wine.sh" +docker buildx build --no-cache --platform linux/arm64 -t hwi-builder -f contrib/build.Dockerfile . +docker run --platform linux/arm64 -it --rm --name hwi-builder -v $PWD:/opt/hwi --workdir /opt/hwi hwi-builder /bin/bash -c "contrib/build_bin.sh --without-gui && contrib/build_dist.sh --without-gui" ``` ### Resources * https://docs.docker.com/build/building/multi-platform/#building-multi-platform-images * https://medium.com/@artur.klauser/building-multi-architecture-docker-images-with-buildx-27d80f7e2408 ## Limitations ### No GUI support So far I had no luck with building `hwi-qt` because I get the following error ``` Installing dependencies from lock file Package operations: 14 installs, 0 updates, 0 removals • Installing shiboken2 (5.15.2): Failed RuntimeError Unable to find installation candidates for shiboken2 (5.15.2) at ~/.pyenv/versions/3.9.7/lib/python3.9/site-packages/poetry/installation/chooser.py:72 in choose_for 68│ 69│ links.append(link) 70│ 71│ if not links: → 72│ raise RuntimeError( 73│ "Unable to find installation candidates for {}".format(package) 74│ ) 75│ 76│ # Get the best link ``` during execution of [`poetry install -E qt`](https://github.com/kiminuo/HWI/blob/a025af3ee3fdf0bac8dbdbc51b9e82ab946660b4/contrib/build_bin.sh#L12) That's why I use `build_bin.sh --without-gui` (see #655) ACKs for top commit: achow101: ACK 3d3c02d Tree-SHA512: 3df877ec3da07997c8281722ea0ec4687d850f1fec33cb5664e3f03cd8854cb02a90ce799da2123a88058b681fbb2bad31bdacbb485474d19fa88b60a4b73d83
You can find the Tor arm64 (and other arch) builds for different debian and ubuntu versions here: https://deb.torproject.org/torproject.org/pool/main/t/tor/ |
Is your feature request related to a problem? Please describe.
With the rise of Linux arm devices, including the Librem5 and PinePhone, there is a need for a Bitcoin wallet that can run on arm64.
Describe the solution you'd like
Arm64 build for Linux. An additional enhancement would be to make the UI adaptive, so it can work on mobile screen sizes.
Describe alternatives you've considered
There are currently NO Bitcoin wallets that meet these criteria.
The text was updated successfully, but these errors were encountered: