显卡驱动安装之Shell脚本配置(2)

Posted by Harid二月 - 21 - 2011 Leave comments

在《显卡驱动安装之Shell脚本配置》里,我主要是用split分割命令对需要操作的文件进行分割后处理再重定向至一个新的文件。在这个脚本中,我也用到了sed工具,今天这个脚本里对文件的处理仅仅用到了sed工具,相比上一个,则 主要是因为少用了“-n”选项,这样就没有关闭整个文件的输出,从而也就不需要进行一些繁琐的文件分割与合并。

脚本内容:

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
#!/bin/bash
#Program:  要求以 root用户执行此脚本程序。执行完此脚本后,再行去字符界面
#         执行安装即可。
#            字符界面安装命令为: ./NVIDIA*.run -k $(uname -r)
#            其中假定驱动文件(.run文件)是存放在当前目录下,并且文件名为NVIDIA
#            开头。
#Author : Kailash
#Contact: http://www.timepoet.com
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 检测是否安装了 kernel-devel与kernel-headers.
echo "正在检测环境,此过程需要联网并可能花费几分钟..."
dev_stat=`rpm -qa | grep "^kernel-devel-$(uname -r)"`
if [ -z "$dev_stat" ] ; then
    yum install kernel-devel -y
    temp=`echo $?`
    if [ "$temp" -gt "0" ] ; then
        echo "软件kernel-devel没有安装成功,可能是网络问题."
        exit 0
    fi
fi
head_stat=`rpm -qa | grep "^kernel-headers-$(uname -r)"`
if [ -z "$head_stat" ] ; then
    yum install kernel-headers -y
    temp=`echo $?`
    if [ "$temp" -gt "0" ] ; then
        echo "软件kernel-headers没有安装成功,可能是网络问题."
        exit 0
    fi
fi
#配置文件
clear
echo "现在配置需要的修改的文件..."
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)
#修改grub.conf文件
echo "修改/boot/grub/grub.conf文件..."
sed "s/quiet/& rdblacklist=nouveau\ vga=0x361/"g /etc/grub.conf > /etc/grub.conf
#修改/etc/modprobe.d/blacklist.conf文件
echo "修改/etc/modprobe.d/blacklist.conf文件..."
sed '/nvidia/'d /etc/modprobe.d/blacklist.conf > /etc/modprobe.d/blacklist.conf
#禁止SeLinux阻止驱动安装
echo "禁止SeLinux阻止驱动安装..."
setsebool -P allow_execstack on
echo "安装前配置完成!现在请重启电脑进入字符界面执行显卡驱动安装。"
exit 0

 

注意:我并没有测试其正确与否,如果您决定一试,将上面的内容复制进文件并名为” .sh”后缀的脚本文件,然后执行:“ sh 该脚本文件的路径”。

   声明:本文采用 BY-NC-SA 协议进行授权 | 星期九
   原创文章转载请注明:转自《显卡驱动安装之Shell脚本配置(2)


分享按钮