Home page of this blog

Tuesday, November 24, 2009

Using vesa driver in Fedora 12 live CD instead of nouveau

Fedora 12 includes a reverse engineered nvidia driver called nouveau which did not work properly with my nvidia card (9800 GT).



I could not login properly, nor see how Fedora looked/worked.  Somehow I wanted to try Fedora 12. I tried blacklisting nouveau and forcing fedora use vesa to see how it looks.  It worked and,



Here is a textual summary of what I tried which I hope may help someone


When I booted from live USB, I was greeted by "Automatic boot in 10 seconds"

I pressed tab. This brought me to Boot menu. I pressed tab again and added the following


nouveau.blacklist=1


(and pressed return key after appending above to boot)

After some time, nouveau failed to load as expected as there was no param called blacklist in nouveau (we can give any xyz in place of blacklist to force the module not to load into the kernel!, see the last screenshot)

I was greeted by a blank screen. Great. I am not scared by that

I gave Ctrl + Alt + F2 and gave root as the user name. It logged in without prompting a password. I brought down failed X-Server by issuing

init 3


(init 3 brings down runlevel to 3 without graphical UI)

I confirmed if nouveau was loaded by mistake by lsmod and grep as follows

lsmod | grep nouveau

(if loaded, nouveau wont get unloaded easily, no rmmod will work on it, it is tightly bound, so is this prevention mechanism to not allow nouveau from loading)

I used Xorg to configure my Xorg Server as follows

Xorg -configure

which created a new file xorg.conf.new under current directory

and here is how I edited my file to substitue vesa in place of nouveau using sed editor

sed -i s/nouveau/vesa/g xorg.conf.new


and copied the modified file into /etc/X11/ folder using cp command

cp xorg.conf.new /etc/X11/xorg.conf

To start and test X-server I used

startx 


and I was inside gnome with vesa driver running (which of course did not crash or corrupt my display like nouveau driver, alternative solution is using init 5 and logging in as liveuser, which is a hit and a miss, but startx works always)
In case X-Server flickers due to misconfiguration, it is again easy to fix, by giving Ctrl + Alt + F3 or Ctrl + Alt + F4 ... and then stopping X-Server by init 3

Fedora 12 rocks, even when running vesa driver, it is fast fast ....


Some Fedora 12  screenshots running with vesa driver (last screenshot shows dmesg output, showing how Fedora got confused while trying to load nouveau as I appended blacklist param to boot, which I used to my advantage to stop nouveau from loading, any loadable module can be stopped from loading into kernel using this technique)


 






Notes:
1. vesa is a minimal X driver which should work in any situation.
2. Xorg -configure is the command to configure Xorg manually in Fedora
3. lsmod lists the loaded modules and |grep nouveau lists a line if there is a match (grep stands for regular expression)
4. sed -i  edits file in place and s///g searches a pattern in the first // and replaces with pattern from second //
5. init 3 to go into runlevel 3 (and fedora supports classic runlevels unlike ubuntu where restarting Xorg is a bit different http://duopetalflower.blogspot.com/2009/10/new-way-to-stop-or-start-gdmx-in-ubuntu.html )
6. init 5 brings to graphical desktop manager

6 comments:

  1. Great one!
    I have been trying to help a friend overseas, who bought a Vaio with Nvidia card to install Fedora 12 on it with LiveUSB. We tried to install it over IM and phone... every attempt to boot LiveUSB in text mode or to use vesa driver was in vain.

    And this one works! Right now installing it :)

    ReplyDelete
  2. Thanks for the appreciation

    To blacklist nouveau you can use straightforward

    rdblacklist=nouveau

    as boot param instead of nouveau.blacklist=1.

    The rest, configuring X and running with vesa is same as the above article

    ReplyDelete
  3. Awesome post. You really know your stuff!

    ReplyDelete
  4. Thanks for encouragement, Fedora 13 just takes nomodeset boot param and it boots into vesa mode

    ReplyDelete
  5. Thanks for your sharing Exellent job.
    Can you kindly elaborate how tto boots right into VESA mode n F13 please?

    ReplyDelete
  6. I think just appending nomodeset as boot param will do the job in F13

    ReplyDelete