robox 11 (2021-06-30) © i 11 (2021-06-30) © ii 1 Robox 1.2 Roboxpatch patch OSDockerAndroidISV ARMISV 1.2.1 Ubuntu Ubuntu Robox 1.2.2 Docker Docker Docker BoostKit ARM robox 1 Robox 11 (2021-06-30) © 1 Docker AOSP ARM BoostKit ARM robox 1 Robox 11 (2021-06-30) © 2 2 Robox 920 2.1 2.2 2.3 2.4 920 2.5 Robox 2.6 strace 2.7 GPU Robox 2-1 BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 3 2.2 SSD isohttp://old-releases.ubuntu.com/releases/18.04.1/ ubuntu-18.04.1-server-arm64.iso https://www.realvnc.com/en/connect/download/viewer/ 2.3 BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 4 2.3.2 1 BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 5 apt install dpkg libncurses5-dev libncursesw5-dev libssl-dev 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 libsystemd-dev libdbus-1- 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 libboost- filesystem1.62.0 libboost-system1.62.0 docker.io dkms libboost-iostreams1.62.0 apt install build-essential apt install mesa-common-dev 2 libprocess-cpp3_3.0.1-0ubuntu5_arm64.deblibdbus- cpp5_5.0.0+16.10.20160809-0ubuntu2_arm64.deblibdbus-cpp- dev_5.0.0+16.10.20160809-0ubuntu2_arm64.deb ---- 1 SSH “storage driver”“overlay”“overlay2” “storage driver”“aufs”“storage driver” “aufs”“overlay” a. “/etc/default/docker” vim /etc/default/docker b. BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 6 ---- 2 .xsession cd /home/ubuntu vi .xsession 5 xrdp /etc/init.d/xrdp restart Windows920 root ---- ExaGear https://github.com/kunpengcompute/robox/tree/master/Exagear BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 7 2 linux_4.15.0.orig.tar.gzlinux_4.15.0-65.74.diff.gz linux_4.15.0-65.74.dsc“/home/compiler/” 4 linux-4.15.0 dpkg-source -x linux_4.15.0-65.74.dsc 5 androidkernel/home/exagear cd /home/exagear ls android // kernel // 6 cp /home/exagear/kernel/ubuntu-4.15.0-65.74.patch /home/compiler/linux-4.15.0/ cd /home/compiler/linux-4.15.0/ patch -p1 < ubuntu-4.15.0-65.74.patch 7 pmu /home/robox-master/kernel/patch/ 1001_drivers_perf_hisi_update_the_sccl_id_ccl_id_when_MT.patch 2 .config CONFIG_BINFMT_MISC=y CONFIG_EXAGEAR_BT=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_PROC_CHILDREN=y CONFIG_VFAT_FS=y CONFIG_INPUT_UINPUT=y CONFIG_HISI_PMU=y BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 8 4 reboot https://support.huawei.com/enterprise/zh/kunpeng-computing/kunpeng- computing-media-pid-251431619/software/253129399/?idAbsPath=fixnode01| 23710424|251364417|9856629|251431619 2 ExaGearubt_a32a64“/opt/ exagear/ubt_a32a64” mkdir -p /opt/exagear cd /home/exagear/ tar zxvf ExaGear_ARM32-ARM64_V1.5.tar.gz cp /home/exagear/ExaGear_ARM32-ARM64_V1.5/ubt_a32a64 /opt/exagear/ cd /opt/exagear //echo/opt/exagear/ubt_a32a64 chmod +x ubt_a32a64 //permission denied echo :ubt_a32a64:M::x7fELFx01x01x01x00x00x00x00x00x00x00x00x00x02x00x28x00:xffxff xffxffxffxffxffx00x00x00x00x00x00x00x00x00xfexffxffxff:/opt/exagear/ubt_a32a64:POCF > / proc/sys/fs/binfmt_misc/register 3 ExaGear“/opt/exagear/ubt_a32a64” cat /proc/sys/fs/binfmt_misc/ubt_a32a64 enabled interpreter /opt/exagear/ubt_a32a64 flags: POCF offset 0 magic 7f454c4601010100000000000000000002002800 mask ffffffffffffff000000000000000000feffffff 4 arm32arm64mpro32 arm32arm32 BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 9 ---- 1 apt search linux-source apt install linux-source-4.15.0 2 ashmembinder cd /home/robox-master/kernel/robox-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 3 dkms dkms install anbox-ashmem/1 dkms install anbox-binder/1 4 kobinder_linux modprobe ashmem_linux modprobe binder_linux num_devices=254 lsmod | grep -e ashmem_linux -e binder_linux chmod 777 /dev/ashmem /dev/binder* 5 ashmembinderchmod ls -alh /dev/binder* /dev/ashmem crwxrwxrwx 1 root root 10, 55 Oct 22 10:47 /dev/ashmem crwxrwxrwx 1 root root 511, 0 Oct 22 10:47 /dev/binder0 crwxrwxrwx 1 root root 511, 0 Oct 22 10:47 /dev/binder1 ... ---- android.img x86android 920“/home” 1 SSH 2 android“/mnt” BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 10 4 tar --numeric-owner -cf- . | docker import - android:robox_with_exagear 5 docker images REPOSITORY TAG IMAGE ID CREATED SIZE android robox_with_exagear xxxxxxxx x seconds ago xxxMB ---- 1 cd /home/robox-master mkdir build cd build 2 “/home/robox-master/build” cmake .. 3 “/usr/include/glm/gtx/transform.hpp” vim /usr/include/glm/gtx/transform.hpp 21 ---- 1 xfce4 apt install -y xfce4 mesa-utils x11vnc vainfo 2 xorg.conf cd /etc/X11 touch xorg.conf BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 11 3 xorg.confBusIDpci Section ServerFlags Option DontVTSwitch on Option AutoAddDevices off Option AutoEnableDevices off Option AutoAddGPU off Option AutoBindGPU off EndSection Section Device Identifier AMD Driver amdgpu BusID pci:01:00:00 EndSection Section Monitor Identifier monitor0 Modeline 1280x720 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync Option enable true EndSection Section Screen Identifier screen0 Device AMD Monitor monitor0 DefaultDepth 24 SubSection Display Depth 24 Modes 1280x720 EndSubSection EndSection 4 pci lspci | grep AMD 81:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon Pro WX xxxx] 81:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX xxx] 3. Modeline 1280x720 2. mesa19.0.8 cd /home/mesa git checkout mesa-19.0.8 3. BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 12 apt build-dep mesa apt install libomxil-bellagio-dev libva-dev llvm-7 llvm-7-dev python-mako 4. autogen.shMakefile ./autogen.sh --enable-texture-float --with-gallium-drivers=radeonsi,swrast --with-dri- drivers=radeon,swrast --with-platforms=drm,x11 --enable-glx-tls --enable-shared-glapi --enable-dri3 --enable-lmsensors --enable-gbm --enable-xa --enable-osmesa --enable-vdpau --enable-nine -- enable-omx-bellagio --enable-va --with-llvm-prefix=/usr/lib/llvm-7 --enable-llvm --target=aarch64- linux-gnu CFLAGS=-fsigned-char -O2 CPPFLAGS=-fsigned-char -O2 CXXFLAGS=-fsigned-char - O2 --enable-autotools 5. make -j32 && make install 6. ldconfig vim /etc/ld.so.conf 8. ldconfig – Xorg ---- binaryFilesrobox/home/robox-master 2 920RoboxRobox 3. Roboxinstance1 instance2instance3……IP Robox BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 13 2. Robox 3 docker docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b77d371b402c android:robox_with_exagear /anbox-init.sh 13 seconds ago Up 11 seconds 0.0.0.0:5561->5555/tcp instance2 77b2c041315f android:robox_with_exagear /anbox-init.sh 2 hours ago Up 2 hours 0.0.0.0:5559->5555/tcp instance1 4 sessioninstance1instance2session ps -aux | grep session root 4330 0.0 0.0 9332 6160 ? Ss Oct22 0:01 /usr/bin/dbus-daemon --session -- address=systemd: --nofork --nopidfile -- systemd-activation --syslog-only root 172678 22.1 0.0 6433328 250472 pts/8 Sl 19:51 25:38 anbox session-manager --run- multiple=instance1 --standalone -- experimental --single-window --gles-driver=translator --window-size=720,1280 root 215155 1.4 0.0 5196228 185688 pts/8 Sl 21:46 0:01 anbox session-manager --run- multiple=instance2 --standalone -- experimental --single-window --gles-driver=translator --window-size=720,1280 5 Robox docker exec -it instance1 sh 77b2c041315f:/ # getprop | grep sys.boot.completed [sys.boot_completed]: [1] //sys.boot.completed1, 6 Windows ARDC 1. WindowscmdARDCutilsadb.exe C:ARDCutils> adb connect YOUR_IP:5561 connected to YOUR_IP:5561 2. WindowsIP920IP 5561 920#docker psadb CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b77d371b402c android:robox_with_exagear /anbox-init.sh 13 seconds ago Up 11 seconds 0.0.0.0:5561->5555/tcp instance2 3. WindowsARDCARDC.exe“View > Mode” “Screenshot”“Devices”adb Robox BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 14 cd /home/robox-master ./robox -v stop 1 // ./robox -v stop 2 // ---- 32strace stracestrace 2 strace 3 strace 2. adbstrace/system/bin/ straceemulator-5554 adb connect 0.0.0.0:5559 adb -s 0.0.0.0:5559 shell remount adb -s 0.0.0.0:5559 push strace /system/bin/ 4 APPadb adb -s 0.0.0.0:5559 shell ps -ef BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 15 xorg GPU GPU1conf2GPU“/etc/X11” xorg0.confxorg1.confconfGPUPCI BusID xorg0.conf Section ServerFlags Option DontVTSwitch on Option AutoAddDevices off Option AutoEnableDevices off Option AutoAddGPU off Option AutoBindGPU off EndSection Section Device Identifier AMD Driver amdgpu BusID pci:1:00:00 EndSection Section Monitor Identifier monitor0 Option enable true #Modeline 1680x1050_60.00 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync #Modeline 1024x768_60.00 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync EndSection Section Screen Identifier screen0 Device AMD Monitor monitor0 DefaultDepth 24 SubSection Display Depth 24 #Modes 1680x1050_60.00 #Modes 1024x768_60.00 BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 16 EndSubSection EndSection Section ServerFlags Option DontVTSwitch on Option AutoAddDevices off Option AutoEnableDevices off Option AutoAddGPU off Option AutoBindGPU off EndSection Section Device Identifier AMD Driver amdgpu BusID pci:2:00:00 EndSection Section Monitor Identifier monitor0 Option enable true #Modeline 1680x1050_60.00 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync #Modeline 1024x768_60.00 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync EndSection Section Screen Identifier screen0 Device AMD Monitor monitor0 DefaultDepth 24 SubSection Display Depth 24 #Modes 1680x1050_60.00 #Modes 1024x768_60.00 EndSubSection EndSection BusIDxxxx lspci |grep xxxx 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon Pro WX xxxx] 02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon Pro WX xxxx] 2. BusIDpci:xx:xx:xx“:”lspciBusID xx:xx.xlspciBusIDBusID BoostKit ARM robox 2 Robox 920 11 (2021-06-30) © 17 3 x86 3.1 3.2 3.3 x86 3.4 3.5 3.2 100GB BoostKit ARM robox 3 x86 11 (2021-06-30) © 18 3-2 100GB 1 http://old-releases.ubuntu.com/releases/18.04.1/ubuntu-18.04- server-amd64.iso 2 /etc/apt/source.listdeb-src sed -i s/# deb-src/ deb-src/g /etc/apt/sources.list 3 apt update apt install -y openjdk-8-jdk apt install -y libx11-dev libreadline6-dev libgl1-mesa-dev g++-multilib apt install -y git flex bison gperf build-essential libncurses5-dev apt install -y tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev apt install -y dpkg-dev libsdl1.2-dev apt install -y git-core gnupg flex bison gperf build-essential apt install -y zip curl zlib1g-dev gcc-multilib g++-multilib apt install -y libc6-dev apt install -y lib32ncurses5-dev x11proto-core-dev libx11-dev apt install -y libgl1-mesa-dev libxml2-utils xsltproc unzip m4 apt install -y lib32z-dev ccache apt install -y bc python flex bison gperf libsdl-dev build-essential zip curl ---- Robox“/home” BoostKit ARM robox 3 x86 11 (2021-06-30) © 19 2 2. mkdir -p /home/android cd /home/android/ repo init -u https://github.com/anbox/platform_manifests.git -b anbox repo sync -j64 //100GB 3. repoxmlrepo1 binaryFiles/snapshot20191206.xml cp /home/robox-master/binaryFiles/snapshot20191206.xml /home/android/.repo/manifests/ repo init -m snapshot20191206.xml repo sync -d -j64 // 4. “/home/android/vendor/”anbox rm -rf /home/android/vendor/anbox 5. 1Robox cp -r /home/robox-master /home/android/vendor/ cd /home/android/vendor/ mv robox-master anbox 3 ExaGear 1. android“/home/” mkdir -p /home/exagear cd /home/exagear ls android // 2. android cp -r /home/exagear/android/android-7.1.1_r13.patch /home/android/ 3. vendorandroidvendor 4 android/home/android cp -r /home/robox-master/patch/android-7.1.1_r13-V1.0/* /home/android BoostKit ARM robox 3 x86 11 (2021-06-30) © 20 ---- “/home/android/out/target/product/arm64/”ramdisk.img system.img 2 Roboxdockerandroid.img cd /home/android/vendor/anbox/ scripts/create-package.sh /home/android/out/target/product/arm64/ramdisk.img /home/android/out/target/ product/arm64/system.img ---- BoostKit ARM robox 3 x86 11 (2021-06-30) © 21 A 2021-07-05 2.4 920 2021-05-27 2021-01-26 robox x86 x86 2020-12-14 robox 920 exagear robox x86 exagearrobox BoostKit ARM robox A 11 (2021-06-30) © 22 2020-11-16 2.2 2020-10-15 robox 9202.4 920 2020-09-21 x86 11 (2021-06-30) © 23