aboutsummaryrefslogtreecommitdiffstats
path: root/bin/nouveau2nvidia
blob: a71e6b76ac04889e969c3669cd6db3f0e6cbc4f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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