Size: 16819
Comment: "permanantly overwrite" sounded scary in the 915resolution section.
|
Size: 16821
Comment: moved from nano to gedit
|
Deletions are marked like this. | Additions are marked like this. |
Line 36: | Line 36: |
you are using {{{nano}}} for an editor as it is fairly straight forward. {{{ sudo nano /etc/X11/xorg.conf |
you are using {{{gedit}}} for an editor as it is fairly straight forward. {{{ sudo gedit /etc/X11/xorg.conf |
ContentsBRTableOfContents |
Introduction
This Howto is intended for those who have problems with resolution or screen refresh rate (flickering), regardless of how they got to this situation. A possible reason for this is that your hardware (video adapter/monitor) may not have been detected properly.
One solution will work for one person and another solution will work for someone else. I hope to provide several different solutions here, ranked in decending order from what I have seen to be the most popular and successful solution to those solutions that have helped only a few. This way, hopefully it will provide an answer for everyone. Let's start with the most popular fix.
For ATI Users I recommend reading the ATI - Refresh Rate & Resolution Quickfix part on the bottom of this Page.
Run the Autodetect Script Again
I'm not sure that this is the solution that works for the most people actually, but it most certainly is the quickest and easiest one. All we're doing is running the same script that tried to detect your video hardware when you initially installed. Sometimes this does help, especially if the video card or monitor is different from when you installed Ubuntu. Run the following command. If you open a sudo session first by entering sudo -v, you can then simply copy and paste the text below.
For Ubuntu 6.06 (Dapper Drake):
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.custom sudo sh -c 'md5sum /etc/X11/xorg.conf > /var/lib/x11/xorg.conf.md5sum' sudo dpkg-reconfigure xserver-xorg
A configuration page will appear, asking if you want to autodetect video hardware. Select yes, and you should be able to just hit enter a bunch of times to accept the autodetected configurations. After completion, close any open windows or programs you have running on your desktop and press CTRL-ALT-Backspace to restart X. You will be asked to log into your GNOME session again and hopefully everything will be fixed. If not, try the next solution.
Undetected Monitor Specs
Open the file /etc/X11/xorg.conf in your favorite text editor. I'll assume you are using gedit for an editor as it is fairly straight forward.
sudo gedit /etc/X11/xorg.conf
Now look for a section in that file called Section "Monitor". Once you find this section, look at the lines of text between Section "Monitor" and EndSection. There should be two lines in there that begin with the words HorizSync and VertRefresh. If those lines don't appear there, don't worry. There is a good chance that we've found the problem already!
You will need to gather two bits of information for your monitor now, either from your Monitor User's Manual, the command line, or from online. Finding these values usually just involves searching [http://www.google.com Google] with the model of your monitor. One extensive list is at the [http://forum.linux-sevenler.org/index.php/topic,866.0.html?PHPSESSID=238b3fe295b404d31020ac23777c8a6f Lapis forum]
We need the horizontal sync frequency (usually measured in kHz) and the vertical refresh rate (usually in Hz). Both of these values are typically given in a range such as "30-98 kHZ" or "50-160 Hz".
Alternatively, if your monitor supports it, you can just run the following command (install the 'xresprobe' package if the command is not available):
sudo ddcprobe | grep monitorrange
The first two values returned are your HorizSync rates, the second pair is your VertRefresh values.
There are two ways to enter your monitor information into the file. One way is to run the following commands which will regenerate the file and ask you for the values in the process.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.custom sudo sh -c 'md5sum /etc/X11/xorg.conf > /var/lib/xfree86/xorg.conf.md5sum' sudo dpkg-reconfigure -plow xserver-xorg
The second way is to simply add those values to our /etc/X11/xorg.conf file with a text editor. But first, lets make a backup of that file just in case an error is made.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
Editing this file so that it works involves adding two extra lines to the Section "Monitor" section of that file. For example, mine is shown below.
NOTE: Don't change anything that is written in the file for now. Just add the two lines. The snippet from my file is just an example and may not apply to your hardware. More importantly if your monitor is not detectable the Identifier will be called "Generic Monitor". In which case, don't change the Identifier to anything else otherwise X will fail to load and report that it can't find the a Monitor.
Section "Monitor" Identifier "FLATRON 995F" Option "DPMS" HorizSync 30-96 VertRefresh 50-160 EndSection
Now save the file, close all open applications, and press CTRL-ALT-Backspace to restart X. Assuming all goes well, you will be prompted to log into your session again.
NOTE: - If you are using XFree86 then you needed to edit /etc/X11/XF86Config-4. Also if you have an issue where only 800x600 is available in the dropdown for screen resolution, then modifying the Modes line within the section in that file called Section "Monitor" and adding the required resolution could solve this.
SubSection "Display" Depth 24 Modes "1024x768" "800x600" "640x480" EndSubSection
Intel Graphics driver (i810) won't use high screen resolutions
There is a common issue with Intel graphics resulting in screen resolutions not being available even after adding them to the xorg.conf file.
This problem appears sometimes for laptops with "non-standard"-screen resolution in combination with certain Intel graphic-chips. Background: It seems that the Video Bios (vBios) has to deliver the right resolution for the lcd-screen to enable the autoconfiguration to set this resolution. However sometimes the right resolution is not delivered and consequently the right resolution can not be implemented.
The best fix is provided by the software "915resolution". See ["i915Driver"]
You can fix the problem by overwriting the vBios setting in the RAM by using a program called 915resolution. Using 915resolution makes no permanent changes to your computer -- the effects of using it are erased by rebooting.
Here is the description of the 915resolution developer: "915resolution is a tool to modify the video BIOS of the 800 and 900 series Intel graphics chipsets"
To install 915resolution on Ubuntu make sure that you have included the "universe" repository and type (replacing "915resolution" with "855resolution" on Breezy):
sudo apt-get install 915resolution
Once the program is installed you can use the program to list all available vBios modes:
sudo 915resolution -l
The result should look similar to:
Intel 800/900 Series VBIOS Hack : version 0.5.2 Chipset: 845G BIOS: TYPE 1 Mode Table Offset: $C0000 + $269 Mode Table Entries: 27 Mode 30 : 640x480, 8 bits/pixel Mode 32 : 800x600, 8 bits/pixel Mode 34 : 1024x768, 8 bits/pixel Mode 38 : 1280x1024, 8 bits/pixel Mode 3a : 1600x1200, 8 bits/pixel Mode 3c : 1920x1440, 8 bits/pixel Mode 41 : 640x480, 16 bits/pixel Mode 43 : 800x600, 16 bits/pixel Mode 45 : 1024x768, 16 bits/pixel Mode 49 : 1280x1024, 16 bits/pixel Mode 4b : 1600x1200, 16 bits/pixel Mode 4d : 1920x1440, 16 bits/pixel Mode 50 : 640x480, 32 bits/pixel Mode 52 : 800x600, 32 bits/pixel Mode 54 : 1024x768, 32 bits/pixel Mode 58 : 1280x1024, 32 bits/pixel Mode 5a : 1600x1200, 32 bits/pixel Mode 5c : 1920x1440, 32 bits/pixel
If the resolution of your sceen is not present then you can overwrite a unused mode by the value of you screen. Since the results of using 915resolution are temporary you must arrange to have it run each time Ubuntu boots up. This is accomplished by modifying the file /etc/default/915resolution. For example if you want to overwrite the mode 41 by the resolution 2400x1600:
Ubuntu
gksudo gedit /etc/default/915resolution
Kubuntu
kdesu kate /etc/default/915resolution
Your file should look similar to: {{{} # # 915resolution default # # find free modes by /usr/sbin/915resolution -l # and set it to MODE or set to 'MODE=auto' # MODE=41 # # and set resolutions for the mode. XRESO=2400 YRESO=1600 }}} This will ensure that the vBios mode 41 is overwritten in the RAM at boot-time, before initializing the X-windows. Since the resolution is now available in the vBios your system should automatically be able to set the right resolution after rebooting.
Incorrect DefaultDepth
Sometimes the automatic X configuration sets the colour depth to a value higher than some hardware can properly handle. To see if this is the case for you, first backup your /etc/X11/xorg.conf file.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
Now open the file in your favourite text editor. I'll assume you'll use nano for now since it is relatively simple to use, but you can use whatever text editor you like.
sudo nano /etc/X11/xorg.conf
Search for the word DefaultDepth (notice it is one word) in that file. The default colour depth set by Hoary is typically "24", but as mentioned, some hardware may not be able to use a value that high. It's pretty safe to change it to something like "16" just to test whether it solves your video problems or not. If this change does not solve anything, it is just as simple to change it back the way it was.
Once the value of DefaultDepth is changed, save the file, close all open windows on your desktop, and press CTRL-ALT-Backspace to restart X. Assuming all goes well, you will be prompted to log into GNOME again, hopefully at a higher resolution.
ATI - Refresh Rate & Resolution QuickFix
For those of you who run an ATI card with the fglrx driver, try running (in a Terminal):
sudo aticonfig
Follow the on-screen Instructions. This should fix the issue after restarting GDM. For Instance on a Setup with:
- 1 CRT Monitor
- No TV-Out
I would be running these commands:
sudo aticonfig --initial --input=/etc/X11/xorg.conf sudo aticonfig --resolution=1600x1200,1280x1024,1024x768 sudo aticonfig --force-monitor=crt1,notv
After you ran your aticonfig commands, you need to restart GDM, to restart GDM use the following command:
/etc/init.d/gdm restart
That should fix it for good! If you experience a different Resolution being used for GDM than your Desktop, you can scroll to the bottom of this Page to: "GDM uses a different Resolution than my Desktop" to fix the issue.
GDM looks right, but Gnome looks wrong
This problem occured on a vanilla installation of 5.10 that -- somewhat unnaturally -- was running under VirtualPC. Because this was not a normal device, I set the device to VESA and the resolution to 1024x768 in the configuration manager by:
sudo dpkg-reconfigure xserver-xorg
Naturally, make sure you configure these settings properly for your hardware.
These settings allowed GDM to present a normal login screen. However, completing login caused the display to fail.
Fix this by running the gconf-editor tool as a normal user and altering the screen settings within Gnome's XML configuration registry to equal the /etc/X11/xorg.conf settings:
startx gconf-editor
Browse the editor to /desktop/gnome/screen/default/%d where %d will probably be 0. Select this node and change the resolution to your resolution of choice, and make sure rate is something functional for your display device as well.
Exit the editor, and try logging in through GDM again.
GDM uses a different Resolution than my Desktop
This problem is easily solvable; to fix it do the following:
1) Make a Backup of your xorg.conf
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
2) Open xorg.conf
gksudo gedit /etc/X11/xorg.conf
3) Locate your Screen Entry
Section "Screen"
You will find multiple entries similar to:
SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" EndSubSection
The First Entry in the "Modes" Line is what GDM will use, so change it to something lower/higher (Please make sure you know that your monitor and Graphic Card BOTH support this Resolution). Save the file.
Close all running applications, restart GDM (/etc/init.d/gdm restart). Another way is just to logout your ubuntu session and press Ctrl-Alt-Backspace in the login screen. Look if everything went fine.
If the specified display resolution - say "1152x864" - differs from the used virtual screen resolution, add a matching line
Virtual 1152 864
in the Display subsection of xorg.conf.
If these changes did not help, you can always use:
sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf
to restore your system to the previous state.
You use the "nvidia" driver (Binary drivers)
It would seem that xorg cannot detect the possible resolutions when using the "nvidia" driver. For me, the only resolution I could use was my LCD's native resolution (1680x1050).
Here's how you fix this:
1) Make a backup of your /etc/X11/xorg.conf as shown in the previous examples
2) Open /etc/X11/xorg.conf as shown in the previous examples
3) Add the following line to your existing "Screen" section:
Option "UseEdidFreqs" "false"
If all else fails, try running the following command:
sudo nvidia-settings
Under Video Configuration set your resolution and refresh rate, click apply, then save X Config.
Well, it worked for me: Feisty, Intel i810 video & Widescreen LCD
Added by TonyS, 12 May 07
I impulsively bought a ViewSonic VG1930WM 19" widescreen LCD (at a distinctly newfangled 1440x900 native resolution) without considering the possible pain in making the low powered Intel i810 (82845G/GL) graphics in my old Compaq EVO desktop (and Feisty) talk to it...
It really was a hassle, but I've solved it and thought someone, somewhere, sometime might benefit from knowing how.
Just a wee note first that the "915resolution" solution described in the wiki above did NOT work. After fiddling for ages I got the mode installed and the GUI would come up OK, but the display was corrupt, with the left edge missing in action off the edge of the window, the top inch or so blank and the right hand side two inches peculiarly munted. Hopeless.
OK, here's what solved it for me...
If (like me) you've already broken X at this point and are staring at a blank screen you need to reboot (I had to use the power button hold-for-5-seconds trick), hit "escape" at the first mention of Grub on reboot, and choose to boot in Safe Mode. This boots to a command prompt. Scary for many for sure, but its not TOO painful from here, so stay brave.
First, install the newer Intel drivers. I'm not sure why these aren't installed by default, sure should be. I think you'll need Universe enabled:-
sudo apt-get install xserver-xorg-video-intel
It asks if you want to replace the old drivers. Yep, you sure do.
Then run the xserver video autodetect thingy:-
sudo dpkg-reconfigure xserver-xorg
Choose all the autodetected and default settings it offers, with these exceptions:
1. At one point it asks about allocating system memory to the video card, making specific mention of the the i810. I'm not sure if it made any difference, but I set this to 64000 KB.
2. When it lists the resolutions you want enabled MAKE SURE your monitors native solution (in my case 1440 x 900) is checked.
Now you must reboot. You can do this by typing (wait for it...) "reboot". Nice.
This time let it boot as normal. With any luck it'll pop back up beautifully. In my case it came up 1024x768, so I went to System | Preferences | Screen Resolution and chose 1440x900, which worked perfectly.
The End
So far, this is all of the possible solutions I've collected for this problem. If none of the above corrected your situation, consider posting your question in the [http://www.ubuntuforums.org Ubuntu Support Forum] or in the #ubuntu IRC support channel on the irc.freenode.net network.