首页 > 技术知识 > 正文

1.前言

使用定制板 Jetpack版本是4.4.1 [L4T 32.4.4]。 使用以下命令,当同时通过nvoverlaysink输出视频到HDMI/DP时,在整个DP屏幕上出现红色噪声错误。

# gst-launch-1.0 videotestsrc ! video/x-raw,width=1280,height=720 ! queue ! nvoverlaysink display-id=0 # gst-launch-1.0 videotestsrc ! video/x-raw,width=1280,height=720 ! queue ! nvoverlaysink display-id=1

nvidia xavier nx平台HDMIDP视频输出红色噪声调试 nvidia xavier nx平台HDMIDP视频输出红色噪声调试1

2. 查看节点信息

看到红色屏幕之前和之后检查一下下面的节点

sudo cat /sys/kernel/debug/tegradc.0/stats sudo cat /sys/kernel/debug/tegradc.1/stats [before] # cat /sys/kernel/debug/tegradc.0/stats underflows: 0 underflow_frames: 0 # cat /sys/kernel/debug/tegradc.1/stats underflows: 0 underflow_frames: 0 [after] # cat /sys/kernel/debug/tegradc.0/stats underflows: 0 underflow_frames: 0 # cat /sys/kernel/debug/tegradc.1/stats underflows: 223 underflow_frames: 408 3. 查看分辨率

DP监视器上运行的分辨率是

2560×1440, both HDMI and DP. # fbset mode “2560×1440-60” # D: 241.546 MHz, H: 88.804 kHz, V: 59.962 Hz geometry 2560 1440 2560 1440 32 timings 4140 80 48 33 3 32 5 hsync high nonstd 1 accel true rgba 8/16,8/8,8/0,8/24 endmode

在运行覆盖接收器之前是否禁用桌面? 禁用桌面命令和播放之后,红色问题消失。

systemctl stop gdm # loginctl terminate-seat seat0 # pkill -9 X # echo 0 > /sys/class/graphics/fb0/blank # echo 0 > /sys/class/graphics/fb1/blank

顺便说一下,在JetsonNano环境中,即使启用桌面也没有问题。 JetsonNano和XavierNX在覆盖方面有什么不同吗? 在XavierNX中是否有任何不禁用桌面的解决方案?

4. 疑问分析

(1)提到“fbset”,它会有任何不同,使用xrandr来改变模式如何?

因为xrandr不能从tty/ssh控制台执行。

# export DISPLAY=:0 # xrandr No protocol specified Cant open display :0

执行从GUI, 这似乎和fbset没有区别。

$ xrandr Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767 HDMI-0 connected primary 2560×1440+0+0 (normal left inverted right x axis y axis) 600mm x 340mm 2560×1440 59.96*+ 2560×1080 60.01 59.95 50.00 30.00 29.97 25.00 24.00 23.98 2048×1152 60.01 1920×1440 60.01 1920×1200 59.89 1920×1080 60.00 59.95 50.00 30.00 29.97 25.00 24.00 23.98 1680×1050 59.96 1440×900 59.89 1440×576 50.00 1440×480 59.94 1280×1024 75.03 60.00 1280×720 60.00 59.94 50.00 1152×864 75.00 1024×768 75.03 70.07 60.01 832×624 75.05 800×600 75.00 72.19 60.32 56.25 720×576 50.00 720×480 59.94 720×400 70.04 640×480 75.00 72.81 67.06 59.94 59.94 DP-0 connected 2560×1440+2560+0 (normal left inverted right x axis y axis) 600mm x 340mm 2560×1440 59.96*+ 2560×1080 60.01 59.95 50.00 30.00 29.97 25.00 24.00 23.98 2048×1152 60.01 1920×1440 60.01 1920×1200 59.89 1920×1080 60.00 59.95 50.00 30.00 29.97 25.00 24.00 23.98 1680×1050 59.96 1440×900 59.89 1440×576 50.00 1440×480 59.94 1280×1024 75.03 60.00 1280×720 60.00 59.94 50.00 1152×864 75.00 1024×768 75.03 70.07 60.01 832×624 75.05 800×600 75.00 72.19 60.32 56.25 720×576 50.00 720×480 59.94 720×400 70.04 640×480 75.00 72.81 67.06 59.94 59.94
<

(2)如果是单DP或单HDMI情况,是否看到这样的问题吗? 色噪音只会同时播放HDMI和DP。

(3)如果使用其他显示模式,是否看到这样的问题吗?

我改变了显示模式从Ubuntu GUI[所有设置/显示]。 桌面环境启用。 1920×1080可以看到和2560×1440一样的红色噪音。 1280×720没问题。 5. 从tty通过普通用户

可以运行xrandr从tty通过普通用户。

$ export DISPLAY=:0 $ xrandr Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767 HDMI-0 connected primary 2560×1440+0+0 (normal left inverted right x axis y axis) 600mm x 340mm …

但是不能通过root用户。

$ sudo su – [sudo] password for user: No protocol specified No protocol specified No protocol specified No protocol specified XCB failed to connect to the X server due to error:1. # export DISPLAY=:0 # xrandr No protocol specified Cant open display :0 6. 解决不禁用GUI的情况下将视频同时输出到HDMI/DP Section “Device” Identifier “Tegra0” Driver “nvidia” Option “AllowEmptyInitialConfiguration” “true” Option “TegraReserveDisplayBandwidth” “false” EndSection

将TerraReserveDisplayBandwidth“false”添加到/etc/X11/xorg.conf后, 输出视频到HDMI/DP同步,并确认没有红色噪声。 也没有底流。

# cat /sys/kernel/debug/tegradc.0/stats underflows: 0 underflow_frames: 0 # cat /sys/kernel/debug/tegradc.1/stats underflows: 0 underflow_frames: 0

猜你喜欢