鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

启动与卸载云手机实例

启动云手机实例路径下应存在kbox_config.cfg配置文件。容器会使用该文件中的配置,因此使用时应确保kbox_config.cfg配置文件中的配置正确。若启动路径下无该配置文件,云手机将禁止启动。

通过修改中如表1所示的map中对应路数的值来选择该路容器使用的GPU、CPU以及数据卷存放路径,灵活配置云手机使用的资源,使性能达到最优。

表1 kbox_config.cfg配置文件中容器使用的GPU、CPU以及数据卷存放路径配置说明

参数名称

参数说明

配置说明

  • KBOX_GPU_MAP(硬件配置一)
  • KBOX_VA_GPU_MAP(硬件配置二、三)

通过修改map中对应路数的值来选择该路容器使用的GPU。

  • KBOX_GPU_MAP列表里的第一个代表编号为1的Kbox云手机,分配的GPU节点是/dev/dri/renderD128,根据硬件配置方案一,renderD128节点属于NUMA0,因此鲲鹏920 7260处理器NUMA0对应的KBOX_CPUSET_MAP里配置的CPU核心取值范围应为0~31。
  • KBOX_VA_GPU_MAP列表里的第一个代表编号为1的Kbox云手机,分配的GPU节点是/dev/dri/renderD128,根据硬件配置方案二、三,renderD128~135属于NUMA0,因此对于鲲鹏920 7260处理器NUMA0对应的KBOX_CPUSET_MAP里配置的CPU核心取值范围应为0~31。鲲鹏920 7280Z处理器NUMA0对应的KBOX_CPUSET_MAP里配置的CPU核心取值范围应为0~79。

KBOX_CPUSET_MAP

通过修改map中对应路数的值来选择该路容器使用的CPU。

KBOX_MOUNT_MAP

通过修改map中对应路数的值来选择该路容器使用的数据卷存放路径。

为确保Kbox云手机的稳定运行与最佳性能,请保障每个容器所绑定的CPU物理核和GPU渲染节点同属于一个CPU片。

Kbox云手机容器支持使能图形加速层,通过修改kbox_config.cfg配置文件中的“ENABLE_RENDER_LAYER”为1进行使能。打开“~/dependency/deploy_scripts”路径下的“kbox_render_accelerating_configuration.xml”配置文件,对应用的图形加速层功能进行配置。具体配置项描述请参见《视频流引擎 特性指南(Android 15)》中的“图形加速层配置项”章节。首次启动云手机容器后,若需要修改图形加速层功能的配置,修改配置文件中应用对应的配置,手动将其拷贝到云手机容器“/data/local/tmp”路径,重启应用生效。

  1. 解压Kbox-AOSP15.zip,将Kbox-AOSP15文件夹中的“deploy_scripts”目录上传至服务器的“~/dependency”目录。
  2. 通过android_kbox_aosp15.sh脚本启动容器。
    1
    2
    3
    cd ~/dependency/deploy_scripts
    chmod +x android_kbox_aosp15.sh
    ./android_kbox_aosp15.sh start {镜像名称:tag}  ${index1}    
    

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

    表2 Kbox基础云手机的默认配置信息

    配置项

    Kbox基础云手机

    场景

    移动办公/托管

    vCPUs

    2

    绑核策略

    2容器/2核

    内存

    6GB

    系统存储

    16GB

    分辨率

    720*1280

    启动脚本使用示例:启动一个编号为1的实例。
    1
    ./android_kbox_aosp15.sh start kbox:origin  1
    
    • 启动容器的过程中可能会出现“writing syncT "procError"”、“exec /system/bin/chmod: no such file”等类似报错,该类报错不影响正常功能,忽略即可。
    • 启动容器时,指定的${index1}对应容器绑定的端口,例如index1=10时,对应使用端口8010/8510。在启动时需要确保对应的端口没有被占用。
    • 可以通过以下指令查询Kbox内核动态开关状态。
      1
      cat /sys/kernel/kbox/kbox_enable
      

      回显为“1”,表示Kbox内核动态开关为打开状态;回显为“0”,表示Kbox内核动态开关为关闭状态。

      若查询发现Kbox内核动态开关为关闭状态,请通过以下指令手动打开该开关。
      1
      echo 1 > /sys/kernel/kbox/kbox_enable
      
  3. 执行如下命令确认Kbox容器是否启动成功,其中“${index}”为启动实例的编号。
    1
    docker exec -it kbox_${index} getprop | grep boot_completed
    

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

  4. 可选:停止并删除Kbox容器的方法。

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

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

    停止并删除编号为${index}的容器。
    1
    ./android_kbox_aosp15.sh delete ${index}
    
  5. 可选:重启Kbox容器的方法。

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

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

    重启编号为${index}的容器。
    1
    ./android_kbox_aosp15.sh restart ${index}