Jump to content

Waydroid on Armbian?


Prax

Recommended Posts

Hi,

 

Im pretty new to linux in general mostly used windows before.

 

Is there a way to get waydroid work on armbian? I installed it but waydroid sais that the binder kernels are missing (1). When I follow the instruction to install the kernel modules using dkms I also get a failure (2).

 

(1) ERROR: Binder node "binder" for waydroid not found

(2) Error! Bad return status for module build on kernel: linux-headers-5.10.110-rockchip-rk3588

 

Anyone can help me with this?

 

Thanks in advance! :)

Link to comment
Share on other sites

I guess you need these kernel modules:

CONFIG_ANDROID_LOW_MEMORY_KILLER=n

CONFIG_ANDROID_BINDER_IPC=y

CONFIG_ANDROID_BINDERFS=y

CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder"

 

These are in the config on github, probably you'll need to update the kernel

 

 

Link to comment
Share on other sites

Is there a guide anywhere how to update the kernel?

 

I have found a guide on how to build a new kernel, but how do I update the existing one afterwards?

 

Thanks!

 

If it matters I read some logs and got the following error when installing the kernel module: Your kernel does not support KProbes

Link to comment
Share on other sites

ahsmem and binder are not set. Should be a good chance then to get it working if I rebuild the kernel.

 

Gonna try that tomorrow. Thanks a lot!

 

Edit: Can I just copy this config, set the needed values and rebuild the kernel with it?

Edited by Prax
Link to comment
Share on other sites

Tried that. Getting the following error:"Reinstallation of linux-image-legacy-rockchip-rk3588 is not possible, it cannot be downloaded"

 

Also tried updating the dependecies and to reinstall using aptitude. Error there is:"Cant find source to download version '23.02.0-trunk.0184' of 'linux-image-legacy-rockchip-rk3588'

 

Any idea on how to reinstall?

Link to comment
Share on other sites

Switched to nightly build. Binder and Ashmem are now activated in the config (/boot/config-5.10.110-rockchip-rk3588) but while kernel installation and at every reinstall I still get these errors:

 

Building module:

cleaning build area...

make -j8 KERNELRELEASE=5.10.110-rockchip-rk3588 all KERNEL_SRC=/lib/modules/5.10.110-rockchip-rk3588/build....(bad exit status: 2)

Error! Bad return status for module build on kernel: 5.10.110-rockchip-rk3588 (aarch64)

Consult /var/lib/dkms/anbox-ashmem/1/build/make.log for more information.

 

Kernel preparation unnecessary for this kernel. Skipping...

 

Building module:

cleaning build area...

make -j8 KERNELRELEASE=5.10.110-rockchip-rk3588 all KERNEL_SRC=/lib/modules/5.10.110-rockchip-rk3588/build.....(bad exit status: 2)

Error! Bad return status for module build on kernel: 5.10.110-rockchip-rk3588 (aarch64)

Consult /var/lib/dkms/anbox-binder/1/build/make.log for more information.

 

So I not only get them when I try to install the modules using dkms. I also get them when I reinstall the kernel.

 

/var/lib/dkms/anbox-binder/1/build/make.log gives following error: "Your kernel does not support KProbes, but this is required to compile ashmem as a kernel module on kernel 5.7 and later"

Edited by Prax
Link to comment
Share on other sites

wget http://imola.armbian.com/beta/pool/main/l/linux-5.10.110-rockchip-rk3588/linux-image-legacy-rockchip-rk3588_23.02.2_arm64.deb

sudo dpkg -i linux-image-legacy-rockchip-rk3588_23.02.2_arm64.deb

 

wget http://imola.armbian.com/beta/pool/main/l/linux-5.10.110-rockchip-rk3588/linux-headers-legacy-rockchip-rk3588_23.02.2_arm64.deb

sudo dpkg -i linux-headers-legacy-rockchip-rk3588_23.02.2_arm64.deb

 

What is the output of cat  /var/lib/dkms/anbox-binder/1/build/make.log

Edited by royk
Link to comment
Share on other sites

While installing the first .deb I still get the same errors as mentioned above when reinstalling.

While installing the second .deb I get a ton of warning and errors that used functions are deprecated.

 

Thanks for your help, can't say it often enough!

 

Here are the cat of anbox-binder and anbox-ashmen.

 

Cat of /var/lib/dkms/anbox-binder/1/build/make.log is following:

 

DKMS make.log for anbox-binder-1 for kernel 5.10.110-rockchip-rk3588 (aarch64)
Mi 22. Feb 22:22:42 CET 2023
make -C /lib/modules/5.10.110-rockchip-rk3588/build V=0 M=$PWD
make[1]: Entering directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'
  CC [M]  /var/lib/dkms/anbox-binder/1/build/deps.o
  CC [M]  /var/lib/dkms/anbox-binder/1/build/binder.o
  CC [M]  /var/lib/dkms/anbox-binder/1/build/binder_alloc.o
  CC [M]  /var/lib/dkms/anbox-binder/1/build/binderfs.o
In file included from ././include/linux/kconfig.h:7,
                 from <command-line>:
./include/generated/autoconf.h:1720: warning: "CONFIG_ANDROID_BINDER_DEVICES" redefined
error, forbidden warning:autoconf.h:1720
 1720 | #define CONFIG_ANDROID_BINDER_DEVICES "binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder"
      | 
<command-line>: note: this is the location of the previous definition
In file included from ././include/linux/kconfig.h:7,
                 from <command-line>:
./include/generated/autoconf.h:2246: warning: "CONFIG_ANDROID_BINDERFS" redefined
error, forbidden warning:autoconf.h:2246
 2246 | #define CONFIG_ANDROID_BINDERFS 1
      | 
<command-line>: note: this is the location of the previous definition
/var/lib/dkms/anbox-binder/1/build/deps.c:20:3: error: #error "Your kernel does not support KProbes, but this is required to compile binder as a kernel module on kernel 5.7 and later"
   20 | # error "Your kernel does not support KProbes, but this is required to compile binder as a kernel module on kernel 5.7 and later"
      |   ^~~~~
make[2]: *** [scripts/Makefile.build:273: /var/lib/dkms/anbox-binder/1/build/deps.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from ././include/linux/kconfig.h:7,
                 from <command-line>:
./include/generated/autoconf.h:1720: warning: "CONFIG_ANDROID_BINDER_DEVICES" redefined
error, forbidden warning:autoconf.h:1720
 1720 | #define CONFIG_ANDROID_BINDER_DEVICES "binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder"
      | 
<command-line>: note: this is the location of the previous definition
In file included from ././include/linux/kconfig.h:7,
                 from <command-line>:
./include/generated/autoconf.h:2246: warning: "CONFIG_ANDROID_BINDERFS" redefined
error, forbidden warning:autoconf.h:2246
 2246 | #define CONFIG_ANDROID_BINDERFS 1
      | 
<command-line>: note: this is the location of the previous definition
/var/lib/dkms/anbox-binder/1/build/binder.c: In function 'binder_translate_binder':
/var/lib/dkms/anbox-binder/1/build/binder.c:2456:49: error: passing argument 1 of 'security_binder_transfer_binder' from incompatible pointer type [-Werror=incompatible-pointer-types]
 2456 |         if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) {
      |                                             ~~~~^~~~~
      |                                                 |
      |                                                 struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
./include/linux/security.h:258:56: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  258 | int security_binder_transfer_binder(const struct cred *from,
      |                                     ~~~~~~~~~~~~~~~~~~~^~~~
/var/lib/dkms/anbox-binder/1/build/binder.c:2456:67: error: passing argument 2 of 'security_binder_transfer_binder' from incompatible pointer type [-Werror=incompatible-pointer-types]
 2456 |         if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) {
      |                                                        ~~~~~~~~~~~^~~~~
      |                                                                   |
      |                                                                   struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
./include/linux/security.h:259:56: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  259 |                                     const struct cred *to);
      |                                     ~~~~~~~~~~~~~~~~~~~^~
/var/lib/dkms/anbox-binder/1/build/binder.c: In function 'binder_translate_handle':
/var/lib/dkms/anbox-binder/1/build/binder.c:2506:49: error: passing argument 1 of 'security_binder_transfer_binder' from incompatible pointer type [-Werror=incompatible-pointer-types]
 2506 |         if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) {
      |                                             ~~~~^~~~~
      |                                                 |
      |                                                 struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
./include/linux/security.h:258:56: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  258 | int security_binder_transfer_binder(const struct cred *from,
      |                                     ~~~~~~~~~~~~~~~~~~~^~~~
/var/lib/dkms/anbox-binder/1/build/binder.c:2506:67: error: passing argument 2 of 'security_binder_transfer_binder' from incompatible pointer type [-Werror=incompatible-pointer-types]
 2506 |         if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) {
      |                                                        ~~~~~~~~~~~^~~~~
      |                                                                   |
      |                                                                   struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
./include/linux/security.h:259:56: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  259 |                                     const struct cred *to);
      |                                     ~~~~~~~~~~~~~~~~~~~^~
/var/lib/dkms/anbox-binder/1/build/binder.c: In function 'binder_translate_fd':
/var/lib/dkms/anbox-binder/1/build/binder.c:2598:49: error: passing argument 1 of 'security_binder_transfer_file' from incompatible pointer type [-Werror=incompatible-pointer-types]
 2598 |         ret = security_binder_transfer_file(proc->tsk, target_proc->tsk, file);
      |                                             ~~~~^~~~~
      |                                                 |
      |                                                 struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
./include/linux/security.h:260:54: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  260 | int security_binder_transfer_file(const struct cred *from,
      |                                   ~~~~~~~~~~~~~~~~~~~^~~~
/var/lib/dkms/anbox-binder/1/build/binder.c:2598:67: error: passing argument 2 of 'security_binder_transfer_file' from incompatible pointer type [-Werror=incompatible-pointer-types]
 2598 |         ret = security_binder_transfer_file(proc->tsk, target_proc->tsk, file);
      |                                                        ~~~~~~~~~~~^~~~~
      |                                                                   |
      |                                                                   struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
./include/linux/security.h:261:54: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  261 |                                   const struct cred *to, struct file *file);
      |                                   ~~~~~~~~~~~~~~~~~~~^~
/var/lib/dkms/anbox-binder/1/build/binder.c: In function 'binder_transaction':
/var/lib/dkms/anbox-binder/1/build/binder.c:3001:53: error: passing argument 1 of 'security_binder_transaction' from incompatible pointer type [-Werror=incompatible-pointer-types]
 3001 |                 if (security_binder_transaction(proc->tsk,
      |                                                 ~~~~^~~~~
      |                                                     |
      |                                                     struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
./include/linux/security.h:256:52: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  256 | int security_binder_transaction(const struct cred *from,
      |                                 ~~~~~~~~~~~~~~~~~~~^~~~
/var/lib/dkms/anbox-binder/1/build/binder.c:3002:60: error: passing argument 2 of 'security_binder_transaction' from incompatible pointer type [-Werror=incompatible-pointer-types]
 3002 |                                                 target_proc->tsk) < 0) {
      |                                                 ~~~~~~~~~~~^~~~~
      |                                                            |
      |                                                            struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
./include/linux/security.h:257:52: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  257 |                                 const struct cred *to);
      |                                 ~~~~~~~~~~~~~~~~~~~^~
/var/lib/dkms/anbox-binder/1/build/binder.c: In function 'binder_ioctl_set_ctx_mgr':
/var/lib/dkms/anbox-binder/1/build/binder.c:4956:51: error: passing argument 1 of 'security_binder_set_context_mgr' from incompatible pointer type [-Werror=incompatible-pointer-types]
 4956 |         ret = security_binder_set_context_mgr(proc->tsk);
      |                                               ~~~~^~~~~
      |                                                   |
      |                                                   struct task_struct *
In file included from /var/lib/dkms/anbox-binder/1/build/binder.c:63:
In file included from ././include/linux/kconfig.h:7,
                 from <command-line>:
./include/generated/autoconf.h:1720: warning: "CONFIG_ANDROID_BINDER_DEVICES" redefined
error, forbidden warning:autoconf.h:1720
 1720 | #define CONFIG_ANDROID_BINDER_DEVICES "binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder"
      | 
<command-line>: note: this is the location of the previous definition
In file included from ././include/linux/kconfig.h:7,
                 from <command-line>:
./include/generated/autoconf.h:2246: warning: "CONFIG_ANDROID_BINDERFS" redefined
error, forbidden warning:autoconf.h:2246
 2246 | #define CONFIG_ANDROID_BINDERFS 1
      | 
<command-line>: note: this is the location of the previous definition
make[2]: *** [scripts/Makefile.build:273: /var/lib/dkms/anbox-binder/1/build/binderfs.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/anbox-binder/1/build/binderfs.o'
In file included from ././include/linux/kconfig.h:7,
                 from <command-line>:
./include/generated/autoconf.h:1720: warning: "CONFIG_ANDROID_BINDER_DEVICES" redefined
error, forbidden warning:autoconf.h:1720
 1720 | #define CONFIG_ANDROID_BINDER_DEVICES "binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder"
      | 
<command-line>: note: this is the location of the previous definition
In file included from ././include/linux/kconfig.h:7,
                 from <command-line>:
./include/generated/autoconf.h:2246: warning: "CONFIG_ANDROID_BINDERFS" redefined
error, forbidden warning:autoconf.h:2246
 2246 | #define CONFIG_ANDROID_BINDERFS 1
      | 
<command-line>: note: this is the location of the previous definition
make[2]: *** [scripts/Makefile.build:273: /var/lib/dkms/anbox-binder/1/build/binder_alloc.o] Error 1
make[2]: *** Deleting file '/var/lib/dkms/anbox-binder/1/build/binder_alloc.o'
./include/linux/security.h:255:56: note: expected 'const struct cred *' but argument is of type 'struct task_struct *'
  255 | int security_binder_set_context_mgr(const struct cred *mgr);
      |                                     ~~~~~~~~~~~~~~~~~~~^~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:273: /var/lib/dkms/anbox-binder/1/build/binder.o] Error 1
make[1]: *** [Makefile:1920: /var/lib/dkms/anbox-binder/1/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'
make: *** [Makefile:8: all] Error 2

 

Cat of /var/lib/dkms/anbox-ashmem/1/build/make.log is following:

DKMS make.log for anbox-ashmem-1 for kernel 5.10.110-rockchip-rk3588 (aarch64)
Mi 22. Feb 22:22:37 CET 2023
make -C /lib/modules/5.10.110-rockchip-rk3588/build V=0 M=$PWD
make[1]: Entering directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'
  CC [M]  /var/lib/dkms/anbox-ashmem/1/build/deps.o
  CC [M]  /var/lib/dkms/anbox-ashmem/1/build/ashmem.o
/var/lib/dkms/anbox-ashmem/1/build/deps.c:9:3: error: #error "Your kernel does not support KProbes, but this is required to compile ashmem as a kernel module on kernel 5.7 and later"
    9 | # error "Your kernel does not support KProbes, but this is required to compile ashmem as a kernel module on kernel 5.7 and later"
      |   ^~~~~
make[2]: *** [scripts/Makefile.build:273: /var/lib/dkms/anbox-ashmem/1/build/deps.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:1920: /var/lib/dkms/anbox-ashmem/1/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.10.110-rockchip-rk3588'
make: *** [Makefile:12: all] Error 2

 

Edited by Prax
Link to comment
Share on other sites

sudo apt remove dkms

 

wget http://imola.armbian.com/beta/pool/main/l/linux-5.10.110-rockchip-rk3588/linux-image-legacy-rockchip-rk3588_23.02.2_arm64.deb

sudo dpkg --force-all -i linux-image-legacy-rockchip-rk3588_23.02.2_arm64.deb

sudo reboot

sudo apt install waydroid

sudo waydroid init

 

Edited by royk
Link to comment
Share on other sites

I don't know with what you try to connect it to, if you try to connect with vnc then "Enable legacy vnc protocol".

It could be that the notification to accept the client was not visible, you could set "Require password" (3 dots after legacy vnc protocol) as workaround.

 

Link to comment
Share on other sites

Tried with mstsc and with vnc can't connect. When I check grdctl status there isn't any credentials set while they are set in the ui. I also can't set credentials using grdctl, getting the error: "Cannot create an item in a locked collection"

 

 

If I try to connect:

VNC literally nothing happens client hangs trying to connect

RDP I get asked for credentials, afterwards I have to confirm the cert and then it closes suddenly without a error.

Edited by Prax
Link to comment
Share on other sites

I activated it by gui but I can't connect. Do I have to log off with the user before I can login remote?

 

Edit: When I log off localy I can connect but I get a black screen and get disconnected after like 10 seconds

Edited by Prax
Link to comment
Share on other sites

xrdp was still enabled from armbian-config. I disabled and remove xrdp.

 

Now I just cant login... getting an error from gnome-remote-desktop on the orangepi5 

 

Feb 23 20:32:29 orangepi5 gnome-remote-desktop-daemon[6118]: Cannot load libcuda.so.1
Feb 23 20:32:29 orangepi5 gnome-remote-desktop-daemon[6118]: Cannot load libnvidia-encode.so.1
 

Link to comment
Share on other sites

Did you set:

Enable legacy vnc protocol with "require password"

filled in a username and password

Updated the package

Try to connect with ip address instead of hostname

 

Maybe there is a firewall in between or another service on the OPI running on the same port?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines