|
70 | 70 | fi |
71 | 71 |
|
72 | 72 | # Additional for GRUB users |
73 | | -# Check if /etc/default/grub exists |
74 | 73 | if [ -f /etc/default/grub ]; then |
| 74 | + printf "GRUB bootloader detected\n" 2>&1 | tee -a "$LOG" |
| 75 | + |
75 | 76 | # Check if nvidia-drm.modeset=1 is present |
76 | 77 | if ! sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub; then |
77 | 78 | sudo sed -i -e 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia-drm.modeset=1"/' /etc/default/grub |
78 | | - echo "nvidia-drm.modeset=1 added to /etc/default/grub" 2>&1 | tee -a "$LOG" |
| 79 | + printf "nvidia-drm.modeset=1 added to /etc/default/grub\n" 2>&1 | tee -a "$LOG" |
79 | 80 | fi |
80 | 81 |
|
81 | 82 | # Check if nvidia_drm.fbdev=1 is present |
82 | 83 | if ! sudo grep -q "nvidia_drm.fbdev=1" /etc/default/grub; then |
83 | 84 | sudo sed -i -e 's/\(GRUB_CMDLINE_LINUX_DEFAULT=".*\)"/\1 nvidia_drm.fbdev=1"/' /etc/default/grub |
84 | | - echo "nvidia_drm.fbdev=1 added to /etc/default/grub" 2>&1 | tee -a "$LOG" |
| 85 | + printf "nvidia_drm.fbdev=1 added to /etc/default/grub\n" 2>&1 | tee -a "$LOG" |
85 | 86 | fi |
86 | 87 |
|
87 | 88 | # Regenerate GRUB configuration |
88 | 89 | if sudo grep -q "nvidia-drm.modeset=1" /etc/default/grub || sudo grep -q "nvidia_drm.fbdev=1" /etc/default/grub; then |
89 | | - sudo grub-mkconfig -o /boot/grub/grub.cfg |
| 90 | + sudo grub-mkconfig -o /boot/grub/grub.cfg |
| 91 | + printf "GRUB configuration regenerated\n" 2>&1 | tee -a "$LOG" |
90 | 92 | fi |
| 93 | + |
| 94 | + printf "Additional steps for GRUB completed\n" 2>&1 | tee -a "$LOG" |
| 95 | +fi |
91 | 96 |
|
92 | | -else |
93 | | - echo "/etc/default/grub does not exist" |
| 97 | +# Additional for systemd-boot users |
| 98 | +if [ -f /boot/loader/loader.conf ]; then |
| 99 | + printf "systemd-boot bootloader detected\n" 2>&1 | tee -a "$LOG" |
| 100 | + |
| 101 | + backup_count=$(find /boot/loader/entries/ -type f -name "*.conf.bak" | wc -l) |
| 102 | + conf_count=$(find /boot/loader/entries/ -type f -name "*.conf" | wc -l) |
| 103 | + |
| 104 | + if [ "$backup_count" -ne "$conf_count" ]; then |
| 105 | + find /boot/loader/entries/ -type f -name "*.conf" | while read imgconf; do |
| 106 | + # Backup conf |
| 107 | + sudo cp "$imgconf" "$imgconf.bak" |
| 108 | + printf "Backup created for systemd-boot loader: %s\n" "$imgconf" 2>&1 | tee -a "$LOG" |
| 109 | + |
| 110 | + # Clean up options and update with NVIDIA settings |
| 111 | + sdopt=$(grep -w "^options" "$imgconf" | sed 's/\b nvidia-drm.modeset=[^ ]*\b//g' | sed 's/\b nvidia_drm.fbdev=[^ ]*\b//g') |
| 112 | + sudo sed -i "/^options/c${sdopt} nvidia-drm.modeset=1 nvidia_drm.fbdev=1" "$imgconf" 2>&1 | tee -a "$LOG" |
| 113 | + done |
| 114 | + |
| 115 | + printf "Additional steps for systemd-boot completed\n" 2>&1 | tee -a "$LOG" |
| 116 | + else |
| 117 | + printf "systemd-boot is already configured...\n" 2>&1 | tee -a "$LOG" |
| 118 | + fi |
94 | 119 | fi |
95 | 120 |
|
| 121 | + |
96 | 122 | # Blacklist nouveau |
97 | 123 | if [[ -z $blacklist_nouveau ]]; then |
98 | 124 | read -n1 -rep "${CAT} Would you like to blacklist nouveau? (y/n)" blacklist_nouveau |
|
0 commit comments