Table of Contents |
---|
Introduction
...
ARM Server satisfies the Arm Server Ready certified.
Software Perequisites
item | method | |
---|---|---|
robox | robox is an Android container. | 1. Log in to the server via SSH and enter the command line execution entry. 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
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. |
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. |
apt-get install docker.io |
Database Perequisites
schema scripts: N/A
...
-
- Compile and install binder.ko and ashmem.ko modules
-
- nstall Anbox
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 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
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
...