Versions Compared

Key

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

...

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 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 some place, then run robox

...

step3: Log in the container and confirm whether the robox instance started successfully.

   container name format:  instance + id

docker exec -it instance2instance1 sh      

step5: get android property sys.boot_completed

getprop | grep sys.boot.completed

[sys.boot_completed]: [1]

...

Step1: You can copy the binaryFiles in the robox code to the some place, then run robox

start the first continer instance

./robox -v start 1

./robox -v start 1

       1 is the id, used by session manager and docker container

Step2: Check the docker instance process and session manager process.

sudo docker ps | grep instance

ps -aux | grep session

step3: Log in the container and confirm whether the robox instance started successfully.

docker exec -it instance2 sh
step5: get android property sys.boot_completed

getprop | grep sys.boot.completed

...

  //1 which means start successfully


Cluster deployment and access by K8S

...

3 Check cluster running status

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


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.

then start kuboard with web browser

...

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

...