Weird resolution problem with a certain monitor

5 replies [Last post]
onpon4
Offline
Joined: 05/30/2012

A while back, my mom's LED-lit LCD monitor unfortunately broke, so she took my dad's old fluorescent-lit LCD monitor rather than buying a new one.

Now, this old monitor she now uses is extremely weird. On Windows XP, it works without issue, but:
- Windows refuses to only show resolutions the monitor supports.
- on Linux Mint 12, which she uses, the monitor works, but the OS apparently detects 1024x768 as the native resolution of the monitor, rather than the correct 1280x1024, because 1280x1024 is not listed as an option.
- on GRUB, the monitor will work, but I had to change the settings at first because it chooses a display mode that the monitor doesn't display by default.

I should note that 640x480 at 24-bit color mode works fine on Windows and Linux Mint (refresh rate is 59.9 Hz on Mint apparently, but I don't know for Windows).

My mom is not dependent on nonfree components of Linux Mint (she uses Flash, but only for YouTube), and she's due for a system update soon (when Mint 12 falls out of support), so I wanted to show her Trisquel 6 when it comes out and see if she's interested in the upgrade. But when I booted a Trisquel 5.5 Live CD to see how well it works, about the same thing happened as what happens with GRUB: the display mode chosen when it got to a graphical part is not supported by the monitor.

I'm not familiar with how anything graphical (such as X) works or how the OS figures out what resolutions the monitor can display, so I have some questions:

What would potentially cause the behavior I've described? Could there be some nonfree software dependency involved?

How could this problem in theory be worked around? I'm not familiar with how to start the graphical stuff or really how to do much of anything nontrivial in text mode. Also, my mom is extremely prone to panicking if it looks like something goes wrong, so I don't want to make any mistakes here. Also, my mom isn't interested in getting a new monitor unless she absolutely has to (i.e. the monitor she currently uses breaks), so getting a new monitor, while I would prefer it, is not an option now.

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

First easy try (but that will probably not help), try reconfiguring Xorg:
$ sudo dpkg-reconfigure xserver-xorg

If it does not help, you can try to create a file /etc/X11/xorg.conf with a "Screen" section and "Display" subsection(s) where the authorized resolutions are listed. I do not have the time to give details right now. However, you will easily find examples on the Web (like this one). Be careful with the refresh frequencies. You can damage the monitor by forcing them to be out of range. In other words, you had better start by finding the technical specifications of the monitor.

onpon4
Offline
Joined: 05/30/2012

About the refresh frequencies, I know that the normal rate that it uses is 60 Hz, but do I need to find more detailed information than that? I ask because LXDE's monitor settings dialog offers different frequencies with different resolutions.

I don't know how to get back into the graphical stuff after I've changed that stuff. I'm really completely clueless here.

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

There is a vertical and an horizontal refresh frequencies (more precisely: ranges of acceptable frequencies). You can find this information on the paper documentation coming with the screen or by typing the exact model of your screen in a Web search engine. Anyway, you can simply not specify the "HorizSync" and "VertRefresh" lines. X.org will auto-configure them. It was just a warning because those lines were present in the example configuration I linked to.

To create /etc/X11/xorg.conf, you need super-user privileges (it is in your personal directory) and a text editor of your choice (GEdit in the command below). E.g., you can execute, in a terminal, the following command:
$ gksu gedit /etc/X11/xorg.conf

After writing (or copy/pasting) a configuration, where the "Modes" line list the resolutions in order of preference, you just need to save the file and quit the text editor. It is then only a matter of restarting the graphical stack (quitting the graphical session, back to the graphical login screen will do that). Do not be too afraid of making a mistake. You will always be able to login in a "real" terminal and remove /etc/X11/xorg.conf to come back to the current situation.

onpon4
Offline
Joined: 05/30/2012

> It is then only a matter of restarting the graphical stack (quitting the
> graphical session, back to the graphical login screen will do that).

But I can't see anything in a graphical session, so I have to use a text-based session. I don't know how to get back into a graphical session from there (or do much of anything, really, other than the trivial stuff you went into detail over and shutting down).

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

I misread you. I thought you simply had a lower resolution than possible. So just to be clear: you do not have anything graphical, right?

By Pressing Ctrl+Alt+F1, you will be presented a terminal session where you can login (I believe the live system user is named "trisquel" and there is a blank password). Then, as I wrote earlier, I would try that:
$ sudo dpkg-reconfigure xserver-xorg

'dpkg-reconfigure' may (or not) ask questions about the configuration of the display. You can then try to launch the display manager again:
$ sudo service gdm start

If it replies that it has already been started, write "restart" instead of "start". You can try different configuration until succeeding.

If that does not help, you can use 'nano' (available in the live system) to create and fill Xorg's configuration file:
$ sudo nano /etc/X11/xorg.conf

After saving and quitting (keyboard commands are written at the bottom of the screen), you can try again to launch the display manager:
$ sudo service gdm start

You will probably want to take a look at Xorg's log to understand the issue (the useful lines probably include "(EE)"):
$ less /var/log/Xorg.0.log