Friday, March 26, 2010

Ubuntu Lucid - Nvidia and ATI cards will get some changes

Ubuntu Lucid might be an tricky release for some people who are using older graphics cards or currently use binary/proprietary drivers.

My understanding is that new drivers will be in use (where possible) to replace some of the basic rendering for Nvidia and ATI.

I run computers with ATI, Intel, and Nvidia cards and so I will be working through these changes several times perhaps :)

( If you are a command line type and just want to find out what grub options might help you get a terminal to a broken display, then skip to the end of this post, for some hints in a .diff )

Nvidia cards and the Nouveau driver:

For Ubuntu Lucid, the proposal is that Nouveau will replace 'nv' driver.

Nouveau provides basic rendering (probably good enough for a business desktop), and is not yet designed to use all of the features of your graphics card.

Nouveau themselves have some information here, which says about the current status, and they also appeal for testers here.

ATI cards and fglrx package:

Looking like there may be a new way for basic rendering using ATI/AMD cards in Ubuntu Lucid but this is touch and go at the moment.

There are some hints as to how to get fglrx working unofficially, and by the time I upgrade the ATI desktop machine, this should be a bit clearer.

Help? All I can get is a blank screen and 'out of range':

Hopefully by the time Lucid is released there will be none of these sort of messages, although the hints and tips that follow are generally useful for helping you recover from display issues perhaps.

If you have an Nvidia card and a monitor larger than 19" then maybe the Nouveau driver is not able to give a suitable resolution.

Whatever the cause, you are likely stuck until you can either:

Get some interaction (even terminal) in which you can intervene

Force some boot parameter via the Grub menu or similar

Boot an older kernel which doesn't involve the newest driver setup

My solution involved all three steps for the desktop Nvidia machine as you will see:

I just happened to have a Lucid 'alternate' i386 iso which I intended updating with, but in the end went with a network install. This 'alternate' CD has a rescue option which allows you to boot from CD but drop you into the system to be rescued :)

Having a terminal into my system I was then able to alter Ubuntu's hidden menu behaviour, so as to get a choice of which kernel to boot (see end of post)

Holding down the shift key, whilst grub is initialising is the easier way of getting a Grub menu up :)
(Hold down Shift after your BIOS has finished messaging and before your hard disk light shows your system is booting)

Because this was an upgrade, I had several old kernels, as well as the newer Ubuntu Lucid 2.6.32 kernel. I wanted to check that it really was the new Nouveau driver that was causing my problem and booting an older kernel helped me understand that.

Booting using the old kernel got me into my system and GDM and Gnome looked to work okay. First thing I did was pick up the latest updates - even though it was only a day, this being a beta phase of Lucid, there were several packages with updates.

Now how to boot the current kernel but prevent it from using Nouveau driver?
The nomodeset switch is the way around things as a bit of websearching suggested that if some drivers cannot be used without a mode setting :)

Sure enough the machine booted and gave me a login box so I am now able to go further in my testing.

(By forcing the kernel nomodeset, the system was unable to use Nouveau and in fact used a basic Vesa driver)

Things are still not ideal (well this is a beta!) and the big questions for me right now are:

Why can I not get any sort of terminal with Ctrl+Alt+F1?

Why is my 24 inch iiyama such a problem when it was fine in Karmic?

These are questions for me, and so I will finish this post now and just include a diff file, which might give you some pointers, as to useful configuration options for Grub (should you want finer control as to how Grub behaves at boot time)

For anyone that might have a similar issue with the switch to Nouveau from 'nv', then the graphics card was identified as Nvidia FX 5200 and might show as NV34 board perhaps.
[ At seven years old that Nvidia card could almost be part of a #retropc :) ]