Writings

Papers & Presentations

Jump to Papers & Presentations

Class Notes

Jump to Classroom Notes

HowTos

Back to HowTos

About the Author

Samer is currently working at Solidere Int'l...

read more

Configuring Ubuntu Feisty Fawn on a Toshiba 2410 Laptop

Let me first start by saying what a great distro Feisty Fawn is. It took some time, but I definitely see Ubuntu as a serious contender for desktop Linux.

That said let me give a breakdown of the platform I'm installing Ubuntu Feisty Fawn on and explain what worked and what didn't and how the little quirks were fixed (most of them at least).

Hardware Platform

Table of Contents

1.Installing Feisty Fawn

a- Configuring the WG511T Wireless Card

b- Configuring XGL with NVidia GeForce4 420 Go

2. Conclusions


Installing Feisty Fawn

Considering Debian's ancient installer on which Ubuntu was originally based on this release's installation is a far cry from its elder brother. What I liked most was that you could boot up and see Ubuntu in action before deciding to install it. The installation is just one mouse click away and proceeds with little intervention from the user. It can also migrate profiles from other distros if any were previously installed. However my installation was from scratch so that particular feature was not needed.

The installation took around 30 minutes give or take some and proceeded without a hitch. On reboot all went well GRUB was installed and configured and the X windows system came up without a hitch. All my Hardware was correctly detected and most were correctly configured. I say most because some cried out for tweaking or major modification to work correctly.

So installation was complete and I was savoring my new desktop looking forward to install the NVidia drovers to get my XGL enabled Desktop up and running and ...

Configuring the WG511T Wireless Card

First bump in the road. Although my NetGear WG511T was correctly detected and the drivers (in my case the restricted drivers) were correctly installed, it wouldn't detect my Netgear WGT624 wireless router!
To explain my wireless router is configured with WPA security and ESSID Broadcast is turned off. I knew the card was working because my card detected other wireless networks around my area. And although I knew I could force configure the card I really wished and wanted to have it work straight out of the box without any tinkering. I mean I'm a pretty seasoned Linux user and know my way around, but what of some new guy who's just installed the system for the first time, he'd probably run back to the comforts of MS Windows' driver and H/W detection at the first hitch he gets with his H/W.

After some googling and some plain common sense, it turns out that the WG511T driver for Linux does not especially like Wireless APs that don't broadcast their ESSID playing around with iwpriv and iwconfig allowed me to connect to my router eventually but it again that's frustrating given that this should taken care of without any user intervention. I mean I like tinkering as much as the next guy but sometimes you just want stuff to work without having to scratch your head for hours.
Mind you this not a criticism against Ubuntu its a general critique of Linux in general. Now I understand that some vendors do not open source their drivers and makes difficult on the community to port them and I guess more work is required to breach this gap.

Anyway, easy way out was to enable ESSID broadcast on my router and presto it worked like a charm. However I didn't have the same luxury at University where ESSID are not broadcast. And since I cant go in and change them I had to use the following trick to get to get my card to establish a session with the APs.

First you should make sure that the PCMCIA Card is not plugged in at boot up. Next once boot up is complete and your logged into our account, plug in your Wireless PCMCIA card, open a terminal window and launch the following command as root, or using sudo if your user is in the sudoers list.

$ sudo iwconfig ath0 essid <ESSID NAME>

Replace <ESSID NAME> with the ESSID of the network you want to connect to.

After that simply click on the Network Manager Applet and select "Connect to Other Wireless Network" and fill in the required information. And you should be up and running!

Configuring XGL with NVidia GeForce4 420 Go

Alright so I'm done with setting up my network connection at home and am looking forward to download the nvidia drivers to get XGL up and running. First off when I tried to activate my NVidia drivers Ubuntu correctly prompted me to download the latest drivers from its online repositories whicH I did. After that it was simply a matter of enabling 3D Desktop support, and restart X, simple enough?

Hardly, as soon as I restarted X I would get a black screen with only the screens backlight on. The sound works everything else works but no picture. So although the driver was correctly installed and working it seems some tweaks were missing in my xorg.conf to get the driver to play nice with my GeForce4 420 Go.

Suffice to say that it took me a while to sift through the forums and the suggestions before I found the winning combination that worked.

Below are the entries in my xorg.conf file on my first trial.

Section "Device"
  Identifier "nVidia Corporation NV17 [GeForce4 420 Go]"
  Driver "nvidia"
  Busid "PCI:1:0:0"
  Option "AddARGBVisuals" "True"
  Option "AddARGBGLXVisuals" "True"
  Option "NoLogo" "True"
  Option "UseDisplayDevice" "DFP"
  Option "UseEdidDpi" "FALSE"
  Option "ModeValidation" "NoEdidDFPMaxSizeCheck, NoVesaModes"
 Option "IgnoreDisplayDevice" "CRT"
 Option "ExactModeTimingsDVI" "True"
EndSection

Lots of Voodoo commands in there for a detailed explanation of each entry refer to the Nvidia XFree86 Appendices. This worked fine and upon restarting GDM I got a picture although not what I expected.

Explanation: My display is configured at 1024x768 24 bit colors Native resolution. And for some odd reason the driver would not go beyond 800x600. I would just get the display in the middle of the screen and thick black border all around.

The solution was as follows (and it certainly was not pretty):

First off is to generate an EDID binary file from the nvidia-settings utility. In the navigation tree on the left, go to the GPU section and select the DFP-0 device. In the right pane you'll see a button labeled "Acquire EDID" click on it save the nvidia-driver settings to a binary EDID file on your system. We'll to edit that and force X to use it. Save the file anywhere you like.

Next use a Hex editor (Yes you heard me correctly a Hex Editor) GHex did just fine and open the saved EDID file. Once the file is open, click on Edit -> Goto Byte, and jump to offset 56. The original value should be C9, change it to 00.
Then jump to byte 58 and change the value from 31 to 41. Basically these changes force the driver to change the screen resolution to 1024x768.
Save the file and now we must tell X to read its configuration from that EDID file this is done by adding the option "CustomEDID" to your xorg.conf file. The final configuration of the Device section in xorg.conf is listed below:

Section "Device"
  Identifier "nVidia Corporation NV17 [GeForce4 420 Go]"
  Driver "nvidia"
  Busid "PCI:1:0:0"
  Option "AddARGBVisuals" "True"
  Option "AddARGBGLXVisuals" "True"
  Option "NoLogo" "True"
  Option "UseDisplayDevice" "DFP"
  Option "UseEdidDpi" "FALSE"
  Option "ModeValidation" "NoEdidDFPMaxSizeCheck, NoVesaModes"
  Option "IgnoreDisplayDevice" "CRT"
  Option "ExactModeTimingsDVI" "True"
  Option "CustomEDID" "DFP-0:/home/pandora/samuraii/edid.bin"
EndSection

Restart GDM and welcome to fullscreen XGL Heaven! =)

Conclusion

All in all I must say that on newer systems Ubuntu is a breeze to install and most of the features work straight of the box. Even on my aging Toshiba I must admit that most of the devices worked straight out the box as well, and compared to a few months back I would have probably spent more time trying to get things to work. Final verdict - Excellent job Ubuntu hats off for a an excellent and solid distro! What are you waiting for download and install!