[elrepo] yum-plugin-nvidia
Phil Perry
phil at elrepo.org
Wed Jul 8 07:06:24 EDT 2015
Hi all,
This email is to let you all know about a new yum plugin for nvidia we
have released.
The Problem:
Every year or two NVIDIA drops support for older hardware in their
current driver release. In effect they fork the current branch and
maintain an legacy fork for older hardware.
This causes a problem for users of older hardware who are using the
current driver release (e.g, kmod-nvidia). When a new release is made
that drops support for their hardware, performing a 'yum update' would
leave them with a broken system as the updated driver no longer support
their hardware.
Up until now we have had no easy way to manage that purely from a
packaging standpoint. We have tried to manage the situation through
awareness, getting affected users to migrate to a legacy driver branch
before they get stung.
The Solution:
Obviously we would like an automated solution to this issue as the last
thing we want is for a regular 'yum update' to potentially leave a
user's system in a non-functioning state.
To this end, we have released a yum plugin (yum-plugin-nvidia) which is
currently available in the elrepo testing repositories.
The plugin works in conjunction with a new set of packages (352.21-3 and
above). We have added a number of 'Provides' to the nvidia packages that
provide blacklist information about older legacy hardware that is no
longer supported by that driver release. For example:
rpm -qp --provides kmod-nvidia-352.21-3.el5.elrepo.x86_64.rpm | grep
blacklist
...
blacklist(pci:v000010DEd000010D8sv*sd*bc03sc*i*) = 340
...
In the example above, that particular blacklist() entry specifies that
the nvidia device 10DE:10D8 is not supported by the current driver
release, but is instead supported by the 340.xx legacy driver.
The yum plugin works by first retrieving the modalias string for your
installed hardware and comparing it to the list of blacklisted devices
in the RPM package provides. If a match is found that package is then
excluded from yum so the package can't accidentally be installed or
updated on unsupported hardware. This works in much the same way as
manually excluding packages in yum conf files, or using the priorities
yum plugin.
Testing:
If you are using the current nvidia drivers (e.g, kmod-nvidia packages),
we would ask that you please install yum-plugin-nvidia from the testing
repository:
yum --enablerepo=elrepo-testing install yum-plugin-nvidia
This will also pull in the updated nvidia packages (352.21-3).
If you would like to take a closer look at what the plugin is doing,
just try running 'yum update' at a higher debug level (e.g, try -d3, -d5
and -d5) with the elrepo-testing repo enabled (so yum can see the new
nvidia packages)
There are no user configurable options other than to enable / disable
the plugin.
If you are a developer or read python, the source code is available here:
https://github.com/elrepo/packages/tree/master/yum-plugin-nvidia
Please test and report feedback here (a 'works for me' with a pastebin
of yum's output is always welcome). Alternatively, feel free to file
bugs at http://elrepo.org/bugs
If you want to test on older hardware to see what happens when hardware
is no longer supported, feel free to manually install the plugin with
rpm --nodeps (it won't do any harm). You should then be able to see
packages in the elrepo-testing repo being excluded.
Once we are happy everything is working as intended, I plan to add
yum-plugin-nvidia as a package 'Require' to the next nvidia driver
release so it will get automatically installed for *all* nvidia users.
Feedback / thoughts appreciated,
Thanks,
Phil
The ELRepo Team.
More information about the elrepo
mailing list