<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>