Versions Compared

Key

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

...

This document is mainly suitable for users who build and compile robox container Android emulation.

Deployment Architecture

Image RemovedImage AddedImage Removed



Image Added


Image RemovedImage Added




Pre-Installation Requirements

  • Hardware Requirements

2*arm64 server:

Arch

AARCH64

Processor model

1*Aarch64 processor( A72 inside)

RAM

16*DDR4-2933

Storage

10*2.5 inch SAS/SATA/SSD or 8*2.5 inch  NVMe SSD

Network

1 onboard network card, each card supports 4*GE port or 4*10GE port or 4*25GE port

Power Supply

 Power 100~240V AC,240V DC

Scale

447 mm x 490 mm x 86.1 mm

ARM Server satisfies the Arm Server Ready certified.


  • Software Perequisites

item


method

os

ubuntu 18.04.3(key)

 

robox

robox is an Android container.

git clone https://github.com/kunpengcompute/robox.git

 -b release-phase2.3

robox Compile and run dependent packages

support for robox compilation and operation.

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

needed by K8S/Robox

apt-get install docker.io

  • Components Version

...

Anbox

Run Android applications on any GNU/Linux operating system.


Grafana

Compose and scale observability with one or all pieces of the stack

8.4.3

Prometheus

Cloud native system performance monitoring

2.34.0

K8s

container orchestration engine for automating deployment, scaling, and management of containerized applications

k8s: v1.23.5;

kube-apiserver:v1.21.11

kube-scheduler:v1.21.11

kube-proxy:v1.21.11

etcd:3.4.13-0

coredns:v1.8.0


  • Database Perequisites

schema scripts: N/A

...

The code structure after downloading is as follows:


RoboxWidget/

├── android.img

├── components

│   ├── grafana-server

│   ├── node_exporter

│   ├── perf_exporter

│   └── prometheus

└── README.md


Run Anbox On Ubuntu18.04

Build Android image for anbox

...

After about two hours, the Android image was compiled successfully,  and the results are as follows:


ls out/target/product/arm64/

android-info.txt  obj   previous_build_config.mk  recovery  symbols  system.img  build_fingerprint.txt  cache.img  data  gen  module-info.json    ramdisk.img    root  system   userdata.img


Required packages installation

...

After this,  the image of anbox has been completed, which can be viewed through docker related commandsType the command below:

sudo docker images | grep robox

android                                                               robox                          e223a91c4b58   6 days ago      860MB

Run robox android system

After the above two scripts are executed, the robox operating environment is ready, and the entire directory structure of robox can be seen as follows


├── android

├── binaryFiles

├── cmake

├── cmake_uninstall.cmake.in

├── COPYING.GPL

├── cross-compile-chroot.sh

├── data

├── docs

├── external

├── kernel

├── patch

├── products

├── scripts

├── src


Step1: You can copy the binaryFiles in the robox code to the home directory, then run robox

...

        It is troublesome to start anbox through commands to deploy in a real environment. Here, the well-known K8S system is used to complete the deployment of anbox instances. On this basis, anbox can be much more effectively deployed, run, monitored, and analyzed for multiple host nodes. Here is k8s cluster setup and container orchestration.

1 Basic Architecture

 Image Added

2 K8s Cluster construction

        The k8s cluster construction can be completed through the warehouse code, you can do as follows

 

git clone https://gerrit.akraino.org/r/iec.git

cd iec/deploy/compass && bash deployIEC.sh

 

  Here is the current configuration:

 

l  Ubuntu Version:18.04

l  Docker: 20+

l  k8s: 1.21.3

 

Host Network:

master: 192.168.10.66

work:   192.168.10.62


3 Check cluster running status

kubectl get cs 

Warning: v1 ComponentStatus is deprecated in v1.19+

NAME                 STATUS    MESSAGE             ERROR

scheduler            Healthy   ok                 

controller-manager   Healthy   ok                 

etcd-0               Healthy   {"health":"true"}  


kubectl get node

NAME     STATUS   ROLES                  AGE   VERSION

master   Ready    control-plane,master   22h   v1.21.3

work     Ready    <none>                 22h   v1.21.5


At the same time, we can present the status of the cluster through the k8s visual component. Here we use kuboard, which is very convenient to install and use.


kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

...

user:admin

password:Kuboard123

Image RemovedImage Added

Cloud platform monitoring & Analyze

1 Basic Architecture

Image RemovedImage Added

2 Bootup basic components

...

prometheus_target_interval_length_seconds

Image RemovedImage Added

In addition, we can log in to grafana through a web browser and see the effect as shown below

...

user: admin

password: admin

Image RemovedImage Added

Developer Guide and Troubleshooting

...

When the server restarts, the binder_linux module needs to be loaded and installed as follows:


sudo modprobe ashmem_linux

sudo rmmod binder_linux || true; sudo modprobe binder_linux num_devices=254

sudo chmod 777 /dev/ashmem /dev/binder*


If there is an external graphics card, you need to manually disable the built-in graphics card after each server restart. for example:


lspci | grep -in VGA

6:0007:41:00.0 VGA compatible controller: Huawei Technologies Co., Ltd. Hi1710 [iBMC Intelligent Management system chip w/VGA support] (rev 01)


echo 1 > /sys/bus/pci/devices/0007\:41\:00.0/remove


Maintenance

  • Blue Print Package Maintenance
    • Software maintenance: N/A 
    • Hardware maintenance:N/A

...