Sunday 13 May 2007

Ubuntu: Enabling widescreen on a Vaio

Currently my ubuntu only displays on 1024x768 which is very frustrating.

This post is going to walk through my attempt to resolve the problem.

(I use a Sony Vaio with an intel graphics card. if you don't I have no idea whether this will work for you)

Open Applications>Accessories>Terminal and input the command "lspci" This lists the specs of my system and tells me I'm running an intel graphics card. If you have another card i.e. nvidia this probably wont work.

Input into the terminal: "sudo apt-get install 915resolution" this basically tells Ubuntu you are in charge of the system so run along and get me whatever the hell it is I need to make you work on my whole screen. Beatch.

Still in the terminal tell Ubuntu to list the resolutions it currently has available-with the following: "sudo 915resolution -l" again you are telling Ubuntu that you wear the trousers (with Sudo) and then asking it to list the resolutions it thinks it has available:

Intel 800/900 Series VBIOS Hack : version 0.5.2

Chipset: 915GM
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 36

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
ModeIntel 800/900 Series VBIOS Hack : version 0.5.2

Chipset: 915GM
BIOS: 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1920x1440, 32 bits/pixel
Mode 60 : 1280x770, 8 bits/pixel
Mode 61 : 1280x770, 16 bits/pixel
Mode 62 : 1280x770, 32 bits/pixel
Mode 63 : 1280x800, 8 bits/pixel
Mode 64 : 1280x800, 16 bits/pixel
Mode 65 : 1280x800, 32 bits/pixel


I don't understand any of it. Never the less I'm going to tell Ubuntu to replace mode 3c: Mode 3c : 1920x1440, 8 bits/pixel

With the resolution I want-1280 x 800. Why replace 3c? No idea, thats what the tutorial told me to do.

This is achieved with another 'whose the daddy' command in the terminal:
"sudo 915resolution 3c 1280 800"

With the change made we get Ubuntu to list the available resolutions again using:
"sudo 915resolution -l" and we should see that 3c has changed to meet our spec.

Now we need to test that the change has taken effect...this bit is tricky because you need to open a pseudo terminal (this is a black screen with text only input)

WARNING: When you open the pseudo terminal you wont be able to see this page or anything but the pseudo terminal so note the following instructions down on paper-the first time I tried I hadn't written down the instructions and had to just turn off my lap top : (

Open the pseudo terminal by pressing CTRL+ALT+F1

Input your username and password to login.

Kill all gdm (think this might mean graphic display modes or something) by typing:
"sudo killall gdm"
Then launch the gdm again by typing:
"sudo gdm"

Doing this should bring you out of the pseudo terminal and back to the regular desktop which will appear in Widescreen (if the above has worked). If your anything like me you'll then dance around for a bit and admire your newly honed 'programming' abilities.

At this point you will want to come back to this site to find out how to finish the job-(so save the page)

Now you just need to make sure that Ubuntu remembers this setting everytime you boot. Open the terminal again (applications>accessories>terminal)

"sudo gedit /etc/init.d/bootmisc.sh"

gedit is a way of telling ubuntu that frankly you don't give a monkeys whether or not it thinks you should be changing this file, you own the computer and you will do what you please.

Anyway once this has run you should get a window of complicated text that seems to dictate what ubuntu does when it boots.

First of all save a back up copy to your desktop just in case you break it. Then close and repeat the Gedit command above. Scroll down until you reach the section:

"PATH=/usr/sbin:/usr/bin:/sbin:/bin
[ "$DELAYLOGIN" ] || DELAYLOGIN=yes
. /lib/init/vars.sh"

and input the line:

"915resolution 3c 1280 800"

Note if you cahnged 5c or 38 then obviously use that instead of 3c.

The script should now read something like:

#!/bin/sh
### BEGIN INIT INFO
# Provides: bootmisc
# Required-Start: $local_fs hostname $remote_fs
# Required-Stop: $local_fs
# Default-Start: S
# Default-Stop:
# Short-Description: Miscellaneous things to be done during bootup.
# Description:
### END INIT INFO

PATH=/usr/sbin:/usr/bin:/sbin:/bin
[ "$DELAYLOGIN" ] || DELAYLOGIN=yes
. /lib/init/vars.sh

915resolution 3c 1280 800

do_start () {
#
# If login delaying is enabled then create the flag file
# which prevents logins before startup is complete
#
case "$DELAYLOGIN"


Save and close. Then restart Ubuntu and hopefully everything should be working.

If this doesn't work. Try the Ubuntu support irc channel, browse the web a bit more, go back to windows or buy a mac. Sorry I can't help you.

I used the following tutorial to help me solve this problem (though it was written for someone with marginally higher Linux IQ than mine).

Thanks to everyone who helped me crack this.

1 comment:

boatyard said...

Do you know what you are???...

You are da Man!!!!

Cheers buddy, after many sleepless nights I found your Ubuntu work around and now I'm in widescreen heaven!