Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

freshnewpage blog

« Hello!

NVIDIA GeForce4 420 Go on Ubuntu 8.04 (Hardy Heron)


Preamble

This is a guide to installing NVIDIA drivers for a GeForce4 420 Go graphics card on Ubuntu. This guide was
tested on a Toshiba Satellite Pro 2100 running Ubuntu 8.04 but should work for other laptops with GeForce4
420 Go graphics cards and other versions of Ubuntu.

Introduction

On a laptop with a GeForce4 420 Go, Ubuntu will recognise there is an NVIDIA card and offer to install the
restricted driver. Installing this driver will cause two problems.

1. On rebooting the screen will be blank

This is because the driver is causing the graphics card to output on the VGA port rather than to the laptop
screen.

2. The correct resolution is not available once driver is working.

This is because the EDID data being supplied to the driver is not correct.

Requirements

laptop with a GeForce4 420 Go graphics card.


Ubuntu (assumed to be a clean install)
the correct maximum resolution of your display (e.g. 1024×768)

Installation

The first stage is to check the correct repositories are enabled.

Go to: “System -> Administration -> Software Sources”


Under the “Ubuntu Software” tab ensure the first three boxes are ticked (main, universe and restricted).

Next the restricted NVIDIA driver must be enabled.

Go to: “System -> Administration -> Hardware Drivers”


Tick the box next to “NVIDIA accelerated graphics driver”.
Close the window and confirm the changes.

You should be informed that a restart of the computer is required before the changes will take effect. Do this
now. Do not be alarmed if the computer has a blank screen after the restart; this is expected.

Now we will change the “xorg.conf” file to tell the driver to output to the laptop screen rather than the VGA
port.

Press “Ctrl + Alt + F1″ to open a terminal.


Login
As root, open “/etc/X11/xorg.conf” for editing.
sudo vim /etc/X11/xorg.conf
(you can use the editor you are most comfortable with in place of “vim” e.g. nano)
Find the “Device” section (look for the line Section "Device") and insert as the last line of that section
(before the EndSection)
Option "UseDisplayDevice" "DFP-0"
Now save and close the file.
Restart the X server by typing

$ sudo /etc/init.d/gdm restart

You should now see the login window but it will likely be at the wrong resolution. First check that the desired
resolution really is not available. For example on the Toshiba Laptop the screen resolution should be 1024×768.

Go to: “System -> Preferences -> Screen Resolution” and see if the correct resolution is available.

If the correct resolution is available then select it and everything should now be working. If the correct
resolution is not available then you have encountered the EDID problem. This requires some additional
packages to fix. First we must install “nvidia-settings, ghex and read-edid”

Open a terminal “Applications -> Accessories -> Terminal”


Run:

$ sudo apt-get install nvidia-settings ghex read-edid

We now need to obtain the EDID data.

Go to: “System -> Administration -> NVIDIA X Server Setting”


From the left hand list choose: “DFP-0 - (Nvidia Default Flat Panel)”
Click the “Aquire EDID” button.
Save “edid.bin” to the desktop. (click “Desktop” then click “OK”)
Close “NVIDIA X Server Settings” window.

Now we need to check the EDID data.

In the terminal change directory to the Desktop (or where the EDID data was saved to).

$ cd ~/Desktop

Check the resolution mode in the EDID data.

$ parse-edid edid.bin | grep "Mode "

The output should look something like this:


parse-edid: parse-edid version 1.4.1
parse-edid: EDID checksum passed.
Mode "969x768" # vfreq 60.004Hz, hfreq 48.363kHz

Here you can see that the EDID data has an incorrect resolution of “969×768″. The resolution is stored in the
EDID file as a hexadecimal value. We need to correct the value. To do this we have to edit “ebid.bin” with a
hexadecimal editor. We will keep the terminal window open while we do this.

Go to: “Applications -> Programming -> Hex Editor”


Click: “File -> Open -> Desktop -> edid.bin -> Open”

You should now be looking at the “ebid.bin” in hexadecimal format. The data is represented as pairs of
hexadecimal characters. Each pair correspodes to one byte. Notice that there are 17 bytes in a row. The bytes
are indexed from zero so the last byte on the first line is the sixteenth byte.

We need to change the horizontal resolution. This is slightly confusingly split across two bytes. When
converted to a hexadecimal value, the first digit of the value is stored in the first charater of the 58th byte and
the last two digits of the value are stored in the 56th byte. In our example the resolution in the EDID file is 969.
We can use the calculator to convert this to hexadecimal.

Go to: “Applications -> Accessories -> Calculator -> View -> Scientific”
Click “Dec” to put the calculator into decimal mode.
Then enter the number “969″
Click “Hex” to convert the number to hexadecimal.

You should get the answer 3C9 (hex). The 56th and 58th bytes are show on the forth line of the hex editor.
This is the forth line from my file with the releveant characters in bold:

“01 01 01 64 19 C9 77 31 00 26 30 4F 88 36 00 42 FF ”

Notice how the value is written with the last two digits then the first digit.

In my example the desired resolution is 1024. Converted to hexadecimal this is 400 (hex). Hence the 56th byte
of my EDID file should be “00″ and the first character of the 58th byte should be “4″. The new line in the file
is:

“01 01 01 64 19 00 77 41 00 26 30 4F 88 36 00 42 FF ”

Save the file and re-run parse-edid. (You can go to the terminal and press the up arrow and enter). The output
should now look like this:
parse-edid: parse-edid version 1.4.1
parse-edid: EDID checksum failed - data is corrupt. Continuing anyway.
Mode "1024x768" # vfreq 57.645Hz, hfreq 46.462kHz

Don’t worry about the fact the checksum failed. This is not important. We now need to copy the “edid.bin” in
to the X configuration directory and set it to override the real EDID data.

Copy the “edid.bin” to /etc/X11/

$ sudo cp edid.bin /etc/X11/

Edit “xorg.conf” to override EDID.

$ vim /etc/X11/xorg.conf

In the “Screen” section, insert the line:

Option "CustomEDID" "DFP-0:/etc/X11/edid.bin"

Save the file and restart the computer.

The computer should now start at the correct resolution with the NVIDIA driver enabled.

References

The following references were used when compiling this guide.

BinaryDriverHowto/Nvidia
GeForce4 420 Go graphics card installation in Ubuntu 7.10 (Gutsy)
Wikipedia: Extended display indentification data
This entry was posted on Saturday, April 26th, 2008 at 03:57 pm and is filed under Ubuntu, Hardware. You can follow any
responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

22 Responses to “NVIDIA GeForce4 420 Go on Ubuntu 8.04 (Hardy Heron)”

1. fabb Says:
May 13th, 2008 at 06:08 pm

Wonderful, thank you! I remember doing a similar thing some years ago with RedHat Linux 7.3 to get
rid of this black devil’s stripe. But I didn’t need to hex-edid then. So maybe there’s an even easier
solution?

One concerning thing: everything works fine when I follow your steps. But at “Screen Resolution”
settings, I can choose between 50Hz and 51Hz??? And both work fine… Should be 60Hz… any ideas?

2. fabb Says:
May 16th, 2008 at 10:26 am

I found the page. It’s a bit outdated, but maybe it still works.
http://www.thorstenhaas.de/toshiba2410/
Just some additional lines in XF86Config (which should be xorg.conf now).

3. Daniel Says:
May 17th, 2008 at 10:25 pm

I admit that the method presented here is a bit of a hack. If you manage to work out a simpler solution
then thats great. Please post about how you found your solution.

If I’m honest I had not though about the refresh rate. After checking my laptop, I found that the options I
had were 50Hz and 54Hz. Mine was on 50 so I upped it to 54. You seem to think that it should be on
60Hz though. Personally I am not too concerned about fixing this (if indeed it is possible) as the laptop
works. My goal was to find the simplest solution that made the laptop usable, so I’m not going to delve to
far in to solving this right now. “If it ain’t broke don’t fix it” as they say., however, if you do find a
solution though please say.

I’m very glad this tutorial was of some use to you.

4. Elisabeth Says:
May 30th, 2008 at 09:27 pm

Thank you ever so much for this HowTo, i’ve been trying to get my old toshiba to show me 3D
goodness for 1 year now, but never managed!! You guide worked flawless, plus i learned something
new…. :-*

5. Indelible Bonobo Says:


June 20th, 2008 at 01:07 am

I guess the easiest option would be to download a ready-made edid.bin, or simply download one from
somewhere. I found one a while back, but the beauty of the guide is that you’re not dependent on google
:)

6. Andrey Says:
June 29th, 2008 at 09:55 pm

Hi Daniel! Thanks so much for the how-to, it worked great! Funny thing though, the native resolution of
my Toshiba was 1600*1200, and then it got reduced to… I don’t know… 800*600 or something. Well,
that was to be expected. But when I parsed the EDID before tweaking it with the hex editor it showed a
resolution of 1588*1200. Apparently, it was the reason why the driver limited me to 800*600: it had a
problem with 1588 in resolution settings. After I reset the edid.bin to 1600*1200 everything worked just
fine.

Thanks again!

7. Abe Says:
August 22nd, 2008 at 09:20 am

Yeah, works fine on my TE2100 too. I already gave it up fixing the problem with SuSE 11.0 but now
I’m back in the game ;)

8. Sadnem Says:
August 25th, 2008 at 03:25 am

yeah it works very well with ubuntu,kubuntu,and linux mint thanks men!

9. Struan Robertson Says:


January 5th, 2009 at 10:38 am

Thanks a bunch for this, it sorted things out beautifully for myToshiba Satellite GeForce 440 Go setup.

10. Jason Says:


January 18th, 2009 at 03:59 am

You qualify for legendary status in my universe. I’ve been going in circles researching and reinstalling
for months. I love my TE2100 but didn’t want to go back to WinXP just for dual display. Kudos to you
man.

11. Pablo Says:


February 24th, 2009 at 07:12 am

I’m jumping of happiness!!

As many of the people here, I struggled for a long time with the nvidia driver in Linux (first Debian and
now Ubuntu). My laptop has a non standard display size (1400×1050). After following your steps, I
found out the the EDID info X was getting out of my display was 1372×1050. As a result I had a
annoying black bar at the right side of my screen.

Now is perfect, the fonts looks amazing! Thanks a lot.

(Toshiba Satellite, GeForce4 440 Go, Ubuntu 8.10)

12. Daren Says:


April 27th, 2009 at 10:17 pm

Hi
I was just about to give up on Linux until I found this site. Brilliant!
Well laid out and easy to follow.

Many thanks

Daren

13. oisa Says:


May 25th, 2009 at 12:32 pm

thankyou so much, drove me crazy for a year. worrked great on ubuntu 9.04.
thankyou so much. seriously.

14. Rob Says:


June 5th, 2009 at 10:14 am

You are my hero!!! Ditto that on 904. Thank you SO much for your truly excellent instructions.

LOL. feeling exactly the same way olsa and many others do. Only been driving me crazy for the
evening, but it *is* 3am. Now I can sleep.

seriously. :oD

peace!

15. Blake Says:


June 14th, 2009 at 09:43 am

I have the same problem with my Toshiba Satellite TE2100, however the steps above didn’t fix the
problem. If i use the custom edid, the screen goes black and flickers, indicating what i think is the wrong
refresh rate. I think i need to alter the EDID even more for it to go back to normal… extremely
frustrating, have reported the bug on launchpad.net but since theyre not the nvidia developers i ought to
take it to nvidia instead.

16. Blake Says:


June 16th, 2009 at 09:24 am

I’ve managed to get it to work now, I used another person’s hacked EDID which had the correct values
(whatever they were, as i know i did the 1024×768 properly).

I uploaded it to launchpad.net:

https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-96/+bug/348905

17. zaky Says:


July 2nd, 2009 at 01:02 pm

THANK YOUTHANK YOUTHANK YOUTHANK YOUTHANK YOUTHANK YOUTHANK


YOUTHANK YOU

18. Michael Says:


September 27th, 2009 at 02:43 am

Dude, thanks. I tried searching the ends of the Internet for an answer to that with my Toshiba S-Pro. I
assume everyone is stuck with the v96 driver on Ubuntu?

19. vera Says:


September 27th, 2009 at 04:56 pm

just wanted to say thanks for the info now to start all this is what scares me im not a tech just a common
user self taught. hopefully i can do this without wiping out my whole system. i will let u know if it works
for me as well when i get up the nerve

20. Neil Says:


October 30th, 2009 at 04:56 am

Thank you SO much. This is well hardcore but the way you explained it I could manage and now my
Toshiba TE2100 works with Ubuntu 9.10
21. Joachim Says:
December 3rd, 2009 at 01:18 am

Many thanks for these information. Now I’m able to use the right NVIDIA-driver with the whole
function; my system: Ubuntu 9.10
But one little problem: after each restart the logon-screen shows the resolution 1024×768; after the logon
the system change to 800×600. In the NVIDIA-settings I’m able to choose and apply 1024×768 again.
How can I save the resolution in the XORG.CONF?
Thanks for any help

22. Earl of Images Says:


December 27th, 2009 at 03:06 pm

Tank you so much!!! I’m from Germany and I started with this
(http://www.r3uk.com/index.php/home/36-useful-information/14-geforce4-420-go-graphics-card-
installation-in-ubuntu-710-gutsy) tutorial and when I had problems with the hex editor i found yours and
my problem was solved!!!!
This tutorial is great!

Leave a Reply

Name (required)

Mail (will not be published) (required)

Website

Please add' 4 and 0

Submit Comment

Show some love for the fair and precious Wordpress Spam-be-gone plugin.

freshnewpage blog is proudly powered by WordPress


Entries (RSS) and Comments (RSS).

You might also like