Blacklisting Nouveau
Michael Semcheski
mhsemcheski at gmail.com
Tue Feb 2 19:20:59 UTC 2010
On Tue, Feb 2, 2010 at 2:37 AM, Thorsten Leemhuis <fedora at leemhuis.info> wrote:
>> Though maybe smarter packaging by the rpm fusion people could
>> make using the proprietary nVidia drivers more newbie friendly.
> Definitely, as there is a whole lot of room for improvements (at least
> as far as I can see from my point as long term contributor to RPM Fusion
> and old maintainer of those packages back in 2006 or something). It just
> needs people that are willing to work on those improvements, which is
> something RPM Fusion lacks.
Personally, I just want to say that I'm pretty happy with the way RPM
Fusion's nvidia driver works. There've been a few problems I've had,
but none to speak of since switching to akmod-nvidia.
Blacklisting nouveau is relatively easy to do wrt adding a line to
grub. In our environment, I have a script that puppet uses to take
care of this (see below). It would be nice if the open source drivers
worked perfectly, but I'm a pragmatic user.
#!/usr/bin/perl
# black-nouveau.pl
#
# PURPOSE: Perform the necessary steps to blacklist the nouveau kernel
mod and allow the nvidia driver to work.
#
# Flag, represents whether or not any changes were made.
$update = false;
# The output which will be written out if necessary.
$output = "";
# The file that will be operated on.
$data_file="/boot/grub/grub.conf";
# Open the file, read in its lines, and close it..
open(DAT, $data_file) || die("Could not open file.");
@file_lines=<DAT>;
close(DAT);
# For each line in the file...
foreach $line (@file_lines)
{
# If the file huas a root= line, but no nouveau...
if (($line =~ /root=/) and not ($line =~ /rdblacklist=nouveau/))
{
# Append the blacklist line, and set the udpate flag.
$line =~ s/(^.*$)/\1 rdblacklist=nouveau/;
$update = true;
}
# Add the line to the output.
$output .= $line;
}
# If there is an update...
if ($update eq true)
{
# Open thhe file, overwrite it, and close it.
open (DAT, ">".$data_file);
print DAT $output;
close(DAT);
}
# Run dracut.
system('dracut -f /boot/initramfs-$(uname -r).img $(uname -r)');
More information about the users
mailing list