Just to bring everyone full circle on what was required to get Daniel up and going:
The first thing that was necessary was to change his /boot/grub/grub.conf to allow the nVidia drivers to take over from the nouveau drivers. His kernel line looked like this:
Code:
kernel /vmlinuz-2.6.31.6-166.fc12.x86_64 ro root=/dev/mapper/VolGroup-lv_root LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
To that, we added 'nouveau.modeset=0 vga=0x31B rdblacklist=nouveau', so that his kernel line looked like this:
Code:
kernel /vmlinuz-2.6.31.6-166.fc12.x86_64 ro root=/dev/mapper/VolGroup-lv_root LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet nouveau.modeset=0 vga=0x31B rdblacklist=nouveau
At this point, the system could still be booted and come up with the graphical bootloader and load the X server. The nouveau.modeset entry turns off kernel modeseting, which basically leaves the video driver in it's default BIOS mode (80x24 character mode). The vga=0x31B then tells the video driver to initialize to 1280x1024x32-bit graphics mode. This entry isn't necessary to boot, but IS necessary to get Plymouth into the graphical mode. Finally, the rdblacklist entry tells the kernel to not use the nouveau driver. I'm not convinced this entry is actually necessary (my system works without out it) but when we finally got things working, I wasn't inclined to go back and play.
Having done that, the next step was to set up a couple of batch files to compile the drivers and remove the drivers, respectively:
/root/nv.sh:
Code:
#!/bin/bash
telinit 3
[ ! -d /root/nvidia-drivers ] && mkdir /root/nvidia-drivers
cd /root/nvidia-drivers
cp /home/Daniel/nvidia/NVIDIA-Linux-x86*pkg2.run .
chmod 500 NVIDIA-Linux-x86*pkg2.run
NVIDIA_DRIVERS=$(ls -alt NVIDIA-Linux-x86*-pkg2.run | head -n 1 | awk '{print $8}')
./$NVIDIA_DRIVERS --silent
reboot
/root/nv-remove.sh
Code:
#!/bin/bash
telinit 3
[ ! -d /root/nvidia-drivers ] && mkdir /root/nvidia-drivers
cd /root/nvidia-drivers
NVIDIA_DRIVERS=$(ls -alt NVIDIA-Linux-x86*-pkg2.run | head -n 1 | awk '{print $8}')
./$NVIDIA_DRIVERS --uninstall
reboot
both of those have to be chmod'd so that they are executable:
Next, we bind those scripts to the second and third virtual terminals, respectively, for the root user. We do this by editing the /root/.bashrc file and adding the following lines at the very end:
Code:
[ `tty` = "/dev/tty2" ] && ./nv.sh
[ `tty` = "/dev/tty3" ] && ./nv-remove.sh
Now, when he presses CTRL-ALT-F2 and logs in as the root user, it automatically runs the nv.sh script. When he presses CTRL-ALT-F3 and logs in as the root user, it automatically runs the nv-remove.sh script.
In order for EITHER of those scripts to work, though, there have to be drivers. The drivers have to be downloaded from the nVidia site. The way the scripts are set up, the drivers are assumed to be in the /home/Daniel/nvidia directory, and are then copied into /root/nvidia-drivers before being compiled and installed.
That brings us to the next piece: installing the necessary kernel and compiler files to support compiling the drivers:
Code:
yum install kernel-devel kernel-headers kernel-firmware gcc
That installs the necessary kernel development files and the GNU C Compiler and support files.
Finally, the default X config on Fedora is to not use a config file (/etc/X11/xorg.conf). So, we have to get the nVidia drivers to make one, which can only be done by doing the first compile manually (the script automates everything, and bypasses generating the necessary X config file).
So, we:
Code:
cd /root/nvidia-drivers
cp /home/Daniel/nvidia/NVIDIA* .
chmod 500 NVIDIA*
./NVIDIA*
Accept the license, and then take all of the default selections, until it asks you if you would like to run the configuration tool and generate a config file. The default here is 'no', but you want to select 'yes'.
After that, reboot the system and you'll come up in the nVidia X11 drivers. HOWEVER, in order to use compiz, there is are two more steps required. In a terminal, you type:
After that, you can go to the System|Preferences menu, select 'Enable Desktop Effects' and choose 'Enable Compiz' and everything will work. If you don't compiz --replace first, you won't be able to enable the desktop effects.
Took me all of about 10 minutes to actually do the above, but we had to back Daniel down to a previous system backup. Somehow, yum had become convinced it had a compiler dependency on a 32-bit library that didn't exist and wasn't available for a 64-bit system. Using yum, I was not able to determine what package was on the system that was causing that conflict, so Daniel restored to a previous (pre-much-system-configuration-mucking-about) system state, and everything went off without a hitch.