<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 22, 2022 at 2:32 AM Stephen Worthington <<a href="mailto:stephen_agent@jsw.gen.nz">stephen_agent@jsw.gen.nz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sat, 21 May 2022 19:16:49 -0500, you wrote:<br>
<br>
>While trying to solve another issue, I've created a new one for myself.<br>
>While playing with different themes, I forgot that I had made a custom<br>
>theme from one of the existing ones.  When I tried to upgrade and/or change<br>
>the theme I ended up in a deep hole.  Nothing would work except the<br>
>myth-center-wide.  Every other one gave me errors regarding the video.<br>
><br>
>In trying to fix this, thinking it really was a video issue, I upgraded my<br>
>Nvidia driver, which worked (the driver did) but of course, it didn't solve<br>
>the problem.  Once I got my head out of my arse, I realized what I had done<br>
>and restored the custom theme in my home directory.  That fixed theme<br>
>problem and then the problem I currently have:<br>
><br>
>The frontend works fine when the TV is turned on and the AVR is switched to<br>
>the correct HDMI input (the mythtv server).  But as soon as I either turn<br>
>off the TV or the AVR, the NVIDIA driver or the GUI kills the HDMI output<br>
>and my only recourse is to restart the GUI (I'm using lightdm). I've set up<br>
>what I thought used to work in the xorg.conf file:<br>
><br>
>Section "ServerLayout"<br>
>    Identifier     "Layout0"<br>
>    Screen      0  "Screen0" 0 0<br>
>    InputDevice    "Keyboard0" "CoreKeyboard"<br>
>    InputDevice    "Mouse0" "CorePointer"<br>
>    Option         "StandbyTime" "0"<br>
>    Option         "SuspendTime" "0"<br>
>    Option         "OffTime" "0"<br>
>    Option         "BlankTime" "0"<br>
>    Option         "Xinerama" "0"<br>
>EndSection<br>
><br>
>Section "Files"<br>
>EndSection<br>
><br>
>Section "InputDevice"<br>
><br>
>    # generated from default<br>
>    Identifier     "Mouse0"<br>
>    Driver         "mouse"<br>
>    Option         "Protocol" "auto"<br>
>    Option         "Device" "/dev/psaux"<br>
>    Option         "Emulate3Buttons" "no"<br>
>    Option         "ZAxisMapping" "4 5"<br>
>EndSection<br>
><br>
>Section "InputDevice"<br>
><br>
>    # generated from default<br>
>    Identifier     "Keyboard0"<br>
>    Driver         "kbd"<br>
>EndSection<br>
><br>
>Section "Monitor"<br>
><br>
>    # HorizSync source: edid, VertRefresh source: edid<br>
>    Identifier     "Monitor0"<br>
>    VendorName     "Unknown"<br>
>    ModelName      "DENON, Ltd. DENON-AVR"<br>
>    HorizSync       30.0 - 255.0<br>
>    VertRefresh     24.0 - 120.0<br>
>#   ModeLine       "3840x2160_60" 593.41 3840 4016 4104 4400 2160 2168 2178<br>
>2250 +hsync +vsync<br>
>    Option         "DPMS"<br>
>EndSection<br>
>Section "Device"<br>
><br>
>    Option         "ConnectedMonitor" "DFP-1"<br>
>    Option         "CustomEDID" "DFP-1:/etc/X11/edid.bin"<br>
>    Option         "IgnoreEDID" "FALSE"<br>
>    Option         "UseEDID" "TRUE"<br>
>    Identifier     "Device0"<br>
>    Driver         "nvidia"<br>
>    VendorName     "NVIDIA Corporation"<br>
>    BoardName      "GeForce GT 1030"<br>
>EndSection<br>
><br>
>Section "Screen"<br>
>    Identifier     "Screen0"<br>
>    Device         "Device0"<br>
>    Monitor        "Monitor0"<br>
>    DefaultDepth    24<br>
>    Option         "Stereo" "0"<br>
>    Option         "nvidiaXineramaInfoOrder" "DFP-1"<br>
>    Option         "metamodes" "3840x2160 +0+0"<br>
>    Option         "SLI" "Off"<br>
>    Option         "MultiGPU" "Off"<br>
>    Option         "BaseMosaic" "off"<br>
>#    Option         "ModeDebug" "TRUE"<br>
>    SubSection     "Display"<br>
>        Depth       24<br>
>    EndSubSection<br>
>EndSection<br>
><br>
>I've tried several different drivers (430, 450, 470, 510) and currently<br>
>have 470 installed, but they all produced the same problem.  So the<br>
>configuration is a PC with a GT 1030 video card, HDMI out to a Denon AVR<br>
>and HDMI from Denon to an LG TV capable of 3840x2160.  I've set the power<br>
>options in lightdm to all off for the monitor (no sleep, no auto off,<br>
>etc).  Either turn off the TV or the Denon and I cannot get a signal out of<br>
>the GT 1030 card that either the Denon or the TV sees ( I'm assuming it's<br>
>the Denon that needs to see the signal and if the TV is turned off, the<br>
>Denon switches off the HDMI input.  There are no errors shown in the<br>
>Xorg.0.log and it does show the DFP-1 is connected to the LG even if they<br>
>are turned off (both DVR and TV) which, I assume, is because I am using a<br>
>custom edid.bin file.<br>
><br>
>Any thoughts as to what I'm forgetting to do?<br>
><br>
>Regards,<br>
><br>
>Ken Emerson<br>
<br>
I am also using an Nvidia GT1030 card, with the 470 drivers and<br>
updated to the 510 drivers today.<br>
<br>
The usual cause for your problem is that X is trying to read the EDID<br>
data and is unable to when the AVR is off or switched to a different<br>
video output, or the TV is off.  If the AVR is doing its job properly,<br>
it will be doing EDID passthrough and emulation where it reads and<br>
saves the EDID data whenever it is read from the TV and when the TV is<br>
unavailable, will provide that saved EDID data instead.  However, it<br>
looks like the AVR is not doing that.  The next thing is the TV.  Good<br>
TVs (like my Sony Bravia KDL-32V5500) will provide the EDID data even<br>
when they are switched off completely (and unplugged from the wall).<br>
They do this by taking power from  the HDMI input and using that to<br>
power the EDID circuit.  However, there are lots of TVs (and most<br>
monitors) that do not do this and will only provide EDID data when<br>
they are on.  Some will not even provide EDID data when they have<br>
power but are in standby.  And for everything to work properly, when<br>
the AVR is in standby, it should also be providing the EDID data, or<br>
connecting to the TV to get it to provide it.<br>
<br>
The solution to EDID problems is normally to take a copy of the EDID<br>
data and use the CustomEDID option in xorg.conf.  However, you seem to<br>
already have done that, but you should check that it is working by<br>
checking the /var/log/Xorg.0.log file to see where the EDID is coming<br>
from.  I am not exactly sure how you tell that, but if it is working,<br>
you should be able to unplug the HDMI cable from the PC to the AVR and<br>
boot and it should boot up correctly with a full desktop and you<br>
should be able to use VNC (if you have that set up) to see that<br>
desktop from another machine.  My guess is that, despite your<br>
CustomEDID option, the custom EDID is not actually working - maybe<br>
there is a permissions problem on the EDID file, or something like<br>
that.<br>
<br>
One other thing to check for is screensaver problems.  I have a<br>
problem at the moment that my video is going into a screensaver mode<br>
(blank screen) after a timeout.  This did not used to happen before a<br>
couple of months ago, so it is likely some recent change in the Nvidia<br>
drivers or Xorg that is causing it.  My guess is Xorg, as I saw a new<br>
version of it being installed around the time the problem started.  In<br>
my case, the screen unblanks if I use the keyboard (the shift key is<br>
sufficient).  I can disable this screensaver using this command:<br>
<br>
xset s off<br>
<br>
If I do the "xset q" command before "xset s off", I see that the<br>
"Screen Saver: timeout:" setting is 600.  After "xset s off" it is 0.<br>
<br>
I have not found any setting for xorg.conf that affects this screen<br>
saver, so I have just now set up a systemd user service to run the<br>
"xset q" command at user startup:<br>
<br>
root@mypvr:~# cat /home/stephen/.config/systemd/user/startup.service<br>
[Unit]<br>
Description=JSW user startup<br>
<br>
[Service]<br>
ExecStart=/home/stephen/bin/jsw-user-startup.sh<br>
<br>
[Install]<br>
WantedBy=multi-user.target<br>
<br>
root@mypvr:~# cat /home/stephen/bin/jsw-user-startup.sh<br>
#!/bin/bash<br>
<br>
##############################################################################<br>
# Commands to be run at startup by a systemd user service.<br>
##############################################################################<br>
<br>
# Prevent screensaver from blanking screen.<br>
xset s off<br>
<br>
# Show that this file has been run.<br>
echo "$(date) $0 ran" >>/tmp/$(basename "$0").log<br>
<br>
To do this fix, create files equivalent to the above and make sure<br>
they have the correct permissions.  Then do:<br>
<br>
sudo systemctl daemon-reload<br>
systemctl --user enable --now startup.service<br>
<br>
I have not tested this by rebooting yet, but it works when the unit is<br>
run manually (systemctl --user start startup) and should work at boot<br>
time or when the desktop is restarted.<br>
<br>
There appear to be three different screensavers that can blank the<br>
screen.  The other two are the xscreensaver program, and DPMS.<br>
<br>
To disable xscreensaver, you can just stop it from being started. With<br>
the XFCE4 desktop, go to Applications > Settings > Session and Startup<br>
> Application Autostart and find the Screensaver line and untick it.<br>
<br>
To disable DMPS, you can do "xset -dpms", or you can put:<br>
<br>
Option "DPMS"   "false"<br>
<br>
in xorg.conf in Section "Monitor".  However, there seems to be<br>
something the re-enables DPMS periodically, so I have found it better<br>
to do as you have already done and put:<br>
<br>
Section "ServerFlags"<br>
        Option "BlankTime"      "0"<br>
        Option "StandbyTime"    "0"<br>
        Option "SuspendTime"    "0"<br>
        Option "OffTime"        "0"<br>
EndSection<br>
<br>
in xorg.cong and leave DPMS enabled.  Those settings turn off all the<br>
timeouts that control DPMS.<br><br></blockquote><div><br></div><div>Stephen:</div><div><br></div><div>This is getting even more frustrating.  I've cleaned up my xorg.conf file, remade the edid.bin file from the nvidia-settings program, doing everything that I think is correct and it works as long as I don't disconnect the video feed from the TV (via the Denon AVR).  As soon as I do that the video signal from the graphics card is gone.  But . . .</div><div><br></div><div>Here is some more interesting data.  If I leave the Denon connecting the PC to the TV (where I'm getting 'No Signal' from the TV) and then shutdown X (via service lightdm stop), I see the PC console vt #5 (dedicated to the graphical UI IIRC.  From there, I can open another console VT and restart X (service lightdm start) and viola! The output comes back on.  But if I repeat turning the TV off and back on, I'm back to square one and I can't open another VT because I'm actually still connected, somehow, the the UI but the video is turned off.</div><div><br></div><div>So in my opinion, it's either X or lightdm that shuts off the video output when it sees there isn't a monitor connected.  Now the Xorg.log.0 file shows the TV is connected via DFP-1 (and it never goes disconnected) so I'm leaning towards the problem with lightdm or some configuartion I have that causes it to act this way.  I did do your 'xset s off' and checked that the timeout was set to zero, but that didn't help.</div><div><br></div><div>Maybe you or someone else reading this thread can come up with some other ideas that I can try.  I guess I could try getting xfce to run or some other window UI, but I've had this system running for 2 years now with no problems.  Obviously, I changed something but I have no idea what it could be.</div><div><br></div><div>Regards,</div><div><br></div><div>Ken Emerson </div></div></div>