国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Robox安卓容器的構建編譯過程和使用方法

安芯教育科技 ? 來源:極術社區 ? 作者:Martin_Mar ? 2022-06-23 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著云計算相關產業蓬勃發展,用戶對移動設備的彈性需求推動出云手機、云游戲等概念,云手機和云游戲就是將云計算技術運用于網絡終端服務,通過云服務器實現云服務的手機,支持彈性適配用戶個性化需求,釋放手機本身硬件資源。

安卓系統在Arm平臺上有著廣泛部署的歷史,Arm同時提供了高性能的云計算平臺,既完全兼容安卓生態,無指令翻譯環節,海量應用無需遷移,又支持虛擬化和容器技術,CPU、內存、存儲和網絡等資源可按需彈性分配,可以完美地為終端用戶提供安卓云服務。終端用戶可以通過手機、電腦等設備遠程訪問Arm服務器上的安卓實例,并運行標準的安卓應用程序和游戲。

本文主要介紹在Arm服務器上,Robox安卓容器方案的構建編譯過程和使用方法。

Robox簡介


Robox容器方案是基于Docker容器使能安卓系統的虛擬化方案。容器的實現是基于一個anbox的基本框架,基本架構如下圖所示。

36121078-f203-11ec-ba43-dac502259ad0.png

環境要求


服務器:Arm服務器1臺
顯卡:AMD Radeon Pro WX 7100 或 Nvidia Tesla T4

配置編譯環境


系統要求

OS: Ubuntu 20.04.2
Kernel: 5.4.0

安裝依賴庫和基礎組件

1. 基礎依賴庫


	

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.deb:https://launchpad.net/ubuntu/zesty/arm64/libprocess-cpp3/3.0.1-0ubuntu5 libdbus-cpp5_5.0.0+16.10.20160809-0ubuntu2_arm64.deb:https://launchpad.net/ubuntu/zesty/arm64/libdbus-cpp5/5.0.0+16.10.20160809-0ubuntu2 libdbus-cpp-dev_5.0.0+16.10.20160809-0ubuntu2_arm64.deb:https://launchpad.net/ubuntu/bionic/arm64/libdbus-cpp-dev/5.0.0+16.10.20160809-0ubuntu2

  • 安裝


	dpkg -i libprocess-cpp3_3.0.1-0ubuntu5_arm64.deb dpkg -i libdbus-cpp5_5.0.0+16.10.20160809-0ubuntu2_arm64.deb dpkg -i libdbus-cpp-dev_5.0.0+16.10.20160809-0ubuntu2_arm64.deb

3. 更換docker storage driver

  • 登錄到服務器,查看docker信息 3623a964-f203-11ec-ba43-dac502259ad0.png
  • 修改storage driver的版本 如果“storage driver”的版本為“overlay”或者“overlay2”,則不需要進行調整;如果“storage driver”的版本為“aufs”,則需要把“storage driver”從“aufs”修改為“overlay”,步驟如下:
    • 打開“/etc/default/docker”文件
      
      					vim /etc/default/docker
    • 添加如下腳本
      
      					DOCKER_OPTS= -s overlay
    • 重啟docker讓修改生效
      
      					/etc/init.d/docker restart
    • 查看docker的storage driver版本 36314402-f203-11ec-ba43-dac502259ad0.png

安裝遠程桌面

  • 安裝xfce4

    apt install xfce4  xfce4-* xrdp
  • 打開.xsession文件夾

    cd /home/ubuntu
    vi .xsession

    注意 “/home/ubuntu”為用戶文件夾。

  • 在.xsession中添加如下內容

    xfce4-session
  • 重啟xrdp遠程桌面

    /etc/init.d/xrdp restart
此后,可以通過遠程桌面訪問服務器圖形桌面,使用root帳號登錄。

Robox 安裝和配置


1. 下載Robox源碼并解壓到/home/目錄下

https://github.com/kunpen?gcompute/robox/tree/master2. binder.ko和ashmem.ko模塊編譯安裝
  • 下載內核源碼,供內核模塊編譯

    apt search linux-source
    apt install linux-source-5.4.0
  • 拷貝ashmem和binder源碼

    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
  • 使用dkms進行編譯和安裝

    dkms install anbox-ashmem/1
    dkms install anbox-binder/1
  • 將ko模塊安裝到內核,binder_linux模塊需要帶參數

    modprobe ashmem_linux
    modprobe binder_linux num_devices=254
    lsmod | grep -e ashmem_linux -e binder_linux
    chmod 777 /dev/ashmem /dev/binder*

    注意:每次服務器重啟后,需要將binder_linux模塊移除之后,再重新安裝。

  • 若ashmem和binder的屬性權限不是下列命令顯示的,需要使用chmod添加權限

    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
    ...

3. 注冊安卓鏡像并存儲在docker中

  • 下載安卓鏡像包:android.imghttps://mirrors.huaweicloud.com/kunpeng/archive/kunpeng_solution/native/android.img

  • 將android鏡像掛載到“/mnt”目錄

    cd /home
    mount /home/android.img /mnt
  • 進入/mnt目錄,注冊鏡像

    cd /mnt
    tar --numeric-owner -cf- . | docker import - android:robox_with_exagear
  • 查看系統容器
    回顯信息如下,則確認android容器存在

    36413d58-f203-11ec-ba43-dac502259ad0.png

4. 編譯Robox源碼

  • 創建編譯目錄

    cd /home/robox-master
    mkdir build
    cd build
  • 配置編譯,在“/home/robox-master/build”目錄執行命令

    cmake ..
  • 在“/usr/include/glm/gtx/transform.hpp”文件中在第21行添加以下內容

    364f7c2e-f203-11ec-ba43-dac502259ad0.png

  • 編譯安裝

    make -j
    make install

5. 使能顯卡

AMD顯卡

?

  • ?安裝xfce4桌面和相關工具

    apt install -y xfce4  mesa-utils x11vnc vainf
  • 修改/etc/X11/xorg.conf配置文件
    在xorg.conf文件中添加如下內容,其中BusID項需要根據服務器中顯卡pci號修改(BusID都是用英文冒號(:)分隔)

    ection "ServerFlags"         
               Option "DontVTSwitch" "on"         
               Option "AutoAddDevices" "off"         
               Option "AutoEnableDevices" "off"         
               Option "AutoAddGPU" "off"         
               Option "AutoBindGPU" "off" 
    EndSection 
    Section "Device"         
               Identifier "AMD"         
               Driver "amdgpu"         
               BusID "pci00: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
  • 查詢顯卡的pci號

    #lspci |grep AMD
    05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon Pro WX 7100]
    05:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590]

    注意:

    • lspci看到的busid是十六進制的,而配置文件中的BusID里面的值是十進制的,所以需要做下轉換,例如上面查詢到的結果是81:00.0,而配置文件里面應該填入的是pci00:00。
    • 配置文件中的BusID格式是pcixx:xx,都是用“:”分隔的,而lspci看到的busid的信息是xx:xx.x,請勿直接拷貝lspci查到的busid去覆蓋配置文件中的BusID。
    • Modeline "1280x720" 字段需要大于等于安卓系統的分辨率。

  • 編譯安裝mesa-19.0.8版本。重裝mesa方法如下
    下載mesa代碼, 進入mesa代碼目錄,切換到19.0.8分支。
    
    			cd /home/ git clone https://anongit.freedesktop.org/git/mesa/mesa.git cd /home/mesa git checkout mesa-19.0.8下載編譯依賴包
    
    			apt build-dep mesa apt install libomxil-bellagio-dev libva-dev llvm-7 llvm-7-dev python-mako執行autogen.sh生成Makefile
    
    			./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
  • 編譯并安裝
    
    			make -j make install
  • 修改ldconfig更改庫鏈接順序,打開/etc/ld.so.conf文件, 添加/usr/local/lib到文件首內容,修改后內容如下
    
    			cat /etc/ld.so.conf /usr/local/lib include /etc/ld.so.conf.d/*.conf
  • 執行如下命令使能
    
    			ldconfig
  • 測試Xorg是否可以正常啟動
    
    			Xorg :0 -config /etc/X11/xorg.conf

NVIDIA顯卡

  • 安裝顯卡驅動

    wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux_sbsa.run
    sudo sh cuda_11.6.2_510.47.03_linux_sbsa.run
  • 運行如下命令創建Xconfig文件

    sudo nvidia-xconfig
    Xorg :0 -config /etc/X11/xorg.conf

啟動Robox安卓實例


???

  • 將robox-master源碼里中binaryFiles目錄下的啟動腳本robox拷貝到/home/robox-master下
    
    			cp /home/robox-master/binaryFiles/ /home/robox-master注意:robox腳本里的docker run命令中的鏡像名稱需要改成本地自己注冊的名稱
  • 設置環境變量,將容器指定到GPU卡上運行
    
    			export DISPLAY=:0注意:
    • robox腳本中設置的DISPLAY號要與此處設置的DISPLAY號一致。
    • 啟動Robox之前,先查看環境變量XDG_RUNTIME_DIR是否存在,若不存在,可以在robox可執行腳本開始位置中增加export XDG_RUNTIME_DIR=/run/user/0,同時要確保“/run/user/0”目錄存在。
    • 啟動Robox容器時,必須按照順序來啟動,即要先啟動instance1,然后才能啟動instance2、instance3、……,不能跳著啟動,否則不能使用宿主機IP地址連接Robox容器。

  • 啟動Robox容器實例,后面的數字代表啟動的實例編號,可以同時啟動多個實例
    
    			./robox -v start 1
  • 查看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
  • 查看主機session進程,查看instance1、instance2對應的兩個session是否正常運行
    
    			#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
  • 登錄到安卓容器內,確認Robox實例是否啟動成功
    
    			#docker exec -it instance1 sh 77b2c041315f:/ # getprop | grep sys.boot.completed [sys.boot_completed]: [1]sys.boot.completed顯示為1,標識安卓啟動完畢???

???

遠程訪問安卓實例


使用scrcpy遠程訪問安卓實例。Scrcpy是一款開源免費的安卓投屏控制軟件,支持在PC、Mac、linux上運行。可參考下面鏈接安裝: https://github.com/Genymobile/scrcpy/blob/master/README.zh-Hans.md使用方法:
  • adb連接到安卓實例

    adb connect serverip:android_instance_port
  • 使用scrcpy遠程訪問安卓實例

    scrcpy -s serverip:android_instance_port

總結


基于以上步驟可以在Arm服務器上快速構建安卓云服務,終端用戶可以在手機、電腦等設備上遠程訪問服務器上的安卓實例,并按需求安裝、運行標準的安卓應用程序和游戲,運行效果如下圖。366e13d2-f203-11ec-ba43-dac502259ad0.png

原文標題:技術分享 | 基于Arm服務器的安卓云容器方案構建方法

文章出處:【微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    135

    文章

    9553

    瀏覽量

    391874
  • 服務器
    +關注

    關注

    14

    文章

    10253

    瀏覽量

    91486
  • 容器
    +關注

    關注

    0

    文章

    531

    瀏覽量

    22965
  • 安卓
    +關注

    關注

    5

    文章

    2184

    瀏覽量

    60255

原文標題:技術分享 | 基于Arm服務器的安卓云容器方案構建方法

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    簡單高效的鴻蒙編譯提速技巧

    在鴻蒙應用開發中編譯構建是開發者最頻繁的操作,每一次編譯提速都能顯著提升項目整體開發效率。本次分享幾個簡單卻高效的鴻蒙編譯提速技巧,從編譯
    的頭像 發表于 03-04 16:09 ?41次閱讀
    簡單高效的鴻蒙<b class='flag-5'>編譯</b>提速技巧

    【瑞薩RA × Zephyr評測】Zephyr RTOS保姆級環境構建編譯下載踩坑版

    筆者介紹一下Zephyr RTOS 保姆級環境構建編譯下載
    的頭像 發表于 01-10 10:03 ?8093次閱讀
    【瑞薩RA × Zephyr評測】Zephyr RTOS保姆級環境<b class='flag-5'>構建</b>與<b class='flag-5'>編譯</b>下載踩坑版

    主板定制_MTK聯發科系統主板PCBA方案開發

    在智能設備迅速發展的浪潮中,系統憑借其開源靈活性與強大的生態系統,已成為物聯網終端、工業控制設備及消費電子行業的核心選擇。而作為智能設備的“心臟”,主板的性能、功耗及擴展性直接
    的頭像 發表于 12-26 20:31 ?381次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>卓</b>主板定制_MTK聯發科<b class='flag-5'>安</b><b class='flag-5'>卓</b>系統主板PCBA方案開發

    主板定制_聯發科MTK主板方案_板定制開發

    在多樣化的應用場景中,通用主板(公板)往往無法完全滿足不同設備的需求。功能冗余、接口不匹配、物料成本高以及環境適配性差等問題,常常導致設備開發周期延長、成本超支,甚至性能達不到預期。例如,工業
    的頭像 發表于 11-24 19:56 ?400次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>卓</b>主板定制_聯發科MTK主板方案_<b class='flag-5'>安</b><b class='flag-5'>卓</b>板定制開發

    定制主板_迷你小型Android主板基于MTK核心板方案

    這款迷你主板的核心是聯發科MT8768平臺,采用八核架構和12nm先進制程工藝,主頻高達2.0GHz。標配4GB內存與64GB存儲,加上11系統的深度優化,它能夠在高速運算與能
    的頭像 發表于 08-12 19:59 ?809次閱讀
    定制<b class='flag-5'>安</b><b class='flag-5'>卓</b>主板_迷你小型Android主板基于MTK<b class='flag-5'>安</b><b class='flag-5'>卓</b>核心板方案

    錫膏的儲存及使用方法詳解

    錫膏是一種常用的焊接輔助材料,廣泛應用于電子、電器、通訊、儀表等行業的焊接工藝中。正確的儲存和使用方法對于保證錫膏的品質和焊接效果至關重要。本文將就錫膏的儲存和使用方法進行詳細介紹,希望能對廣大焊接工作者有所幫助。
    的頭像 發表于 07-18 17:36 ?1395次閱讀
    錫膏的儲存及<b class='flag-5'>使用方法</b>詳解

    釋放潛力:在樹莓派上運行系統實現多樣化應用!

    為什么要在樹莓派上運行系統?系統以其龐大的應用生態系統和用戶友好的界面而聞名,它能夠將樹莓派轉變為功能強大的設備,能夠處理從媒體消費到輕量級計算和物聯網應用等各種任務。優勢高度
    的頭像 發表于 07-05 08:33 ?1420次閱讀
    釋放潛力:在樹莓派上運行<b class='flag-5'>安</b><b class='flag-5'>卓</b>系統實現多樣化應用!

    如何實現與恩智浦i.MX RT1170的無線投屏與控制

    Scrcpy是一款免費開源的軟件,支持將端屏幕投影到其他設備,并支持被投屏設備對的反向控制。基于ADB工具,
    的頭像 發表于 06-26 09:53 ?2266次閱讀
    如何實現<b class='flag-5'>安</b><b class='flag-5'>卓</b>與恩智浦i.MX RT1170的無線投屏與控制

    原生兼容服務器

    原生兼容服務器的定義 原生兼容服務器?指基于Android系統內核和服務框架構建的服務器環境,能夠在不依賴第三方適配層的情況下,直接
    的頭像 發表于 06-19 17:32 ?579次閱讀

    與 Windows 系統的手持工業平板電腦,該如何選擇?

    ? 在工業領域,手持工業平板電腦已成為提升工作效率、優化生產流程的重要工具。而在選擇這類設備時,操作系統的抉擇至關重要,與 Windows 系統各有千秋,如何根據實際工業需求做出恰當選擇,成為
    的頭像 發表于 06-04 11:02 ?1123次閱讀

    請問CYUSB3014支持驅動嗎?

    [i]請問CYUSB3014 支持設備嗎?應該使用什么驅動呢
    發表于 05-30 07:12

    迅為RK3588開發板GPIO調用APP運行測試

    將網盤上的工程文件復制到 Windows 電腦上。確保工程路徑中使用英文字符,不包含中文。接著,啟動 Android Studio,點擊“Open”按鈕選擇應用工程文件夾,然后點擊“OK”。由于
    發表于 05-13 10:49

    如意玲瓏應用構建規則實用案例

    通過《如意玲瓏應用構建指南(二):在玲瓏容器編譯基于 Qt5 的開源應用》的學習后,相信大家已經基本了解了在玲瓏容器中通過怎樣的操作可以將基于 Qt5 的開源應用——qBittorr
    的頭像 發表于 03-25 11:17 ?1072次閱讀
    如意玲瓏應用<b class='flag-5'>構建</b>規則實用案例

    KiCad直播活動(三):在 Windows上編譯KiCad 手把手教您編譯/構建 KiCad 源碼

    Developer Ethan 同學,手把手教您編譯/構建 KiCad 源碼: 開發工具安裝 環境變量配置 使用 VS2022 構建 KiCad 參與直播的小伙伴還有機會獲得 KiCon Badge
    的頭像 發表于 03-24 11:14 ?1672次閱讀
    KiCad直播活動(三):在 Windows上<b class='flag-5'>編譯</b>KiCad 手把手教您<b class='flag-5'>編譯</b>/<b class='flag-5'>構建</b> KiCad 源碼

    請問rk3566有沒有辦法裝12

    各位老哥,rk3566的sdk是11,有沒有辦法裝12呢
    發表于 03-22 19:46