External monitor recognized but getting "no signal"

I had the exact same problem as the question poster: Ubuntu 12.10, Nvidia card, monitor connected via HDMI, using nouveau driver, monitor worked before (with the same setup), the monitor is detected and enabled in Ubuntu, but no signal to monitor.

The temporary solution: I'm running Ubuntu on a laptop and there is a special key on my keyboard which allows me to enable/disable external displays (in my case the key is Fn + F7, this differs per laptop). So I just pressed that key combination and the external monitor immediately was turned on.

EDIT:

Though the key combination to enable the external monitor works, you'll have to repeat this every time you reboot. I found a way to have the external monitor automatically detected and enabled at the login screen (after a reboot). And when you login, the previous settings for your monitors are restored, as you would expect. Here's how to do it:

Note: I only tested this with an Nvidia card. And before you continue, I recommend you install SSH first (sudo apt-get install ssh) to be safe. In the case something goes wrong and both internal and external monitor stop working, you can always undo whatever you did by logging in from another computer via SSH (e.g. ssh [email protected]). So make sure you know the IP address of your computer in the network.

  1. First of all, run sudo apt-get install v86d in a terminal to install the v86d package.

  2. Run gksu gedit /etc/initramfs-tools/modules or sudo vim /etc/initramfs-tools/modules and add the following line at the end of the file (replace 1280x1024 by the resolution of your internal monitor):

    uvesafb mode_option=1280x1024-24 mtrr=3 scroll=ywrap

    save and exit.

  3. Create the file /etc/initramfs-tools/conf.d/splash by running gksu gedit /etc/initramfs-tools/conf.d/splash or sudo vim /etc/initramfs-tools/conf.d/splash with the following content:

    FRAMEBUFFER=y

    save and exit

  4. Now you need to update the initramfs image because we changed some configurations. Do this by runnning sudo update-initramfs -u.

Now reboot your system and your external monitor should get a signal as soon as the Ubuntu login screen appears.


I used nvidia-settings command to enable external monitor (selected TwinView mode). Note native "Gnome Classic" Displays configuration dialog did not detect external monitor. This was on Ubuntu 12.04.

Martin


I had a similar problem on an Ubuntu 12.04 desktop with an Geforce GT 640 (Baby Kepler version) and the nVidia 310 drivers. When disconnecting and reconnecting a second monitor, in all trials expect one, the monitor seemed to be working properly: correct EDID, detecting monitors works properly, mouse moves off screen to other monitor's area, nvidia-settings reports proper info for both monitors.

However, the monitor reports 'no signal', displays no image, and otherwise acts as if it was stuck in dpms suspend mode. Disconnecting the monitor also worked as expected, and the system would reconfigure for single monitor mode.

Issuing:

sudo vbetool dpms on

resolved the issue. Of course if you don't have vbetool installed, you'll need to run:

sudo apt-get install vbetool

to install it. I suspect in my case a reboot or logging in and out would have also fixed my issue, but since it was resolved by the above command I didn't get to test that thoery (nor do I really want to, of course). note that various actions in nvidia-settings (such as changing resolution, enabling/disabling various monitors, and so on) had no effect.