Is initrd modified and does it take modprobe.d files from the running system?

I am having a few problems getting the nouveau driver working in my new openSUSE 12.2 system. When I read the documentation it seems to expect nouveau to be used to create a console just after initramfs is unpacked. I’ve tried various command line changes but always seem to get the vesafb driver and when I then try to use the nouveau driver for X11 the two seem to compete and the system hangs. The nv driver works OK for X11 (vesa gives way gracefully) but it does not support mesa (3-D_ graphics which I use for some of plotting software.

To try and understand this I used zcat to unpack the intrd file - and was surprised to find that the initrd->etc/modprobe.d had copies of the running system /etc/modprobe.d files - including some of my edits (in trying to get the X11 system working as I wanted it) and a nvidia-desktop-conf file (probably from my old 10.4 system) which blacklisted nouveau.

So to help me understand why this occurred and to make progress:

  1. Is the initrd file recreated at any time - say by Yast2 when downloading a system update to the kernel?
  2. Is the blacklist used when deciding on how to start/open the initial console?
  • If so then I presume I have to recreate the initrd file but with files which do not blacklist nouveau.
  1. Are all files in modprobe.d read, even those which do not start with numbers?

  2. If I am completely on the wrong track:
    how else can I make sure that nouveau is used for the initial console or
    what driver should I use to start or
    should I be looking elsewhere - for example shared interrupt lines??

Regards, David Webb.

nouveau seems pretty broken in 12.2 best to install the NVIDIA driver it is a much better driver anyway

Yes

  1. Is the blacklist used when deciding on how to start/open the initial console?

More or less. If nouveau module is blacklisted, it will not be included in initrd and loaded.

  • If so then I presume I have to recreate the initrd file but with files which do not blacklist nouveau.

Safest is to remove any blacklists intructions you have, reboot and then recreate initrd

  1. Are all files in modprobe.d read, even those which do not start with numbers?

Yes

how else can I make sure that nouveau is used for the initial console

Usually it happens by default and you need to make efforts to not use nouveau :slight_smile:

Thanks Penguin :).
Is this all in the linux documentation somewhere? I had a search before posting but was unsuccessful.

All you have to do is to install the nvidia repo and the package x11-video-nvidiaG02 - unless you have an older model of nvidia (such as FX series which need x11-video-nvidiaG01). The rpm post-install script will blacklist nouveau and rebuild initrd to disable kms.

$ su -l 
# zypper ar ftp://download.nvidia.com/opensuse/12.2 nvidia
# zypper ref
# zypper in  x11-video-nvidiaG02

I reinstalled X11-video-nvidiaG02 and this time it worked a treat - so thanks.

In case anyone else comes across this post and has a similar problem I should add:

  1. I had been using the nvidia driver under openSUSE 11.4 to drive a Geforce 6600 card.

  2. I upgraded to 11.2 using zypper (but made a copy of the 11.4 system in another partition - this was well worth the effort - because I have been able to use the backup system while sorting out this and other problems - i.e. the kmail2 converter does not like my huge mail directory structure).

  3. I found that X11 would not start with the nvidia driver.

  4. I removed the nvidia driver and tried nouveau for both X11 and for the initial framebuffer - without success. However the nv driver worked.

  5. In the process I also found that that there were a number of old files still lying around and causing problems which I removed.

  6. When I reinstalled X11-video-nvidiaG02 as suggested above, other packages downloaded included a new copy of the 3.4.11-2.16-default kernel. The upgrade to 12.2 had installed the desktop version.

It should not happen but this may have been the reason that the nvidia driver failed when I first tried it. Other possibilities are that some 11.4 files were causing problems or that during the update the nvidia libraries were loaded first and then were overwritten by modules which were updated later.

  1. Finally the nvidia installation generated new lines in my /boot/grub/menu.lst. The kernel line now ends: “nomodeset showopts vga=0x31a” which means that the vesafb is used for the inital framebuffer device. Also when starting up it is now not possible to delete the nomodeset command.

I would still like to use nouveau - being a supporter of open source code - so if anyone has a good ideas let me know. On my last test after starting with nv and then stopping X11 and restarting trying to load the nnouveau driver, X11 failed with the message:
drmOpenByBusid: Searching for BusId pci:0000:01:00:0
and then cannot find a screen.