[arch-general] Suggestions wanted: nvidia + nouveau in AUR PKGBUILD

C Anthony Risinger anthony at xtfx.me
Tue Feb 26 21:07:45 EST 2013

On Feb 26, 2013 7:04 PM, "Oon-Ee Ng" <ngoonee.talk at gmail.com> wrote:
> I'm an nvidia user who finally decided to try out nouveau and
> currently have it working, but want to keep nvidia installed
> just-in-case. I also maintain
> nvidia-beta/lib32-nvidia-utils-beta/nvidia-utils-beta in the AUR.
> As far as I can see, keeping both nouveau and nvidia installed and
> usable is not difficult, especially with the new mesa split PKGBUILD.
> Basically I only need the following symlinks (may be a bit different
> from current:-
> 1. /usr/lib/libGL.so -> libGL.so.1
> 2. /usr/lib/libGL.so.1 -> libGL.so.1.2.0 OR libGL.so.313.18
> 3. /usr/lib/libGL.so.1.2.0 -> mesa-libGL.so.1.2.0
> 4. /usr/lib32/libGL.so -> libGL.so.1
> 5. /usr/lib32/libGL.so.1 -> libGL.so.1.2.0 OR libGL.so.313.18
> 6. /usr/lib32/libGL.so.1.2.0 -> mesa-libGL.so.1.2.0
> 7. /usr/lib/xorg/modules/extensions/libglx.so -> libglx.xorg OR
> I also need to blacklist nouveau (or remove the blacklist) for
> modprobe, currently done in /usr/lib/modprobe.d/nvidia.conf
> A few questions:-
> 1. The 'best' way I can figure is that all symlinks would be owned by
> a fake {lib32-}mesa-libgl-nvidia package. Only symlink 2, 5, and 7
> above need changing when 'switching'. This would require manually
> running a script to change (followed by a reboot). The script can also
> fix the blacklist.
> 1a. Can the blacklist be fixed by renaming the file to not end with
> .conf or must it be moved out of /usr/lib/modprobe.d?
> 2. Alternatively, is there a way to get my bootloader to blacklist
> modules (modprobe.blacklist=nouveau or nouveau.blacklist=true as shown
> in [1]?) AND run a script which would 'fix' the symlinks before KMS?
> This would be preferable (and lower-maintenance for me) if possible.

Slightly OT, but make sure you enable writable perf levels... I didn't
notice this for over a year of nouveau use and subsequently I thought it
was far less performant than it actually was. Its like night and day.

A udev rule could probably work, or maybe an absolutely grotesque abuse of
an `install` modprobe config line... but personally I would do it all in a
late mkinitcpio hook (ie after root mounts) which can edit/swap/whatever
before the system starts up.  As long as you keep nouveau OUT of the
initramfs (ie avoid the "early" KMS method) it should work alright. With a
little extra work you could assume nouveau and use early method, then have
the hook unload if nvidia gets requested.


C Anthony [mobile]

More information about the arch-general mailing list