QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3132|回复: 6

安装NVIDIA6629驱动小记

[复制链接]
发表于 2005-2-15 12:46:33 | 显示全部楼层 |阅读模式
安装NVIDIA-6629需要以下几个步骤:
[code:1]
       1. 进入字符界面,NVIDIA驱动在字符界面下安装。(也可以在X下安装,参考补充说明)
       2. 安装内核源码包
       3. 运行NVIDIA-Linux-x86-1.0-6629-pkg1.run 编译nvidia驱动
       4. 修改X的配置文件,使用nvidia驱动
       5. 如果nvidia驱动不能自动加载,需要修改系统启动脚本,使其启动时加载[/code:1]

    下面逐步的讲述如何进行:

    1. NVIDIA驱动在字符界面安装:

    修改 /etc/inittab中的"id:5:initdefault:" 字段, 将5改成3
    重新启动,就会进入字符界面。输入startx启动X
    不同的发行版启动级别可能不同,通常会在inittab中
    标识各个运行级别代表的意义:
  [code:1]  # Default runlevel. The runlevels used by Mandrakelinux are:
    #   0 - halt (Do NOT set initdefault to this)
    #   1 - Single user mode
    #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
    #   3 - Full multiuser mode
    #   4 - unused
    #   5 - X11
    #   6 - reboot (Do NOT set initdefault to this)
[/code:1]
    2. 安装内核源码包:

    可以从http://www.kernel.org下载源码包或安装自身发行版所带的kernel-source

    注意:必须与当前使用内核版本完全相同。

    如果从www.kernel.org下载的源码包,使用下列命令安装:
    cd /usr/src   进入/usr/src目录中,将源码包放置在这里。
    tar jxvf linux-2.6.10.tar.bz2 解压源码包,会生成linux-2.6.10目录
    ln -s /usr/src/linux-2.6.10 /usr/src/linux 编译内核建议做个软链接。
    并且要确保 /lib/modules/2.6.10/下的build,source目录
    正确指向/usr/src/linux-2.6.10的:
  [code:1]  [root@NEWLFS modules]#ls -l /lib/modules/2.6.10
    lrwxrwxrwx  1 root root    21 2005-02-08 20:28 build -> /usr/src/linux-2.6.10/
    drwxr-xr-x  9 root root   216 2005-02-08 20:28 kernel/
    -rw-r--r--  1 root root  3408 2005-02-09 13:26 modules.alias
    -rw-r--r--  1 root root    69 2005-02-09 13:26 modules.ccwmap
    -rw-r--r--  1 root root  7503 2005-02-09 13:26 modules.dep
    -rw-r--r--  1 root root    73 2005-02-09 13:26 modules.ieee1394map
    -rw-r--r--  1 root root   205 2005-02-09 13:26 modules.inputmap
    -rw-r--r--  1 root root    81 2005-02-09 13:26 modules.isapnpmap
    -rw-r--r--  1 root root  4649 2005-02-09 13:26 modules.pcimap
    -rw-r--r--  1 root root 13519 2005-02-09 13:26 modules.symbols
    -rw-r--r--  1 root root   189 2005-02-09 13:26 modules.usbmap
    lrwxrwxrwx  1 root root    21 2005-02-08 20:28 source -> /usr/src/linux-2.6.10/[/code:1]

    做完这些,我去安装 NVIDIA驱动,结果编译时出错。
    将内核源码编译一下,不安装,就可以正常编译了。

    2.4.x内核不知是否如此,如果编译NVIDIA过程中出现错误,就先编译一下内核
    方法很简单:

    更方便简洁的方法参看补充说明二

    从/boot目录下复制config-2.6.10到/usr/src/linux下
    命名为.config
   
    对于2.6.x内核使用下列命令编译:
    cd /usr/src/linux 进入源码目录
    make   编译内核及模块

    注意:不要去make install 只要编译就可以了。

    2.4.x使用下列命令编译内核,同样,只编译不安装。
    cd /usr/src/linux
    make dep  建立依赖关系(不知道是否有必要,做下没坏处)
    make bzImage 编译内核
    make modules 编译模块

    通常发行版中/boot中应该有当前内核的配置文件,如上面的config-2.6.10
    如果没有的话,可以通过下列命令创建出.config  
    [root@NEWLFS linux]# cd /usr/src/linux
    [root@NEWLFS linux]#make menuconfig 字符界面配置内核
    [root@NEWLFS linux]#make xconfig   图形界面配置内核
    这两种方法任选其一,喜欢的话,可以自己配置一下。
    或者直接使用默认值,保存退出即可。这样编译时间会长一些。
    make menuconfig: 假如是在图形界面中的终端运行,要保证
    该终端窗口为全屏,才不会出错。
    编译完成后,就可以安装nvidia驱动了。

    3. 运行NVIDIA-Linux-x86-1.0-6629-pkg1.run 编译nvidia驱动 :


    重启系统,进入字符界面:
    然后进入NVIDIA-Linux-x86-1.0-6629-pkg1.run所在的目录,
    例如我的NVIDIA-Linux-x86-1.0-6629-pkg1.run放在了/root/software下
    则使用下列命令安装:
    cd /root/software 进入NV.... run所在的目录
    chmod u+x  NVIDIA-Linux-x86-1.0-6629-pkg1.run 给予x(可执行权限)
    ./NVIDIA-Linux-x86-1.0-6629-pkg1.run 运行NV.....run
    如果你的NVIDIA-Linux-x86-1.0-6629-pkg1.run存放在其他设备中,比如优盘里。
    那么你需要先使用mount命令挂载上你的优盘,然后进入优盘存放NV... run的目录
    执行安装。
   
    首先出现的是NV的许可协议,选择accept继续。
    提示"NO precompiled kernel interface was found to match your kernel ....."
    询问是否从NV的网站下载,选择No
    提示"同上文,this means that the installer will need to compile a new kernel...."
    选择OK,就开始编译驱动了,整个编译过程的信息记录在/var/log/nvidia-installer.log
   
    编译好的NV驱动在/usr/X11R6/lib/modules/drivers/下
    名称为:nvidia_drv.o
   

    4. 修改X的配置文件,使用nvidia驱动

   
    使用XFree86 X-window 修改/etc/X11/XF86Config
    使用Xorg  X-window  则修改/etc/X11/xorg.conf
    似乎比较新的发行版(2.6.x内核) 都使用xorg 而旧一些的发行版则使用XFree86
    反正/etc/X11/下有哪个就是那个了。

    使用文本编辑器,打开,找到下面这段:

  [code:1]  Section "Device"

            Identifier  "Card0"
            Driver      "nv" ---> "nvidia" ----->这里要修改
            VendorName  "nVidia Corporation"
            BoardName   "NV17 [GeForce4 MX 440]"
            BusID       "PCI:1:0:0"

    EndSection[/code:1]

    将"nv" 改为"nvidia" 也许你的默认驱动不是nv,不管是什么,都改成nvidia
    并且记下默认驱动的名字,以便无法使用nvidia还可以恢复。
   
    再找到下面这段:

  [code:1]  Section "Module"
            Load  "extmod"
            Load  "glx"    -------->如果不存在则自己添加
           #Load  "dri"    ------->如果存在则注释掉 不要说不会注释哦 :)
           #Load  "GLcore"  ---->如果存在则注释掉
            Load  "dbe"
            Load  "record"
            Load  "xtrap"
            Load  "type1"
            Load  "freetype"
    EndSection[/code:1]
   
    修改好,保存退出。

    查看nvidia驱动模块是否加载了:
    [root@NEWLFS drivers]#lsmod |grep nvidia
    nvidia               3463164  0
    [root@NEWLFS drivers]#
    如果有类似上面输出,则表示nvidia已经成功加载
    如果没有任何输出,表示没有加载,需要自己手动加载
   
    使用modprobe加载:
   
    [root@NEWLFS drivers]#modprobe nvidia
    [root@NEWLFS drivers]#
    将nvidia驱动加载,当然在/usr/X11R6/lib/modules/driver/下
    是存在nvidia_drv.o的。成功加载不会有输出,如上所示。
   
    加载后就可以输入startx 启动X了。
    如果看到NVIDIA的徽标就表示安装成功啦。 ^_^
   
    如果不成功,X不能启动,可以修改/etc/X11/XF86Config
    将nvidia 改回默认驱动,恢复原始状态
   

    5. 如果nvidia驱动不能自动加载,需要修改系统启动脚本,使其启动时加载

    我在Mandrake,LFS中安装这个驱动都是这样,系统启动不会自动加载。
    每次都需要先运行modprobe nvidia才可以。
    将这条命令写入系统启动脚本中,就不用每次都输入啦。
   
    在Mandrake中,我写到了/etc/rc.d/rc.local
    因为这是系统启动中最后执行的脚本,做一些系统周边工作,写到这里也比较符合规范

    [root@NEWLFS rc.d]#echo "/sbin/modprobe nvidia" >>rc.local

    我通过echo命令将 /sbin/modprobe nvidia 追加到了rc.local中。
    使用文本编辑器直接写在最后就可以啦。modprobe命令最好使用绝对路径,使用which命令查看
    [root@NEWLFS rc.d]#which modprobe
    /sbin/modprobe
    [root@NEWLFS rc.d]#
     如果你的发行版没有rc.local,也可以写入/etc/rc.d/rc.sysinit中
    系统初始化的第一个脚本。或者其他系统服务中,如network,syslog...
    只要在X启动前就可以。

    补充说明:
     
    补充一:
    在图形界面下安装NVIDIA驱动:
    首先要说的是,这不是个好办法,不是NVIDIA推荐的方式。
    因为在X下安装上的NVIDIA驱动无法用nvidia-installer控制
    所以想卸载nvidia驱动时,比较麻烦.
    尽量在字符下安装,如果实在对字符操作不熟悉,就在X下装吧

    3. 运行NVIDIA-Linux-x86-1.0-6629-pkg1.run 编译nvidia驱动 :

    进入NVIDIA-Linux-x86-1.0-6629-pkg1.run所在的目录
    比如我放在了/root/software下
    [root@NEWLFS ~]#cd /root/software/
    /root ------------> /root/software
    [root@NEWLFS software]#chmod u+x NVIDIA-Linux-x86-1.0-6629-pkg1.run
    加上可执行权限
    [root@NEWLFSsoftware]#./NVIDIA-Linux-x86-1.0-6629-pkg1.run --extract-only
    Creating directory NVIDIA-Linux-x86-1.0-6629-pkg1
    Verifying archive integrity... OK
    Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86 1.0-6629..............................................
    [root@NEWLFS software]#
    这里加上了 --extract-only 表示将NVIDIA-Linux-x86-1.0-6629-pkg1.run解压
    然后就会在/root/software多出个NVIDIA-Linux-x86-1.0-6629-pkg1/目录
[root@NEWLFSsoftware]#cd NVIDIA-Linux-x86-1.0-6629-pkg1
/root/software  ------------>/root/software/NVIDIA-Linux-x86-1.0-6629-pkg1
    [root@NEWLFS NVIDIA-Linux-x86-1.0-6629-pkg1]#
    进入该目录

    [root@NEWLFS NVIDIA-Linux-x86-1.0-6629-pkg1]#ls
    LICENSE Makefile nvidia-installer *pkg-history.txt usr/
    [root@NEWLFS NVIDIA-Linux-x86-1.0-6629-pkg1]#
    里面有上面几个文件

    然后开始手动编译,输入make install :
    [root@NEWLFS NVIDIA-Linux-x86-1.0-6629-pkg1]#make install
    .............编译过程略
   Installing documentation in /usr/share/doc/NVIDIA_GLX-1.0
    mkdir -p /usr/share/doc/NVIDIA_GLX-1.0/include
    cp -r usr/include/* /usr/share/doc/NVIDIA_GLX-1.0/include
    cp -r usr/share/doc/* /usr/share/doc/NVIDIA_GLX-1.0
    /sbin/ldconfig


    [root@NEWLFS NVIDIA-Linux-x86-1.0-6629-pkg1]#
    如果最后输出类似上面,则表示编译成功了。

    可以通过echo $?这个命令判断是否编译成功:
    [root@NEWLFS NVIDIA-Linux-x86-1.0-6629-pkg1]#echo $?
    0
    [root@NEWLFS NVIDIA-Linux-x86-1.0-6629-pkg1]#
    echo $? 表示返回上条命令执行情况,如果成功则返回0,否则返回非0
    如果在make install 后 又运行了其他命令,如ls 再echo $? 返回值
    就是ls命令执行状态了。

    编译完成后,就可以按照上面写的继续了 ^_^

    补充二:
    今天用手动make install方式重新安装NVIDIA驱动,经过几次的尝试
    终于知道它究竟都需要内核源码的什么东东

2. 安装内核源码包:

    从/boot目录下复制config-2.6.10到/usr/src/linux下
    命名为.config
      
    cd /usr/src/linux  进入源码目录

    [root@NEWLFS linux]#make scripts/
      SPLIT   include/linux/autoconf.h -> include/config/*
      CC      scripts/mod/empty.o
      HOSTCC  scripts/mod/mk_elfconfig
      MKELF   scripts/mod/elfconfig.h
      HOSTCC  scripts/mod/file2alias.o
      HOSTCC  scripts/mod/modpost.o
      HOSTCC  scripts/mod/sumversion.o
      HOSTLD  scripts/mod/modpost
      HOSTCC  scripts/kallsyms
      HOSTCC  scripts/pnmtologo
      HOSTCC  scripts/conmakehash
      CHK     include/linux/version.h
      UPD     include/linux/version.h
      CC      arch/i386/kernel/asm-offsets.s
      CHK     include/asm-i386/asm_offsets.h
      UPD     include/asm-i386/asm_offsets.h
    [root@NEWLFS linux]#                              
    这样就可以建立好NVIDIA所需要的东东。
    不用编译整个内核啦,省下许多编译时间。

    可以检查以下几个文件是否存在,判断是否需要编译内核:

    /usr/src/linux/include/linux/version.h
    /usr/src/linux/include/linux/autoconf.h
    /usr/src/linux/scripts/mod/modpost
    /usr/src/linux/include/asm -----> asm-i386/(intel的CPU)

    如果上面几个文件都存在,那就不用编译内核,直接去安装NVIDIA就可以了

    Good Luck  
发表于 2005-2-15 13:03:30 | 显示全部楼层
不错不错。
回复

使用道具 举报

发表于 2005-2-15 14:31:16 | 显示全部楼层
应该在硬件那一版!文章不错的说!
回复

使用道具 举报

发表于 2005-2-16 02:01:22 | 显示全部楼层
装好后startx进去了  重启下 就进不了系统拉   
回复

使用道具 举报

 楼主| 发表于 2005-2-16 12:40:07 | 显示全部楼层
startx进入了,看见NV的徽标了吗?

重启后,进不去系统有什么错误信息?
回复

使用道具 举报

发表于 2005-3-2 16:24:19 | 显示全部楼层
补充一小下:编译内核时不要将Graphics support-> nVidia Riva support 编译进内核,否则安装NV驱动时会报冲突的。
回复

使用道具 举报

发表于 2005-3-8 20:12:28 | 显示全部楼层

死机

我的rh9 gforce2 mx的显卡,装上后经常死机,要热启动才行
有时还花屏
应该是驱动的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-6-6 08:02 , Processed in 0.093056 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表