Skip to content
Snippets Groups Projects

WIP: Feature/anbox

Closed Imported Administrator requested to merge feature/anbox into master

Current status:

  • Get it to compile
  • Test it
  • Clean up dirty hacks

See also:

Closes #17 (closed)

Merge request reports

Checking pipeline status.

Closed by AdministratorAdministrator 5 years ago (Feb 10, 2020 10:56am UTC)

Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Author Owner

    @PureTryOut said

    I've noticed you added a (removed by upstream) udev rules file to basically modprobe(?) the required kernel modules. Might it not be preferable to built those modules in the kernel? If anything, we should at least make anbox-modules a separate package.

    It looks like that file got added to the APKBUILD here. At the time I was only trying to get the updated anbox to build again as a proof of concept, so when I saw that they moved that file to a different repository, I decided to just grab it from there.

    By Grant Miller on 2019-06-11T15:47:11

  • Administrator added 4 commits · Imported

    added 4 commits

    • af4a5165 - main/linux-postmarketos-stable: enable ashmem and binder for Anbox
    • 52b8d006 - main/linux-postmarketos-mainline: enable ashmem and binder for Anbox
    • 409ad201 - main/anbox-image: new aport
    • 3e1bb23b - main/anbox: new aport

    Compare with previous version

    By Bart Ribbers on 2019-06-11T15:54:22

  • Author Owner

    I just added the required functionality to the linux-postmarketos-{stable,mainline} kernels, so I'll remove that file. Once this works and can be merged, we'll need to make that functionality a requirement on all kernels.

    By Bart Ribbers on 2019-06-12T10:51:14

  • Author Owner

    Currently the container manager fails to start.

    qemu-amd64:/home/bart# anbox container-manager --daemon --privileged --data-path=/var/lib/anbox
    [ 2019-06-10 08:41:40] [mount_entry.cpp:39@create] Failed to mount "/var/lib/anbox/rootfs": Invalid argument
    [ 2019-06-10 08:41:40] [container_manager.cpp:170@setup_mounts] Failed to mount Android rootfs

    By Bart Ribbers on 2019-06-12T11:30:58

  • Author Owner

    Great work guys!

    FWIW, when I looked into anbox, I used the following strategy to debug it:

    • set up a VM with an ubuntu version that anbox officially supports
    • install anbox in that ubuntu vm and test that it works
    • compile the same lxc and anbox versions in the ubuntu vm, that we have in postmarketOS
    • test again that it works in ubuntu
    • search for the current error message (happening with postmarketOS) in the source, and add debug prints around it
    • build that for both postmarketOS (pmbootstrap build --src) and ubuntu
    • compare the output of the debug prints to figure out what both OS are doing differently
    • patch the code to make it behave the same on postmarketOS as it does in ubuntu

    Once somebody gets the hang of that workflow and invests some time into it, it should be possible to get it working exactly the same as it works for ubuntu. The hardest part is setting everything up, until the first debug prints can be tested, from there on it is nice comparing, patching, testing.

    See also: https://github.com/postmarketOS/pmbootstrap/blob/feature/anbox/README.anbox

    By Oliver Smith on 2019-06-13T23:22:19

  • mentioned in issue postmarketos.org#110 (closed)

    By Bart Ribbers on 2019-06-16T14:17:25

  • Administrator added help wanted + 1 deleted label · Imported

    added help wanted + 1 deleted label

  • Administrator added 1 commit · Imported

    added 1 commit

    Compare with previous version

    By Bart Ribbers on 2019-07-29T09:49:14

  • Administrator added 200 commits · Imported

    added 200 commits

    • 2b2e46d9...fe8858d5 - 196 commits from branch master
    • 280cabe0 - main/linux-postmarketos-stable: enable ashmem and binder for Anbox
    • a505d9a9 - main/linux-postmarketos-mainline: enable ashmem and binder for Anbox
    • 53b578ab - main/anbox-image: new aport
    • 3f7e7d58 - main/anbox: new aport

    Compare with previous version

    By Bart Ribbers on 2019-07-29T09:49:58

    • Author Owner
      Resolved by Administrator

      Can we maybe start making the ashmem and binder kernel options required before Anbox support is fully finished? It'll make live easier for developing this when there are kernel updates and stuff.

      By Bart Ribbers on 2019-07-30T17:22:55

      Edited by Ghost User
  • Administrator added 4 commits · Imported

    added 4 commits

    • ce2fe4bc - main/linux-postmarketos-stable: enable required functionality for Anbox
    • 89d0864c - main/linux-postmarketos-mainline: enable ashmem and binder for Anbox
    • d2463b63 - main/anbox-image: new aport
    • e2b8a72d - main/anbox: new aport

    Compare with previous version

    By Bart Ribbers on 2019-07-29T11:33:33

  • Author Owner

    So fixed the mounting issue. Our kernels were lacking some squashfs options. Since my laptop running Alpine Linux could mount the image fine, I checked the differences between Alpine's linux-vanilla and the pmOS kernels and synced the differences related to squashfs.

    Next stop:

    [Renderer.cpp:141@initialize] Failed to create context: error=0x3005
    [client.cpp:49@start] Failed to start container: Failed to start container: Failed to start container
    [session_manager.cpp:148@operator()] Lost connection to container manager, terminating.
    [daemon.cpp:61@Run] Container is not running

    I've updated README-Anbox.md with the current steps.

    By Bart Ribbers on 2019-07-29T11:51:53

    Edited by Administrator
  • Administrator added 1 commit · Imported

    added 1 commit

    Compare with previous version

    By Bart Ribbers on 2019-07-29T11:51:03

  • Author Owner

    That seems to be a permission issue, it seems to get further when I run anbox session-manager as root. However:

    [Renderer.cpp:107@initialize] Failed to initialize EGL
    

    When I run sudo -E anbox session-manager instead it failes to request the DBus service name.

    [Renderer.cpp:141@initialize] Failed to create context: error=0x3005
    [daemon.cpp:61@Run] Failed to request DBus service name
    

    By Bart Ribbers on 2019-07-29T13:16:53

    Edited by Administrator
  • Administrator mentioned in issue #327 (closed) · Imported

    mentioned in issue #327 (closed)

    By Oliver Smith on 2019-07-30T17:22:34

  • Administrator resolved all threads · Imported

    resolved all threads

    By Oliver Smith on 2019-07-30T17:23:04

  • Author Owner

    So fixed the mounting issue. Our kernels were lacking some squashfs options. Since my laptop running Alpine Linux could mount the image fine, I checked the differences between Alpine's linux-vanilla and the pmOS kernels and synced the differences related to squashfs.

    Awesome work! :tada:

    Regarding the errors, I recommend looking at the source. If you get stuck, consider extracting the source locally, adding debug printfs and building that (guide).

    By Oliver Smith on 2019-07-30T17:24:55

  • Administrator added 83 commits · Imported

    added 83 commits

    • e6fd33da...28f0e5d4 - 79 commits from branch master
    • 4c53da3c - main/linux-postmarketos-stable: enable required functionality for Anbox
    • 6613b5a4 - main/linux-postmarketos-mainline: enable ashmem and binder for Anbox
    • 1adc35c7 - main/anbox-image: new aport
    • 077b92df - main/anbox: new aport

    Compare with previous version

    By Bart Ribbers on 2019-09-01T20:57:09

  • Administrator mentioned in issue postmarketos#3 (closed) · Imported

    mentioned in issue postmarketos#3 (closed)

    By Bart Ribbers on 2019-09-24T13:47:15

  • Author Owner

    I've made an issue on the Anbox repo quite a while ago, link. Currently it seems that we have some issue with our LXC setup, but I haven't figured out what yet.

    By Bart Ribbers on 2019-09-27T10:13:39

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading