How to install anbox on manjaro?

I tested kernel 5.7.17-2 as the commit showed it added the flags, however /proc/config.gz does NOT shot the flags enabled and Binder is not mounted and neither is ashmem I think its the same Issue I had when I had to manually enable the anbox related flags using nconfig

Kernels 5.7 and 5.8 with anbox support are now available on unstable

Warning - 5.7 is EOL - I only make the build if there were problems with 5.8

So, currently it seems that maintaining anbox in the repos might not be feasible. So, the snap package might be the best option with the new kernels.

Maybe as evidenced by this?

==> dkms install --no-depmod -m anbox-modules-binder -v r1096.ea2b7a3 -k 5.7.17-2-MANJARO
Consult /var/lib/dkms/anbox-modules-binder/r1096.ea2b7a3/build/make.log for more information.
==> Warning, `dkms install --no-depmod -m anbox-modules-binder -v r1096.ea2b7a3 -k 5.7.17-2-MANJARO’ returned 10

==> dkms install --no-depmod -m anbox-modules-binder -v r1096.ea2b7a3 -k 5.8.3-2-MANJARO
Consult /var/lib/dkms/anbox-modules-binder/r1096.ea2b7a3/build/make.log for more information.
==> Warning, `dkms install --no-depmod -m anbox-modules-binder -v r1096.ea2b7a3 -k 5.8.3-2-MANJARO’ returned 10

… taken from my update logs from last night.

But this

means we might not have to wait long for it to work on the stable branch.

you can test to see if binder and ashmem are properly loaded using

ls -1 /dev/{ashmem,binder}
or
zgrep -E 'ANDROID|ASHMEM' /proc/config.gz to check if the config loaded properly

@schinfo Kernel linux58 5.8.5-2 does not report ashmem or binder support using

zgrep -i -e android -e ashmem /proc/config.gz outputs;

#Android
#end of Android
#Android
#CONFIG_ANDROID is not set
#end of Android

and ls -1 /dev/{ashmem,binder}
ls: cannot access '/dev/ashmem': No such file or directory
ls: cannot access '/dev/binder': No such file or directory

I realize binderfs needs to be mounted manually and as such should report the issue but I believe ashmem should be mounted on boot

Same issues on kernel 5.8.6-1

is it coming with the next kernel?

After looking at the kernel PKGBUILD I found that while there are additional config files meant for Anbox (as well as aufs), none of these additional files were being actually used in the compiled kernel.

As a result, Anbox modules are not really built nor working, and (off-topic) aufs probably also doesn’t work either.

I did some checks.

zgrep -i -e android -e ashmem /proc/config.gz

# Android
# end of Android
# Android
# CONFIG_ANDROID is not set
# end of Android

zgrep -i -e aufs /proc/config.gz returned nothing. I think at least the entries in the config.aufs should be returned here.

I found this line which appears to be reading the config files. However, at present it’s only reading the main config file.

You’re right, I made a mistake there - the integration of config.anbox is missing
I’ll fix this asap - will be fixed in unstable with Linux 5.8.8-3

Thanks for the hint - we need more attentive community members :wink:

2 Likes

I went ahead and pulled the unstable panels directly from the repo, and can confirm anbox modules are correctly loaded,

so for now there’s two (easy) ways to install anbox,

  1. install from the AUR in which case install anbox-git and whatever image package you want

  2. install snap

snap install --devmode --beta anbox

I have only tested the snap version so far and well, it works about as good as one can expect of an overglorifed chromebook that is my laptop. ill will try to test on a more powerful machine at a later date

EDIT you will also need to mount Binder FS
you can do this by
mounting binder manually

mkdir /dev/binderfs
mount -t binder binder /dev/binderfs

or mounting via Fstab

EDIT2: installed via AUR, while more preformant i was getting some wierd bugs, apps refusing to install, closing one app would close every anbox app etc.

I recommend using Snap for now or maybe try compile and install yourself

@quackdoc I have never used binder. How to mount binder from fstab? Can you show an example?

@pulsar

filesystem mountpoint type
Binder /binderfs binder

Hey! I have successfully run Anbox for the first time. It looks like work well. But has some graphical issues. Hope thise gets fixes in next few months.

Any plans to enable the config required for anbox in the ARM kernel?

I’m building a kernel (5.8.10), with those modules enabled. So lets see how it goes.

EDIT: 5.8.10 is now uploaded to arm-unstable branch and should have all the needed Android stuff enabled in the kernel to enable Anbox.

2 Likes

Thanks, anbox starts now, but it is painfully slow. Since it’s the first time anbox looks like it’s running, I don’t know what to expect…

iotop shows anbox is doing a LOT of I/O. Not sure what is going on.

EDIT: it is slow to start. Seems to be working ok now. I’ll spend some time playing with it.

@alain anbox is android containerized (LXC) so think of it as it starting up a second distro, thats why I/O is high, enable anbox in systemd so it starts at boot helps a lot, i also found that using the snap version is significantly slower, but saves some headache as AUR version is buggy.

i would try both out to see which one fits your usecase best

I’ve been using lxc for a while. Booting a complete distro is usually a matter of seconds. Something else is going on with the android image. anbox is already enabled in systemd.

EDIT: I think setting CONFIG_SQUASHFS_DECOMP_MULTI=y would help…

android is not a typical distro, its kind of a nuisance how its setup. but it can take a while to boot depending on the flavour though i havent tested anbox’s image even on baremetal android is slow to boot

though if you think its abnormally slow have you sanity checked and run another LXC instance to check load time?

I can do a fresh install on my system to see if I can replicate the issue.