安装NVIDIA-6629小记
发表于:2007-05-26来源:作者:点击数:
标签:
今天忽然想玩玩PS 游戏 ,没安装显卡驱动,玩不了,昨天编译N次内核 留下了编译后的内核源码,顺便把NVIDIA- Linux -x86-1.0-6629-pkg1.run 安装上吧,正好看到论坛有人问如何安装这个驱动。记下来,也许会对 newbie有点帮助 ^_^ ChangeLog: 加入在X-window
今天忽然想玩玩PS
游戏,没安装显卡驱动,玩不了,昨天编译N次内核
留下了编译后的内核源码,顺便把NVIDIA-
Linux-x86-1.0-6629-pkg1.run
安装上吧,正好看到
论坛有人问如何安装这个驱动。记下来,也许会对
newbie有点帮助 ^_^
ChangeLog:
加入在X-window下安装nvidia驱动,方便不熟悉字符操作的newbie :)
找到了安装NVIDIA驱动,正确编译内核方法,减少了内核编译的时间。
Let`s GO !
安装NVIDIA-6629需要以下几个步骤:
1.
进入字符界面,NVIDIA驱动在字符界面下安装。(也可以在X下安装,参考补充说明)
2. 安装内核源码包
3.
运行NVIDIA-Linux-x86-1.0-6629-pkg1.run 编译nvidia驱动
4. 修改X的配置文件,使用nvidia驱动
5.
如果nvidia驱动不能自动加载,需要修改系统启动脚本,使其启动时加载
下面逐步的讲述如何进行:
1. NVIDIA驱动在字符界面安装:
修改 /etc/inittab中的"id:5:initdefault:"
字段, 将5改成3
重新启动,就会进入字符界面。输入startx启动X
不同的发行版启动级别可能不同,通常会在inittab中
标识各个运行级别代表的意义:
# 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)
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的:
[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.clearcase/" target="_blank" >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/
做完这些,我去安装
NVIDIA驱动,结果编译时出错。
将内核源码编译一下,不安装,就可以正常编译了,这个问题在linux faq那栏里有写。
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/下有哪个就是那个啦。
使用文本编辑器,打开,找到下面这段:
Section "Device"
Identifier "Card0"
Driver "nv" ---> "nvidia"
-----这里要修改
VendorName "nVidia Corporation"
BoardName "NV17 [GeForce4 MX 440]"
BusID "PCI:1:0:0"
EndSection
将"nv" 改为"nvidia" 也许你的默认驱动不是nv,不管是什么,都改成nvidia
并且记下默认驱动的名字,以
便无法使用nvidia还可以恢复。:)
再找到下面这段:
Section "Module"
Load "extmod"
Load "glx"
-------->如果不存在则自己添加
#Load "dri"
------->如果存在则注释掉 不要说不会注释哦 :)
#Load "GLcore"
---->如果存在则注释掉
Load "dbe"
Load "record"
Load "xtrap"
Load "type1"
Load "freetype"
EndSection
修改好,保存退出。
查看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@NEWLFS software]#./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@NEWLFS software]#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 ^_^
原文转自:http://www.ltesting.net
|