LinuxForum.Fans
Тема

Скрипт удаления nouveau

Автор: aviator 1 сообщений 2790 просмотров
#21267

потребовался такой скрипт (руками уже делать это облом)
так как в fc12 (и вероятно в последующих) по умолчанию видеодрайвер - nouveau с ним приходится возиться (удалять и ставить NVIDIA)

примерно прикинул как это дело должно выглядеть:
1.проверяется от рута ли запущен скрипт (если нет, то просим запустить под рутом)
2.проверяется наличие проперитарного NVIDIA драйвера, путь к которому должен быть передан в параметре скрипта (если нет, то просим скачать с оф сайта)
3.удаляем nouveau ("yum remove xorg-x11-nouveau")
4.бекапим grub.conf ("cp /boot/grub/grub.conf /boot/grub/grub.conf.back")
5.добавляем в строку с параметрами ядра rdblacklist=nouveau
6.бекапим initramfs ("cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).back")
7.пересобираем его ("dracut --force /boot/initramfs-$(uname -r).img $(uname -r)")
8.запускаем установку драйвера

вопрос по 8ому: если можно автоматизировать весь процесс, то как?

Заранее спасибо!

ЗЫ если есть какие-то замечания к алгоритму, то пожалуйста озвучте (вдруг это всё проще делается?)

помогать видимо мало кто собирается...
вот что вышло

text
#!/bin/sh

echo "This scritp remove nouveau and start NVIDIA driver installer"

user=$(whoami)

if [ $user != "root" ] then echo "you must be a root!" echo "script failed" exit 0 fi

echo "Do you want this? y/N" read ans case $ans in Y|y) echo "scritp started";; N|n) echo "exit" echo "script terminate" exit 0;; *) echo "wtf?" echo "script failed" exit 0;; esac

if [ $# -eq 1 ] then if [ -f $1 ] then if [ -x $1 ] then echo "$1 is runing before script" else echo "$1 isn't executeble file!" echo "script failed" exit 0 fi else echo "executeble file not found" echo "script failed" exit 0 fi else echo "haven't path of executeble file" echo "script failed" exit 0 fi

echo "Removing xorg-x11-drv-nouveau pack" yum remove xorg-x11-drv-nouveau

echo "Reconfig grub.conf - add rdblacklist=nouveau" mv /boot/grub/grub.conf /boot/grub/grub.conf.backup_nouveau cp /dev/null /boot/grub/grub.conf sed '/^[^#].*kernel/s/$/ rdblacklist=nouveau/g' /boot/grub/grub.conf.backup_nouveau > /boot/grub/grub.conf

echo "Rreconfig initramfs" cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).back dracut --force /boot/initramfs-$(uname -r).img $(uname -r)

echo "Start NVIDIA driver installer" sh $1 echo "Succesfull!" exit 0

пока не проверял

Войдите или зарегистрируйтесь, чтобы ответить.