2

So, I have a common - and yet specifically strange - problem. I have had a PC Tower running Ubuntu 18.04 LTS hooked up to a TV as my media computer for years now. I upgraded to a newer TV, but the tower can't send a signal to the new TV. Here is the lowdown:

  1. Other computers (running windows) can plug into the TV with the same HDMI cable and same port, and it shows on the TV fine (both video and audio)
  2. I can plug the tower back into the old TV, and it shows fine
  3. The tower has 2 HDMI ports in the back, but the one attached to the motherboard does not seem to be working - no matter which TV is plugged into that port, nothing shows. This, unfortunately, means I can't have a "dual monitor" setup, and can only have 1 viewport at a time.
  4. If I have the HDMI plugged into the old TV, let it be there for 10 seconds or so, and then switch to the new TV, then video/audio go to the new TV! However, if I reboot, or if I do anything that would trigger a "lookup" of the display (such as opening the "display" settings, running xrandr in the terminal, or running a full-screen app like Kodi), then the signal is lost.
  5. When the signal is lost, I can plug the old TV back in for the 10 seconds again, plug in the new TV again, and everything is back.
  6. If I boot the tower when it is connected to the new TV, I can see the motherboard's boot screen and the purple Ubuntu splash screen - and then the signal gets lost.
  7. Since I can't run xrandr or open Displays, it makes it hard to troubleshoot why the new TV won't receive the signal.
  8. I have tried deleting the monitor's config file, but that did not fix the issue. The old TV still worked after I did that (although I had to re-adjust a few settings), but the new TV still did not receive a signal on boot/xrandr.
  9. As I vaguely recall, I may have an issue similar to this (if not the exact same) when first setting up the old TV. Obviously I had solved it at the time, but it was also many, many years ago, so if I did fix this issue once before, I no longer remember what it was I had to do. Also, it would have been with an older version of Ubuntu (probably 13.10), so the old solution probably wouldn't be applicable anymore.

I just want to be able to use the new TV as my monitor for this media computer. If anyone has advice, I would love to hear it.

EDIT:

  1. I can use a boot drive, reboot the computer, and it will display on the new TV just fine. That tells me there is some sort of configuration I have on the current installation that isn't working with the new TV, but I do not know what, where it is hiding, or how to adjust/fix it.
  2. To the extent that it matters (it probably doesn't), the old TV is a Philips 32", and the new TV is a Sceptre 55". Both TVs are dumb TVs. Old TV is 720p, 60Hz refresh. New TV is 4K (2160p), also 60Hz refresh.
  3. The graphics card in the tower is an NVidia graphics card (GeForce GT 610), using the X.Org X Server drivers.
Bilesh Ganguly
  • 514
  • 7
  • 18
cidthecoatrack
  • 63
  • 1
  • 2
  • 12
  • 1
    What are the resolutions of each TV? eg 1920x1080 @ 60 Hz. What GPU is driving the TVs? eg nVidia 999, AMD GPU, Intel built in GPU, etc. Also can you boot with a Live USB and test the new TV? – WinEunuuchs2Unix Aug 25 '20 at 11:53
  • I'll note the additional information about resolution, but as I noted in #10, I can use a Live USB and the new TV works fine. – cidthecoatrack Aug 25 '20 at 18:51
  • You might want to change the HDMI cable, I had a similar problem and it turned out to be the cable. – Raffles Aug 25 '20 at 19:20
  • You can try `sudo prime-select intel` and reboot to see if Nvidia cars is source of problem. Then `sudo prime-select nvidia` and reboot to go back. – WinEunuuchs2Unix Aug 25 '20 at 19:48

3 Answers3

3

There is a high probability that this is an EDID issue. Tower and new tv find no agreement on the resolution to use. I would try to save the Edid information of the old tv and force the tower to use this edid when connected to the new tv, or force the resolution. How to do this is more or less described here :
Using a saved EDID so Ubuntu boots to correct resolution when TV is turned off

oscar1919
  • 1,707
  • 12
  • 14
  • Ideally, the computer will use the resolution available on the new TV (I edited to show the old was 720p, the new is 4K, and I would much rather have the higher resolution), so forcing the old, lower resolution doesn't actually solve the problem. – cidthecoatrack Aug 25 '20 at 19:04
  • Another link which may be useful https://askubuntu.com/questions/188060/force-video-mode-without-edid-information – oscar1919 Aug 26 '20 at 06:55
  • So I am pretty sure your EDID theory is correct. Too long to say here what I did to "fix" the issue. I'll submit my own answer detailing what I actually did, but I will mark your answer as the actual solution and award the bounty to you. Thanks again for your help with this! – cidthecoatrack Aug 29 '20 at 20:32
  • Thx! This could be considered as easy 'money'. I'll try to help some more, see comment on your answer. – oscar1919 Aug 30 '20 at 14:17
2

Alright, so here is a strange story that I feel confirms oscar1919 's answer (documenting here just for additional detail too long for a comment):

On a hunch, I plugged in both TVs (using the old "not working" HDMI port on the motherboard for the old TV) and made sure both TVs were on (so they would be sending their EDIDs). With that configuration, I was able to open Display settings on the new TV and run xrandr successfully on the old TV. Display settings even showed that the TV was Sceptre (the new TV brand)! It did show the wrong TV size (32" instead of 55"), but I assume that is a different EDID issue.

Having gotten that far, I did a reboot, to see if the video settings persisted. Indeed, they did! The new TV worked at boot, without having the unplug/re-plug.

As a final test, I unplugged the old TV and rebooted again. The new TV works fine, without the old TV being plugged in. It is strange that this had worked, since I had had both TVs on and connected before, and had seen the issues still. But, this time, making sure that both TVs were on BEFORE I plugged them in to the computer - I think that may have made the difference.

There are still some oddities - such as it saying the display is only 32", and that it says the top resolution is only 1080p instead of 4K (annoying, but I can live with it).

TL;DR:

  1. Have both TV/Displays on (must do this first so both TVs/Displays are sending EDIDs)
  2. Plug both into the computer
  3. Open Display settings or run xrandr
cidthecoatrack
  • 63
  • 1
  • 2
  • 12
  • Suggestion to debug some more, now that you have picture. It should be possible to show the contents of both edids. `sudo apt-get install read-edid` This installs commands get-edid and parse-edid. `sudo get-edid` should normally find two edids and list their bus numbers, e.g. 4 and 6. Next command can be used to write the info of one edid to a txt file : `sudo get-edid -b 4 | parse-edid > edid1.txt` So, write both edids to txt files and compare. You should at least find the manufacturer and a 4K mode if the new tv has a valid edid. (All this with two tv's connected.) – oscar1919 Aug 30 '20 at 14:29
0

Here is a very thorough information on nVidia problems and solutions:

I would start by looking for errors in:

  • /var/log/Xorg.0.log
  • /var/log/syslog

Another consideration is the Live USB would be using nouveau drivers and your installed version might be using proprietary nVidia drivers. You might want to blacklist the nVidia drivers temporarily and use the default drivers which, given the age of your card should work really well. It's difficult finding a link on how to blacklist nvidia and use nouveau because 99% want the opposite. This comes close though:

WinEunuuchs2Unix
  • 99,709
  • 34
  • 237
  • 401