Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

Table of Contents

Introduction

...

item


method

robox

robox is an Android container.

1. Log in to the server via SSH and enter the command line execution entry.
2. Enter a directory where the downloaded source code package is stored, such as the "/home/ubuntu" directory.
cd /home/ubuntu

3. Download the robox source code package and switch to the release-phase2.3 branch.

git clone https://github.com/lag-linaro/robox.git -b release-phase2.3

The robox source code directory is: /home/ubuntu/robox


( Source download URL: https://github.com/lag-linaro/robox.git

If the source code download fails, use the following command to skip verification:

export GIT_SSL_NO_VERIFY=1 )

robox Compile and run dependent packages

Dependent packages are packages that support robox compilation and operation. Before robox compilation, all dependent packages need to be installed.

  1. Log in to the server remotely via SSH and enter the command line execution entry.
  2. Download and install robox to compile and run dependent packages.

apt-get install build-essential cmake cmake-data debhelper dbus google-mock libboost-dev libboost-filesystem-dev libboost-log-dev libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-test-dev libboost-thread-dev libcap-dev libdbus-1-dev libdbus-cpp-dev libegl1-mesa-dev libgles2-mesa-dev libglib2.0-dev libglm-dev libgtest-dev liblxc1 libproperties-cpp-dev libprotobuf-dev libsdl2-dev libsdl2-image-dev lxc-dev pkg-config protobuf-compiler

docker  run dependent packages

The installation is complete before configuring docker.

  1. Log in to the server remotely via SSH and enter the command line execution portal.
  2. Download and install the docker dependency package.

apt-get install docker.io

...

  •  
    • Compile and install binder.ko and ashmem.ko modules

      1. Download the kernel source code for the kernel module to compile.

      apt search linux-source apt install linux-source-4.15.0 

      2. Download the code and roll back to the specified version. Community link https://github.com/anbox/anbox-modules.

      cd /home git clone https://github.com/anbox/anbox-modules.git

      cd anbox-modules/ git reset --hard 816dd4d6e702cf77a44cfe208659af6c39e02b57

      3. update ashmem and binder.

      cd /home/anbox-modules

      cp anbox.conf /etc/modules-load.d/

      cp 99-anbox.rules /lib/udev/rules.d/

      cp -rT ashmem /usr/src/anbox-ashmem-1

      cp -rT binder /usr/src/anbox-binder-1

      4. Compile and install using dkms.

      dkms install anbox-ashmem/1

      dkms install anbox-binder/1

      5. Install the ko module to the kernel, and the binder_linux module needs to take parameters.

      modprobe ashmem_linux

      modprobe binder_linux num_devices=254

      lsmod | grep -e ashmem_linux -e binder_linux

      6. if the attribute permissions of ashmem and binder are not displayed by the following commands, please add the permissions with chmod.

      ls -alh /dev/binder* /dev/ashmem

  •  
  •     package
    • Package it through android.img and store it in docker

...


  • 1. Log in to the server by SSH and enter the command line execution portal.

    2. Mount the android image to the "/mnt" directory.

    cd /home mount /home/android.img /mnt

  • nstall Anbox

...

  • 3. CD /mnt

    4.  image register

    tar --numeric-owner -cf- . | docker import - android:robox_with_exagear

    5. inquire android  container

    docker images


    • Compile Robox source code
  • 1. create compile directory

    •               cd /home/robox-master

    •               mkdir build

    •               cd build


  • 2. Compile the configuration and execute the command in the "/home/robox-master/build" directory.

    cmake ..

    3. Add the following in the "/usr/include/glm/gtx/transform.hpp" file.

    •              vim /usr/include/glm/gtx/transform.hpp

  • Add the following definition at line 21: 


  •                         #define GLM_ENABLE_EXPERIMENTAL



  • 4.  compile and install

    make j64

    •              make install
  •  
    • Start robox Android system

                    1.Copy the startup script robox in the binaryFiles directory in the downloaded robox-master source code to /home/robox-master

2. Execute the modified robox script and start the robox Android container

a. Set environment variables and assign containers to GPU cards to run.

export DISPLAY=:0

start the first continer instance

./robox -v start 1

start the second continer instance

./robox -v start 2

3.Check the docker instance process.

docker ps

4.Check the host session process, mainly check whether the two sessions corresponding to instance1 and instance2 are running normally.

ps -aux | grep session

5.Log in to the Android container and confirm whether the robox instance started successfully.

docker exec -it instance1 sh


77b2c041315f:/ # getprop | grep sys.boot.completed

[sys.boot_completed]: [1]

//sys.boot.completed shows 1 which means start successfully



  • Upstream Deployment Guide

    • Upstream Deployment Key Features :N/A
    • Special Requirements for Upstream Deployments :N/A
    • Scenarios and Deploy Settings for Upstream Deployments :N/A
    • Including Upstream Patches with Deployment:N/A
    • Running: N/A
    • Interacting with Containerized Overcloud: N/A

...