• linux笔记(6):东山哪吒D1H显示HDMI测试-命令行调试


    测试开发板的HDMI输出。
    参考文档:全志官方文档。
    在这里插入图片描述

    1.测试流程和结果

    在这里插入图片描述
    测试结果,只显示了约五分之二:
    在这里插入图片描述

    2.测试过程详解

    2.1 挂载测试工具

    输入命令:

    mount -t debugfs none /sys/kernel/debug
    
    • 1

    查看显示调试节点 dispdbg

    > cd /sys/kernel/debug
    > ls
    asoc                extfrag             pwm
    bdi                 fault_around_bytes  regmap
    block               gpio                regulator
    bluetooth           hid                 sleep_time
    clear_warn_once     ieee80211           sunxi_leds
    clk                 ion                 suspend_stats
    device_component    mmc0                ubi
    devices_deferred    mmc1                ubifs
    dispdbg             mtd                 usb
    dma_buf             pinctrl             wakeup_sources
    enc_test            pm_qos
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    进入目录 dispdbg

    > cd dispdbg/
    > ls
    command  dbglvl   info     name     param    start
    
    • 1
    • 2
    • 3

    1.2 设置参数

    1.2.1设置name

    name有下面几个选项:

    • disp0/1/2 – 显示通道
    • lcd0/1/2 – LCD
    • enhance0/1/2 – 色彩增强模式
    • smbl0/1/2 – 背光
      目前我还不知道这几个有什么区别,现在选择disp0:
    echo disp0 > name
    
    • 1

    1.2.2选择命令

    这里使用的是switch命令:

    echo switch > command
    
    • 1

    官方文档开放的命令有7个:

    • switch – 切换显示通道
    • blank – 显示开关
    • suspend – 显示进入休眠
    • resume – 显示从休眠中唤醒
    • setbl – 背光调节
    • vsync – 消息开关
    • getinfo – 查看智能背光的状态

    1.2.3 设置命令参数

    这个命令的格式是这样的:

    echo type mode > param

    这里我们选择type = 4,mode = 10。
    输入命令:

    echo 4 10 > param
    
    • 1

    每个命令都有自己的参数,switch命令有2个参数:

    1. type ,HDMI对应 4
    typedef enum
    {
    DISP_OUTPUT_TYPE_NONE = 0,
    DISP_OUTPUT_TYPE_LCD = 1,
    DISP_OUTPUT_TYPE_TV = 2,
    DISP_OUTPUT_TYPE_HDMI = 4,
    DISP_OUTPUT_TYPE_VGA = 8,
    }disp_output_type;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.mode,这里我随便选择一个10,对应 DISP_TV_MOD_1080P_60HZ

    typedef enum
    {
    DISP_TV_MOD_480I = 0,
    DISP_TV_MOD_576I = 1,
    DISP_TV_MOD_480P = 2,
    DISP_TV_MOD_576P = 3,
    DISP_TV_MOD_720P_50HZ = 4,
    DISP_TV_MOD_720P_60HZ = 5,
    DISP_TV_MOD_1080I_50HZ = 6,
    DISP_TV_MOD_1080I_60HZ = 7,
    DISP_TV_MOD_1080P_24HZ = 8,
    DISP_TV_MOD_1080P_50HZ = 9,
    DISP_TV_MOD_1080P_60HZ = 0xa,
    DISP_TV_MOD_1080P_24HZ_3D_FP = 0x17,
    DISP_TV_MOD_720P_50HZ_3D_FP = 0x18,
    DISP_TV_MOD_720P_60HZ_3D_FP = 0x19,
    DISP_TV_MOD_1080P_25HZ = 0x1a,
    DISP_TV_MOD_1080P_30HZ = 0x1b,
    DISP_TV_MOD_PAL = 0xb,
    DISP_TV_MOD_PAL_SVIDEO = 0xc,
    DISP_TV_MOD_NTSC = 0xe,
    DISP_TV_MOD_NTSC_SVIDEO = 0xf,
    DISP_TV_MOD_PAL_M = 0x11,
    DISP_TV_MOD_PAL_M_SVIDEO = 0x12,
    DISP_TV_MOD_PAL_NC = 0x14,
    DISP_TV_MOD_PAL_NC_SVIDEO = 0x15,
    DISP_TV_MOD_3840_2160P_30HZ = 0x1c,
    DISP_TV_MOD_3840_2160P_25HZ = 0x1d,
    DISP_TV_MOD_3840_2160P_24HZ = 0x1e,
    DISP_TV_MODE_NUM = 0x1f,
    }disp_tv_mode;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    1.3 指定显示测试图片

    echo 1 > /sys/class/disp/disp/attr/colorbar
    
    • 1

    1.4开启显示

    输入命令:

    echo 1 > start
    
    • 1

    开发板反馈信息:

    [ 5059.601019] disp 0, type 4, mode4
    [ 5060.623495] [HDMI receive params]: tv mode: 0x4 format:0x1 data bits:0x0 eotf:0x4 cs:0x101 dvi_h                             dmi:2 range:2 scan:0 aspect_ratio:8
    [ 5061.683548] disp_al_manager_apply ouput_type:0
    [ 5061.689240] disp_al_hdmi_cfg
    [ 5061.802820] HDMI Audio Enable Successfully
    [ 5061.807427] [DISP] disp_device_attached_and_enable,line:233:
    [ 5061.807432] attached ok, mgr0<-->dev0
    [ 5061.818195] [DISP] disp_device_attached_and_enable,line:236:
    [ 5061.818205] type:4,mode:4,fmt:yuv444,bits:8bits,eotf:4,cs:257 dvi_hdmi:2, range:2 scan:0 ratio:8
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.使用bash初始化HDMI

    把上面的命令写到 hdmi.sh文件,上传到开发板,更改可执行属性,使用 sh ./hdmi.sh 执行文件,就可以开启。

    #!/bin/bash
    #	0.挂载debug 节点
    mount -t debugfs none /sys/kernel/debug
    #	1.进入目录
    cd /sys/kernel/debug/dispdbg
    #	2.设置 name
    echo   disp0 > /sys/kernel/debug/dispdbg/name
    #	3.设置命令
    echo switch > /sys/kernel/debug/dispdbg/command
    #	4.设置参数
    echo 4 10 > /sys/kernel/debug/dispdbg/param
    #	5.启动
    echo 1 > start
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    PyTorch深度学习(五)【卷积神经网络】
    c语言入门
    SV--线程(一)
    WIFI6 2.4G模组 WB800DC移植和替换RTL8723过程记录
    Networkx绘图和常用库函数坐标绘图
    GSCoolink GSV6127 HDMI 2.0/DisplayPort 1.4到MIPI CSI-2嵌入式MCU混合转换器芯片
    nacos -分布式事务-Seata** linux安装jdk ,mysql5.7启动nacos配置ideal 调用接口配合 (保姆级细节教程)
    13、使用Spring Security进行权限控制
    Kotlin Files readAllBytes readAllLines readString
    数电学习(七、半导体存储器)
  • 原文地址:https://blog.csdn.net/hwd00001/article/details/127915465