中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

启动与卸载云手机实例

  • 使用kbox_config.cfg配置文件可以灵活配置云手机使用的资源,使性能达到最优。
  • kbox_config.cfg中有KBOX_GPU_MAP、KBOX_MOUNT_MAP、KBOX_CPUSET_MAP等配置项,可以修改map中对应路数的值来选择该路容器使用的GPU、CPU以及数据卷存放路径。
  • 启动路径下应存在kbox_config.cfg配置文件。容器会使用该文件中的配置,因此使用时应确保kbox_config.cfg配置文件中的配置正确。若启动路径下无该配置文件,则云手机将禁止启动。
  1. 解压Kbox-AOSP11.zip,将Kbox-AOSP11文件夹中的deploy_scripts目录上传至服务器的“~/dependency”目录。
  2. (可选)使能硬件解码(以下简称“硬解”)时,需要设置“deploy_scripts”目录下的kbox_config.cfg文件,将“ENABLE_HARD_DECODE”设置为“1”,同时需参考以下步骤设置NETINT卡节点。
    1. 通过nvme list命令查看编解码卡芯片对应节点号。
      #nvme list

      NETINT编码卡芯片NVMe节点如红框内所示,每个红框都是一张编码卡,一张编码卡包含4颗芯片。该图为回显示例,请以实际为准。

    2. 查看NVMe节点与pcie bus号对应关系。
      {index}为上图所示NVMe节点编号。此处以/dev/nvme2n1为例,该节点{index}即为2。
      #find /sys/devices/ -name nvme{index}

    3. 通过bus号找到该节点与NUMA从属关系。
      {busID}为上一步骤获取的bus号。以上图回显为例,{busID}即为0000:07:00.0。
      #lspci -vvvs {busID} | grep NUMA

    4. 根据编码卡NVMe设备节点对应的NUMA修改kbox_config.cfg中NETINT的值。

      鲲鹏920 7265F/7260服务器:从属于0、1号NUMA的NVMe节点写在NETINT0字段中,从属于2、3号NUMA的NVMe节点写在NETINT1字段中。

      字段中每个设备需添加两个节点。例如2号NVMe设备,需添加“/dev/nvme2”、“/dev/nvme2n1”两个节点。

      NETINT0="/dev/nvme0,/dev/nvme0n1,/dev/nvme1,/dev/nvme1n1,/dev/nvme2,/dev/nvme2n1,/dev/nvme3,/dev/nvme3n1"
      NETINT1="/dev/nvme5,/dev/nvme5n1,/dev/nvme6,/dev/nvme6n1,/dev/nvme7,/dev/nvme7n1,/dev/nvme8,/dev/nvme8n1"

      若服务器环境上只有一张NETINT卡(例只有2.a中nvme list图中所示的第一张卡),则kbox_config.cfg的NETINT0和NETINT1字段都填成该卡的节点值。

      NETINT0="/dev/nvme0,/dev/nvme0n1,/dev/nvme1,/dev/nvme1n1,/dev/nvme2,/dev/nvme2n1,/dev/nvme3,/dev/nvme3n1"
      NETINT1="/dev/nvme0,/dev/nvme0n1,/dev/nvme1,/dev/nvme1n1,/dev/nvme2,/dev/nvme2n1,/dev/nvme3,/dev/nvme3n1"
      1. 若第一次启动容器时NETINT的值为空,禁止设置ENABLE_HARD_DECODE=1,且禁止重启时设置ENABLE_HARD_DECODE=1,否则播放视频会有短暂黑屏的现象。
      2. 若启动时为软件解码(以下简称“软解”)方式(设置ENABLE_HARD_DECODE=0),重启时能切换为硬解方式(设置ENABLE_HARD_DECODE=1),需要在启动时填入NETINT的值。
  3. 通过android11_kbox.sh脚本启动容器。
    1
    2
    3
    # cd ~/dependency/deploy_scripts
    # sudo chmod +x android11_kbox.sh
    # sudo ./android11_kbox.sh start {镜像名称:tag}  ${index1}  ${index2}  
    

    Kbox基础云手机的默认配置信息如表1所示。

    表1 Kbox安卓11基础云手机的默认配置信息

    配置项

    Kbox基础云手机

    场景

    移动办公/ 托管

    vCPUs

    2

    绑核策略

    2容器/2核

    内存

    6GB

    系统存储

    16GB

    分辨率

    720*1280

    启动脚本使用示例:

    • 启动一个编号为1的实例。
      1
      # sudo ./android11_kbox.sh start kbox:latest  1
      
    • 启动编号为1~5的五个实例。
      1
      # sudo ./android11_kbox.sh start kbox:latest  1 5
      
  4. 执行命令,确认Kbox容器是否启动成功,其中“${index}”为启动实例的编号。
    1
    2
    # sudo docker exec -it kbox_${index} sh
    # getprop | grep boot
    

    若回显信息中的sys.boot_completed显示为“1”,则启动成功。

  5. 停止并删除Kbox容器的方法。

    由于Kbox方案默认挂载数据卷,默认的docker stopdocker rm命令不能彻底清理容器数据,需要使用脚本彻底清理主机侧文件。

    使用android11_kbox.sh脚本,停止并删除正在运行的Kbox容器。

    • 停止并删除编号为${index}的容器。
      1
      # sudo ./android11_kbox.sh delete ${index}
      
    • 停止并删除编号为${index1}~${index2}的所有容器。
      1
      # sudo ./android11_kbox.sh delete ${index1} ${index2}
      
  6. 重启Kbox容器的方法。

    由于Kbox方案默认挂载数据卷,在重启容器时,无法使用默认的docker restart命令进行重启,需要使用脚本执行容器的重启操作。

    使用android11_kbox.sh脚本重启Kbox容器。

    • 重启编号为${index}的容器。
      1
      # sudo ./android11_kbox.sh restart ${index}
      
    • 重启编号为${index1}~${index2}的所有容器。
      1
      # sudo ./android11_kbox.sh restart ${index1} ${index2}
      
    • 若容器启动时为硬解方式,重启时切换为软解方式,可设置kbox_config.cfg中的ENABLE_HARD_DECODE字段为0,然后重启。
      1
      # sudo ./android11_kbox.sh restart ${index1}
      
    • 若容器启动时为软解方式(且启动时配置了kbox_config.cfg中的NETINT字段),重启时切换为硬解方式,可设置kbox_config.cfg中的ENABLE_HARD_DECODE字段为1,然后重启。
      1
      # sudo ./android11_kbox.sh restart ${index1}
      
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词