diff options
Diffstat (limited to 'bin/nouveau2nvidia')
-rwxr-xr-x | bin/nouveau2nvidia | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/bin/nouveau2nvidia b/bin/nouveau2nvidia new file mode 100755 index 0000000..a71e6b7 --- /dev/null +++ b/bin/nouveau2nvidia @@ -0,0 +1,57 @@ +#!/bin/bash +# nouveau -> nvidia + +set -e +# check if root +if [[ $EUID -ne 0 ]]; then + echo "You must be root to run this script. Aborting..."; + exit 1; +fi + +echo "Switching MODULES line in /etc/mkinitcpio.conf" +sed -i 's/MODULES="dm-mod nouveau"/#MODULES="dm-mod nouveau"/' /etc/mkinitcpio.conf +sed -i 's/#*MODULES="dm-mod nvidia"/MODULES="dm-mod nvidia"/' /etc/mkinitcpio.conf + +echo "Uninstalling nouveau drivers, installing nvidia drivers." + +declare -i NVIDIAINSTALL +NVIDIART=$(pacman -Qi|grep Name|grep linux-rt) + +if [[ -n "$NVIDIART" ]]; then + NVIDIAINSTALL=$NVIDIAINSTALL+1 + echo "Seems that linux-rt is installed. Marking nvidia-rt for installation." +fi + +pacman -Rdds --noconfirm nouveau-dri xf86-video-nouveau mesa-libgl lib32-nouveau-dri lib32-mesa-libgl + +case $NVIDIAINSTALL in + 0) + pacman -S --noconfirm nvidia lib32-nvidia-libgl + ;; + 1) + pacman -S --noconfirm nvidia lib32-nvidia-libgl + aura -A --noconfirm nvidia-rt + ;; +esac + +echo "Switching X11 settings." +NVIDIACONF="/etc/X11/xorg.conf.d/20-nvidia.conf" +NOUVEAUCONF="/etc/X11/xorg.conf.d/20-nouveau.conf" +BKP=".bkp" + +if [[ -f $NOUVEAUCONF ]]; then + mv $NOUVEAUCONF "$NOUVEAUCONF$BKP" +fi + +if [ -f "$NVIDIACONF$BKP" ]; then + mv "$NVIDIACONF$BKP" $NVIDIACONF +fi + + +echo "Building new initramfs images." +mkinitcpio -p linux + +if [[ -f "/etc/mkinitcpio.d/linux-rt.preset" ]]; then + mkinitcpio -p linux-rt +fi + |