AIO-3399J开发HDMI-IN功能无法使能

固件类型:自行编译的固件
SDK包名称:rk3399/rk3399_linux_release_20220525_v2.5.1b
SDK修改内容:按照教程《https://wiki.t-firefly.com/zh_CN/AIO-3399J/linux_compile_gpt.html》中下载和同步代码,执行build.sh aio-3399j-ubuntu.mk之前,将kernel的代码检出到30e174dc173fba89c9b84a2651ad46cbc68bb0ac版本,确保HDMI-IN功能的实现代码有效,同时修改了aio-rk3399j-ubuntu.mk文件中的RK_KERNEL_DTS变量的值:
export RK_KERNEL_DTS=rk3399-firefly-aio
Log日志:aio-3399.log

本帖最后由 yong.qian 于 2022-9-15 15:01 编辑

系统启动时HDMI-IN芯片驱动相关的信息

firefly@firefly:~$ dmesg | grep 35874
[    3.587466] tc35874x 1-000f: driver version: 00.01.00
[    3.588001] tc35874x 1-000f: GPIO lookup for consumer reset
[    3.588012] tc35874x 1-000f: using device tree for GPIO lookup
[    3.588044] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/i2c@ff110000/tc358749@0f[0]' - status (0)
[    3.696387] m00_f_tc35874x 1-000f: tc358749 found @ 0x1e (rk3x-i2c)

系统启动后,系统中video类的设备文件

firefly@firefly:~$ v4l2-ctl --list-devices
rkisp1-statistics (platform: rkisp1):
        /dev/video3
        /dev/video4
        /dev/video8
        /dev/video9

rkisp1_mainpath (platform:ff910000.rkisp1):
        /dev/video0
        /dev/video1
        /dev/video2

rkisp1_mainpath (platform:ff920000.rkisp1):
        /dev/video5
        /dev/video6
        /dev/video7

rkisp1 (platform:rkisp1):
        /dev/media0
        /dev/media1

tchip_askquestions
aio-3399.log (1.34 KB)

下面是系统启动的hdmi采集脚本,目前无法正确获取到device_id:

firefly@firefly:~$ cat /usr/local/bin/test_hdmirx.sh
#!/bin/bash

device_id=$(v4l2-ctl --list-devices | grep -A1 hdmirx | grep -v hdmirx | awk -F ' ' '{print $NF}')

v4l2-ctl -d $device_id --set-dv-bt-timings query

width=$(v4l2-ctl -d $device_id --get-dv-timings | grep "Active width" |awk -F ' ' '{print $NF}')
heigh=$(v4l2-ctl -d $device_id --get-dv-timings | grep "Active heigh" |awk -F ' ' '{print $NF}')

trap 'onCtrlC' INT
function onCtrlC () {
        echo 'Ctrl+C is captured'
        killall gst-launch-1.0
        exit 0
}

export XDG_RUNTIME_DIR=/run/user/1000
gst-launch-1.0 alsasrc device=hw:2,0 ! audioconvert ! audioresample ! queue !  alsasink device="hw:1,0" &
gst-launch-1.0 v4l2src device=$device_id ! queue ! video/x-raw,format=RGB ! capssetter replace = true caps="video/x-raw,format=BGR,width=$width,height=$heigh" ! glimagesink &

echo "[Ctrl + C] exit"
while true
do
        sleep 10
done

系统的版本信息如下:

firefly@firefly:~$ ffgo version
OS:      Ubuntu 20.04.4 LTS
MODEL:   AIO-3399J Board (Linux Opensource)
FIREFLY: v2.11-56-g44d33d7
DATE:    20220526
KERNEL:  Linux version 4.4.194-g30e174dc173f (qy@ts) (firefly: 30e174dc173fba89c9b84a2651ad46cbc68bb0ac) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05) ) #3 SMP Wed Sep 14 13:03:12 CST 2022