How To Install Box86 on Manjaro Arm64

Dear All,

In my previous post in the old forum, I had discussed on how to run x86 applications with help from the community by using qemu-user-static and debootstrap:

However, after so much testing I found that Qemu is kind of slow to run an x86 application. And also at the moment qemu-user-static from AUR package failed to compile by using the latest Manjaro kernel, therefore it might be hard for you to follow.

After doing some research I found that there is a better alternative to Qemu in emulating x86, it is called “Box86”. It runs game faster than Qemu and probably runs faster than Hangover-Wine as well.

In fact there is a Distro called “TwisterOS” that manages to run “Box86” out of the box with high performance, but it is only limited for “Raspberry Pi” and “RK3399” chip. Even it can run a windows game very smoothly:

https://twisteros.com/

I found the “Box86” package in AUR but it is limited to “armhf”

https://aur.archlinux.org/packages/box86-git/

It is said that to be able to compile box86 I have to use chroot 32 bit system.

While at the moment “Qemu-user-static” from AUR package failed to compile.

Is there any option to bootstrap directly an “armhf” manjaro on “arm64” Manjaro version?

Many thanks,
rna

We do not provide a 32bit Manjaro-Arm image.

1 Like

Is there anyway to bootstrap other “armhf” distro like debian? but without installing “qemu-user-static”

You could go with the chroot method to spin up a debian environment. Haven’t tried it myself.
The other way would be to use the chromium-docker as inspiration to get box86 working in pretty much the same way :slight_smile:

Instead of the docker container you can also use systemd-nspawn, which is installed by default… Run Desktop Apps with systemd-nspawn Container | LIOLOG

I used this for a chromium widevine install in the Sway profile with much success: overlays/sway/usr/local/bin/install_chromium_widevine.sh · master · manjaro-arm / applications / arm-profiles · GitLab

2 Likes

Hello,

I have been looking into this but it is only available for arm32bit version and this lead me to a dead end until box86 team come up with arm64 version of it.
I have discussed with twister os team and they seem to use multi-arch method where they have 64bit and 32bit userspace libraries which is alot of overhead for arm devices.

We will have to wait for box86 team to get it to work on arm64 until then someone can work with box86 to get it to work on arm64 arch.

Thank you for bringing this up.

This is actually what I am expecting from manjaro Arm. But, unfortunately Manjaro is only distributed in 64bit. But I don’t know if it is possible to add multi-arch on Manjaro.

Last time I tried docker, it failed to run the arm32 version. It can run only if “binfmt_misc” is installed from “qemu-user-static”. But at the moment the AUR package failed to compile in the latest manjaro version.

I’ll have a look at your link first, thank you

1 Like

No it is not possible with the current resource we have, It takes alot of time to maintain support for a single architecture.

1 Like

Good News,

Finally I am successfully compiled the Box86 on Arm64 without using Qemu (No Need for Binfmt_misc compiled in your Kernel). The performance is quite promising as I am successfully installed Sketchup 7.1 and Sketchup 8 with very good graphic performance despite of using LLVM Pipe. At the moment I did this in Armbian, but in Theory Manjaro should also work.

And The Good News is that compiling Box86 in Aarch64 is quite easy compared to compiling “Qemu-User-Static” and “Hangover”, yet the result is quite unbelievably fast. It reminds me of kind of like “Rosetta 2” on Apple Silicon (It still needs some improvements).

The script is the same as my previous post, except remove everything related to Qemu and use debootstrap debian buster armhf, then you are good to go.

Here’s my report in Armbian for those of you that want to try it quickly:

Many Thanks to Ptitseb for bringing this technology into reality!

Super Awesome

3 Likes

I can confirm that chrooting to Debian Buster Armhf seems to work perfectly to run Wine x86 under Box86 on Manjaro Arm. And the graphics is amazingly good for LLVM Pipe drivers. Much better than Qemu.

Sketchup 7.1 running on Aarch64 Manjaro

FreeDraft running on Aarch64 Manjaro

Game Typer Shark running on Aarch64 Manjaro

To compile properly, use my command on armbian forum. To install schroot and debootstrap, use:
yay -S schroot debootstrap

Everything is the same command from here, except for the first line:

Hope that helps!

Many thanks
rna

4 Likes

This is great, it would be even better if it worked
Due to the lack of C.UTF-8, the schroot fails, after 3-4 hours I have given up
Maybe there is a trick?
When I give --debug it seems to choke on wineusb, everytime

from your .bashrc

make sure that this code is entered to the bottom line

export LANGUAGE=“C”
export LC_ALL=“C”
export DISPLAY=:0

usually when you copy and paste, in my case the format is changed for “C”
therefore, you have to edit it after copy-paste procedure, or you can also type it manually.
Make sure that it has to be exactly those line.

and don’t forget to enter those .bashrc twice according to my tutorial.

Hope that helps

Yes, I found the malformed “C”
Even though it is LC_ALL=“C” , locale returns LC_ALL=C, lost quotes
I have managed to run winemine, winecfg, notepad, wineconsole,
but not notepad++
In step 7, sudo schroot … returns you out of chroot, so have to do real chroot to /usr/sbin/adduser
ie, ls; sudo schroot …; ls , shows same place

Glad that you make it!

Notepad ++ old version should work maybe

Nope, you are within chroot environment, but because your username is the same as your main system name, therefore you share the same home.

If you look closely, in step 8, you have to exit twice to enter to your real user home folder.

OK, that makes it a lot more clear, but if user is same, why adduser and repeat .bashrc edit?

Because they are different.

One is for your Real user
One is for your Chroot user

If you don’t do this, you’ll get trouble that you cannot solve in 3-4 hours earlier

If you don’t adduser you have to use chroot from sudo, meanwhile using sudo will prevent you from using GUI. Therefore you have to adduser to overcome this problem

Look at the last code (number 13 and 14), when installing and deploying an app, you do not need to enter sudo. Because you have add a user. Therefore now you can install any x86 apps that utilize GUI without a problem.

OK, that now makes sense, thanks for help

You are welcome

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.