Native Resolution Support Ubuntu?
I had all sorts of problems trying to get my Ubuntu 10.04 Lucid installation to use the correct resolution on my widescreen monitor. My native resolution didn't even show up in the display settings, and my monitor couldn't be detected. It was shown as unknown. After following countless guides, I couldn't get it to detect my monitor or use its native resolution. I installed intel drivers, but after installing them, they were not being used by Xorg. I think it's because my system uses Sandy Bridge hardware, and as such, there are a few bugs in Ubuntu 10.04. After spending 8+ hours, I got it to work.
This guide should work for motherboards using integrated intel video with the H67 chipset (sandy bridge)
My system specs just in case it is hardware related:
Code:
Intel i7 2600k CPU
ZOTAC H67ITX-C-E LGA 1155 Intel H67 Mini ITX Intel Motherboard
8GB of DDR3
1TB Hard Drive
Blu-ray Burner
Integrated Intel Graphics
Quick Note on Kernel Version
Note, you may need to download and use the latest Kernel for Ubuntu 10.04. You can do this by listing the newest kernels available:
Code:
apt-cache search linux-image
To install the latest, use the following:
Code:
sudo apt-get install linux-image-[LATEST] linux-headers-[LATEST]
#Where LATEST = the most recent kernel version listed by using the above command.
Guide for Installing Video Drivers and Setting Resolution (Ubuntu 10.04)
Add the following PPA to the system's software sources by first loading the list:
Code:
sudo nano /etc/apt/sources.list
Then, add the following lines to the bottom of the file:
Code:
deb http://ppa.launchpad.net/glasen/intel-driver/ubuntu lucid main
deb-src http://ppa.launchpad.net/glasen/intel-driver/ubuntu lucid main
Save the file and exit. Now run:
Code:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 066ADE1D
sudo apt-get update
sudo apt-get upgrade
Right, the intel drivers have been installed, but the vesa drivers are still in use.
Before we restart your computer, let's get some information about the resolution mode we'll create later by running this command:
Code:
cvt [width] [height]
# where width is your desired screen resolution width
# where height is your desired screen resolution height.
You should get a line that looks similar to:
Code:
eric@i7ubuserver:~$ cvt 1440 900
# 1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
Modeline "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
All LCD monitors use a refresh rate of 60Hz by default. However, we need the exact refresh rate for later... write down the resolution and the refresh rate (in my case it was 1440x900_60.00).
[Following SECTION Assumes You Are Logged In as Root in Recovery Mode]
Restart your system. Boot up into recovery mode by getting the boot menu to show by holding down the Shift key. Choose the kernel with (recovery) in parenthesis. Once the "terminal" loads, you'll be logged in as root. Now generate the Xorg.conf file by:
Code:
sudo Xorg -configure
The xorg file is created and located here:
/root/xorg.conf.new
Edit the config:
Code:
sudo nano /root/xorg.conf.new
By default, it should look similar to this:
Code:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection
Section "Module"
Load "dri2"
Load "dbe"
Load "record"
Load "extmod"
Load "glx"
Load "dri"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "AccelMethod" # [<str>]
#Option "DRI" # [<bool>]
#Option "ColorKey" # <i>
#Option "VideoKey" # <i>
#Option "FallbackDebug" # [<bool>]
#Option "Tiling" # [<bool>]
#Option "Shadow" # [<bool>]
#Option "SwapbuffersWait" # [<bool>]
#Option "XvMC" # [<bool>]
#Option "XvPreferOverlay" # [<bool>]
#Option "DebugFlushBatches" # [<bool>]
#Option "DebugFlushCaches" # [<bool>]
#Option "DebugWait" # [<bool>]
#Option "HotPlug" # [<bool>]
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Sandy Bridge Integrated Graphics Controller"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Make sure driver is set to intel in this section
Code:
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Sandy Bridge Integrated Graphics Controller"
BusID "PCI:0:2:0"
OK, that's done, but now we need to specify the resolutions that your monitor supports for each mode.
Add your monitor's supported resolutions to the xorg.conf file. Make sure you use the resolution settings you received earlier when you ran the cvt command. It should look like this:
Code:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
EndSection
As you can see, I added my resolution to the Modes line for each subsection. You can add as many as you want (assuming your monitor will support that resolution). Just separate them with a space as shown above. All resolutions should be specified with the refresh rate appended to the end of the resolution by using "_" followed by the refresh rate you received from the cvt command. If you omit the refresh rate, it will display a black screen and not display properly when we're done configuring a few more things.
My entire xorg config looks like this:
Code:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "built-ins"
EndSection
Section "Module"
Load "dri2"
Load "dbe"
Load "record"
Load "extmod"
Load "glx"
Load "dri"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "AccelMethod" # [<str>]
#Option "DRI" # [<bool>]
#Option "ColorKey" # <i>
#Option "VideoKey" # <i>
#Option "FallbackDebug" # [<bool>]
#Option "Tiling" # [<bool>]
#Option "Shadow" # [<bool>]
#Option "SwapbuffersWait" # [<bool>]
#Option "XvMC" # [<bool>]
#Option "XvPreferOverlay" # [<bool>]
#Option "DebugFlushBatches" # [<bool>]
#Option "DebugFlushCaches" # [<bool>]
#Option "DebugWait" # [<bool>]
#Option "HotPlug" # [<bool>]
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Sandy Bridge Integrated Graphics Controller"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1440x900_60.00" "1280x1024_60.00" "1024x768_60.00" "800x600_60.00"
EndSubSection
EndSection
Save your xorg file and quit nano.
Before we move the xorg file into the proper directory, we need to make a few more changes to different files.
Use this command to set the KMS mode for i915 (intel video only).
Code:
echo options i915 modeset=1 | sudo tee /etc/modprobe.d/i915-kms.conf
Then do:
Code:
update-initramfs -u
Next, we're going to force the grub boot loader to use the i915 modeset by first editing the default/grub.conf file:
Code:
nano /etc/default/grub
Find the line where it says:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
And replace it with:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.modeset=1"
Now run the following command:
We did the above to force the i915.modeset because if we don't, our Xorg will not start properly and complain with a message similar to this when booting (which I received several times):
Code:
[ 719.236] (--) using VT number 8
[ 719.386] (EE) No devices detected.
[ 719.386]
Fatal server error:
[ 719.386] no screens found
[ 719.386]
Please consult the The X.Org Foundation support
at http://wiki.x.org
Let's copy the xorg file into the proper directory:
Code:
cp /root/xorg.conf.new /etc/X11/xorg.conf
Restart your computer by using Control-Alt-Delete.
Your computer should boot into Linux and use your monitor's native resolution. Your monitor should also be detected. If you are redirected to a terminal, rename the xorg file and restart to allow Ubuntu to choose the best settings, or edit the xorg.conf again using nano. Make changes and reboot. If you have any problems, I'd be happy to try and assist. I hope this guide helps. Please comment and I should be around to edit
It's a frustrating process, and I can't believe it's so hard to configure, change resolutions, and use the proper drivers in linux for the display. Windows gets it right in about 2 seconds.... (still a linux fanboy, but come on!)
References:
http://www.freebsd.org/doc/handbook/x-config.html
http://ubuntu-tutorials.com/2010/05/...up-workaround/
https://wiki.ubuntu.com/X/KernelModeSetting
https://launchpad.net/~glasen/+archive/intel-driver
http://www.howtoforge.com/how-to-ins....04-lucid-lynx
Bookmarks