02-21-2021, 10:10 AM
I do have some partial success to report. Be wary of old guides regarding binder. I ended up wasting a lot of time on them. Binder and Ashmem are loaded directly into new kernels. This is why Ashmem is true when you run 'anbox system-info'. The reason why the Binder section reports false is because binder itself is in a different location (/dev/binderfs/binder) than the one Anbox is looking for (/dev/binder). So I made a diff patch providing the necessary changes in Anbox to make binder true, which cleared the stack trace that otherwise occurs when you run 'anbox session-manager'. (Also, I took the liberty of updating the Anbox version to the 01/06/2021 commit.) Here are the PKGBUILD and required files to make the magic happen.
Here is how 'anbox system-info' looks now:
Now when I use the following command,
the app manager screen loads, does not crash, and no errors are to be found in the shell. Of course it still does not do anything, but I will begin to address that later.
The same is true for
just in case you were wondering.
This brings me to 'anbox session-manager' and where to go from here. As stated above, my patch cleared the stack trace. However, I still get one warning from the shell:
According to later posts on anbox's github issues section, it was recommended to
in the shell. I tried this and ran 'anbox session-manager' again. This cleared the error. However, despite having nothing in the shell upon execution, no window launched. Instead 'anbox session-manager' continued to run while nothing else visually happened. The anbox github issues page mentioned graphics drivers. Notice how 'gles2' has nothing in it when 'anbox system-info' is run. EGL and OpenGL ES 2.0 (gles2) are closely related. Therefore, my next step will be to figure out how to get anbox to see gles2.
That is all for now. If you have any knowledge to contribute, please do! It is a big help. Thanks also to those who have already lent a hand, (that means you, nas & paju1986).
Here is how 'anbox system-info' looks now:
Code:
version: danctnix-0_git20210106-r1
cpu:
arch:
brand:
features:
os:
name: Manjaro-ARM
version:
snap-based: false
kernel:
version: Linux version 5.11.0-0-MANJARO-ARM (builduser@odroid-n2plus-pm) (gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP Wed Feb 17 17:16:01 UTC 2021
binder: true
ashmem: true
graphics:
egl:
vendor: Mesa Project
version: 1.4
extensions:
- EGL_ANDROID_blob_cache
- EGL_ANDROID_native_fence_sync
- EGL_EXT_buffer_age
- EGL_EXT_image_dma_buf_import
- EGL_EXT_image_dma_buf_import_modifiers
- EGL_EXT_swap_buffers_with_damage
- EGL_KHR_cl_event2
- EGL_KHR_config_attribs
- EGL_KHR_create_context
- EGL_KHR_create_context_no_error
- EGL_KHR_fence_sync
- EGL_KHR_get_all_proc_addresses
- EGL_KHR_gl_colorspace
- EGL_KHR_gl_renderbuffer_image
- EGL_KHR_gl_texture_2D_image
- EGL_KHR_gl_texture_3D_image
- EGL_KHR_gl_texture_cubemap_image
- EGL_KHR_image_base
- EGL_KHR_no_config_context
- EGL_KHR_partial_update
- EGL_KHR_reusable_sync
- EGL_KHR_surfaceless_context
- EGL_KHR_swap_buffers_with_damage
- EGL_EXT_pixel_format_float
- EGL_KHR_wait_sync
- EGL_MESA_configless_context
- EGL_MESA_drm_image
- EGL_MESA_image_dma_buf_export
- EGL_MESA_query_driver
- EGL_WL_bind_wayland_display
- EGL_WL_create_wayland_buffer_from_image
gles2:
vendor: n/a
vendor: n/a
extensions: []
Now when I use the following command,
Code:
anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
the app manager screen loads, does not crash, and no errors are to be found in the shell. Of course it still does not do anything, but I will begin to address that later.
The same is true for
Code:
env DISPLAY=:1 anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
just in case you were wondering.
This brings me to 'anbox session-manager' and where to go from here. As stated above, my patch cleared the stack trace. However, I still get one warning from the shell:
Code:
[ 2021-02-21 15:31:35] [Renderer.cpp:128@initialize] Failed to select EGL configuration
According to later posts on anbox's github issues section, it was recommended to
Code:
export EGL_PLATFORM=x11
in the shell. I tried this and ran 'anbox session-manager' again. This cleared the error. However, despite having nothing in the shell upon execution, no window launched. Instead 'anbox session-manager' continued to run while nothing else visually happened. The anbox github issues page mentioned graphics drivers. Notice how 'gles2' has nothing in it when 'anbox system-info' is run. EGL and OpenGL ES 2.0 (gles2) are closely related. Therefore, my next step will be to figure out how to get anbox to see gles2.
That is all for now. If you have any knowledge to contribute, please do! It is a big help. Thanks also to those who have already lent a hand, (that means you, nas & paju1986).