How to get widescreen resolution in Linux?
By root
root@linuxmint.com
June 22, 2006
Problem
If you own a laptop with widescreen resolution such as 1280x768, 1280x800 or with a high resolution such as 1400x1050, you might have encountered that problem. XWindow shows up in 1024x768, and it doesn't fill the entire width of the screen. If your laptop's graphic card is an Intel 800 or 900 series (Intel 845G, 855G, 865G, 915G, 915GM, and 945G), there is a very easy solution to fix this.
General Solution
The solutions presented in this article are known to work on the following laptops:
The widescreen resolution you're trying to use is not supported by the video
bios of your graphic card. In order to fix this, the modes have to be changed in
the vbios. There are two programs, freely available which do that in a very nice
way: 855resolution (which is developed by Alain Poirier) and 915resolution (which
is based on 855resolution).
Whatever your distribution is, you should be able to download 855resolution 0.4
from http://perso.orange.fr/apoirier/ , extract it in a folder, compile and install
it:
tar zxvf 855resolution-0.4.tgz
cd 855resolution
make
And as root..
make install
Once installed you can use 855resolution to list the supported resolutions
by typing:
855resolution -l
This should show you something like this:
# 855resolution -l
Chipset: 855GM
VBIOS type: 1
BIOS Version: 3240
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
Pick a mode you don't need (for instance 5a) and replace its resolution with the
one you want. For instance, if you want to use 1280x800 (make sure your /etc/X11/xorg.conf
is also using 1280x800 by the way), edit the VBIOS and make it support your resolution
by typing:
# 855resolution 5a 1280
800
Run 855resolution -l to make sure this worked and check that your resolution is
in the list:
# 855resolution -l
Chipset: 855GM
VBIOS type: 1
BIOS Version: 3240
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 : 1400x1050, 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 : 1400x1050, 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 : 1280x800, 32 bits/pixel
Mode 5c : 1400x1050, 32
bits/pixel
Once this is done. Your VBIOS supports the new resolution and you just have to restart
X in order for it to be displayed properly. Simply press the keys CTRL+ALT+BACKSPACE
to restart X.
Of course, the change made to the VBIOS of your graphic card is not persistent,
so if you reboot your computer you'll have to do it again. The solution to this
is to write a little script file which will call 855resolution, and to make a link
from the init scripts to your script so that it is called at startup.
Startup scripts can be different from one distribution to another. In general there
are stored in /etc/init.d/
Create the file "widescreen" in /etc/init.d and make it executable:
touch /etc/init.d/widescreen
chmod a+rx /etc/init.d/widescreen
Then edit the file and write the following into it:
/usr/sbin/855resolution
5a 1280 800
Of course, make sure /usr/sbin is the right path to your installed 855resolution,
and that 5a and 1280x800 are the options you want to give to it.
Then find your distribution's default run level. This information is stored in /etc/inittab.
There is a line in this file which specify which runlevel is the default one. For
instance, in Ubuntu, the following line specifies that the default runlevel is 2:
id:2:initdefault
There is a directory called /etc/rcX.d for each runlevel where X is the runlevel
number. For instance, in Ubuntu (runlevel 2), the default scripts that are run at
startup are stored in /etc/rc2.d.
Within that directory, you'll find links which point to the actual scripts in /etc/init.d.
ls -l /etc/rc2.d
You'll just have to create a link in there to your /etc/init.d/widescreen script
for it to be called at startup. Make sure you prefix your link with a number that
is smaller than the number used in the prefix for the GDM or KDM links. Distributions
usually run the scripts in order according to their name... so these numbers play
a role in the order in which they are run.
For instance, in Ubuntu, you would create a link called /etc/rc2.d/S12widescreen
which would point to /etc/init.d/widescreen and you would make sure they are both
executable.
ln -s /etc/init.d/widescreen
/etc/rc2.d/S12widescreen
chmod a+rx /etc/init.d/widescreen
chmod a+rx /etc/rc2.d/S12widescreen
Don't hesitate to ask question if this doesn't work for you, or to use the forum
to get answers.
Solution for Ubuntu 6.06
In Ubuntu 6.06 there is package for 915resolution in the universe repositories.
You simply have to install it from the package manager and to reboot (for some people
it works just by restarting X). No further configuration is needed and you don't
have to edit your init scripts. Everything should work from there.
sudo aptitude install 915resolution
Solution for Fedora Core 5
In Fedora Core 5 there is a package for 915resolution in the LIVNA repository. Install it:sudo yum install 855resolution
At the end of your /etc/rc.local file add the line (change the mode and the resolution to suit your needs):
/usr/sbin/855resolution 5a 1280 800
Solution for SUSE 10.1
In SUSE 10.1, these cards are managed and recognized by default. Your widescreen resolution should work out of the box.
Solution for FreeBSD
Check the following link: http://dhoomketu.net.in/node/6 (thanks to शंतन&#).
Questions and Feedback
If this doesn't work for you, please use the forum and specify which graphic card and Linux distribution you are using. If it does but your laptop model or distribution is not mentioned here, write a comment to this article so that we can update its content thanks to your feedback.
Copyright 2006 http://linuxmint.com/