[arch-general] Suggestions wanted: nvidia + nouveau in AUR PKGBUILD
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 libglx.so.313.18 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. [1] - http://www.funtoo.org/wiki/Create_a_boot_option_for_easy_nvidia_or_nouveau_d...
On Feb 26, 2013 7:04 PM, "Oon-Ee Ng" <ngoonee.talk@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
libglx.so.313.18
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]
participants (2)
-
C Anthony Risinger
-
Oon-Ee Ng