下载
中文
注册

Demo参考1

注意事项

图形化桌面会修改DTB中的“hi1910B-vdp.dtsi”和对应的dts文件,所以使能图形化桌面后,会导致本Demo和Demo参考2的功能不可用。

前提条件

  • 已具备一台带有网络端口且操作系统为Ubuntu 22.04的x86架构的Linux服务器。
  • Atlas 200I A2 加速模块环境已升级驱动和固件,具体请参见驱动与固件升级。升级CANN包具体请参见CANN软件安装
  • 当前环境已通过hdmi连接线连接屏幕。
  • 已安装交叉编译工具链并准备需要输出的图片(图片当前仅支持yuv格式),安装交叉编译工具链具体请参见安装工具链

操作步骤

  1. 搭建hdmi_sample工具编译工程并构建工具。
    1. 登录Linux服务器。
    2. 执行如下命令,切换至root用户。

      su - root

    3. 使用WinSCP工具或其他工具,将下载软件包获取的驱动包“Ascend-hdk-310b-npu-driver-soc_<version>_linux-aarch64.run”(若有软实时OS需求,使用驱动包Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64.run)与hdmi验证工具包“hdmi_sample.tar.gz”上传至Linux系统root用户属组目录下,如“/opt”,详细操作请参见使用WinSCP传输文件
    4. 请从昇腾社区下载“Ascend-cann-nnrt_<version>_linux-aarch64.run”软件包并上传至“opt”目录下。
    5. 执行如下命令,进入“opt”目录。

      cd /opt

    6. 执行如下命令,将驱动包“Ascend-hdk-310b-npu-driver-soc_<version>_linux-aarch64.run”(若有软实时OS需求,使用驱动包Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64.run)解压至“opt”的子目录“driver”下。

      bash Ascend-hdk-310b-npu-driver-soc_<version>_linux-aarch64.run --noexec --extract=./driver

      若有软实时OS需求,该命令为bash Ascend-hdk-310b-npu-driver-soc_<version>_linux-rt-aarch64.run --noexec --extract=./driver

    7. 执行如下命令,将“Ascend-cann-nnrt_<version>_linux-aarch64.run”软件包解压至“opt”的子目录“Ascend”下。并将解压后软件包“CANN-runtime-<version>-linux.aarch64.run”解压至“opt”的子目录“cann”下。

      bash Ascend-cann-nnrt_<version>_linux-aarch64.run --noexec --extract=./Ascend

      bash Ascend/run_package/CANN-runtime-<version>-linux.aarch64.run --noexec --extract=./cann

    8. 执行如下命令,将hdmi_sample验证工具包hdmi_sample.tar.gz解压至“opt”目录下,生成子目录“hdmi_sample”

      tar -zxvf hdmi_sample.tar.gz -C ./

    9. 执行如下命令,进入“hdmi_sample”路径并创建lib文件夹。

      cd hdmi_sample && mkdir lib

    10. 执行如下命令,将编译依赖CANN包中的库文件拷贝至“lib”目录下。

      cp ../cann/runtime/lib64/libacl_vo_mpi.so ./lib && cp ../cann/runtime/lib64/libacl_hdmi_mpi.so ./lib && cp ../cann/runtime/lib64/libascendalog.so ./lib && cp ../cann/runtime/lib64/libmmpa.so ./lib

    11. 执行如下命令,将编译依赖驱动包中的库文件拷贝至“lib”目录下。

      cp ../driver/libmid*.so ./lib/ && cp ../driver/libmpi*.so ./lib && cp ../driver/libslog.so ./lib && cp ../driver/libascend_hal.so ./lib && cp ../driver/libdevmmap.so ./lib && cp ../driver/libc_sec.so ./lib

    12. 执行如下命令,将编译依赖的头文件拷贝至对应目录下。

      mkdir acl && cp -R ../cann/runtime/include/acl/* ./acl && cp ../cann/runtime/include/securec* ./acl

    13. (可选)“pictures”文件夹提供了默认图片可用于展示。若需展示自定义图片,执行以下命令,更改图片名称。

      vim include/hdmi_sample_comm.h

      修改“HDMI_1080P_YUNFILE_NAME”为1080P图片名称,修改“HDMI_4K_YUNFILE_NAME”为4K图片名称。修改完成后按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。默认图片名称如下所示。

    14. 执行如下命令,修改Makefile文件。

      vim Makefile

      修改“PREFIX_DIR_SELF_DEFINED”为hdmi_sample验证工具包存放路径,CC为安装工具链中配置的交叉工具链路径。

      例如:修改“PREFIX_DIR_SELF_DEFINED”为/opt,修改“CC”为/opt/compiler/toolchain/bin/aarch64-target-linux-gnu-gcc。如下所示。

      按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

    15. 执行如下命令,编译hdmi验证工具,则会在当前目录下生成hdmi_sample工具。

      make clean && make all

  2. 运行hdmi_sample工具。
    1. 登录Atlas 200I A2 加速模块的环境。
    2. 将生成的工具与展示图片(默认可使用hdmi_sample验证工具包“pictures”文件夹中所附带的图片)上传至Atlas 200I A2 加速模块环境,例如“/opt”目录下。
    3. 执行如下命令,进入“/opt”目录,并增加工具的可执行权限。

      cd /opt && chmod +x hdmi_sample

    4. (可选)若当前系统为Ubuntu,通过如下命令配置环境变量。

      export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH

    5. 根据具体的命令格式,执行如下命令可成功可将图片投送至屏幕中。

      ./hdmi_sample port resolution

      Atlas 200I A2 加速模块提供了2路HDMI接口,分别对应HDMI0与HDMI1。

      依赖源码生成的工具支持1080P和4K图片投递,帮助信息格式如下。

      Usage: hdmi_sample port resolution
      port                        : Port only can be set 0 or 1, (0: hdmi0, 1: hdmi1).
      resolution                  : Resolution only can be set 0 or 1, (0: 1080P, 1: 4K).