fudaming 发表于 2004-10-15 10:05:38

Fedora3Test3最新的内核NV驱动安装方法

昨天我在nvnews上找了半天终于找到了解决办法。因为test3最新的内核是2.6.9rc3的,那么这个办法对用2.6.9rc3内核的朋友兴许也有用。

我在运行run文件,编译的时候,出现错误,告诉我
nvidia: Unknown symbol_VMALLOC_RESERVE

按照nvnews的办法,我解开run的安装包,
#./NVIDIA-Linux-x86-1.0-6111-pkg1.run -x
进入驱动的源代码目录,给nv.c文件打补丁,其实就是在开头加一句话
NVIDIA-Linux-x86-1.0-6111-pkg1/usr/src/nv/nv.c

#include "nv-misc.h"
#include "os-interface.h"
#include "nv-linux.h"
#include "nv_compiler.h"
#include "os-agp.h"

#ifdef MODULE_ALIAS_CHARDEV_MAJOR
MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER);
#endif

//就是加下面的一句
unsigned int __VMALLOC_RESERVE = 128 << 20;

然后运行包里面的安装程序,记得退出X,
#init 3
#cd NVIDIA-Linux-x86-1.0-6111-pkg1
#./nvidia-installer

这样就象正常的安装,完成它就可以了。


但是在test3中还有问题,也许你重新启动,系统不能自动进入init 5来运行。X会报错,说不能初始化nvidia的驱动,但是用modprobe nvidia却什么事都没有,之后也能正常进入X 。其实是udev的问题,udev在启动的时候没有生成驱动要求的设备,那么自己在启动脚本里加上就可以了,我是这么做的:
打开/etc/rc.sysinit
在udev start以后加上两行
mknod /dev/nvidia0 c 195 0
mknod /dev/nvidiactl c 195 255
最后的结果是这样的
# Fix console loglevel
if [ -n "$LOGLEVEL" ]; then
/bin/dmesg -n $LOGLEVEL
fi

if [ -f /etc/udev/udev.conf ];then
. /etc/udev/udev.conf
fi

[ -x /sbin/start_udev ] && /sbin/start_udev

mknod /dev/nvidia0 c 195 0
mknod /dev/nvidiactl c 195 255

# Initialize hardware
if [ -f /proc/sys/kernel/modprobe ]; then
if ! strstr cmdline nomodules && [ -f /proc/modules ] ; then
sysctl -w kernel.modprobe="/sbin/modprobe" >/dev/null 2>&1
sysctl -w kernel.hotplug="/sbin/hotplug" >/dev/null 2>&1

这样就万事OK了,我现在为止运行的很好,注意升级rpm以后看看系统有没有改动修改过的配置文件,如果改过了,那就要改回来,不然下次启动就又不行了。


下面是修改过的
其实上面的方法有一个缺陷,就像所说的,升级过initscripts这个包以后,/etc/rc.sysinit 会被改回来。最近,看到官方网站上有关于这个问题的bug解决方法,原来udev还留下了一个方便法门,不常用的设备,需要自己生成的,可以放在/etc/udev/devices 里,这样每次开机就不会有问题了。

所以呢,关于这个问题,可以在安装完毕NV的驱动以后运行这样两个命令来方便的解决问题。
mknod /etc/udev/devices/nvidia0 c 195 0
mknod /etc/udev/devices/nvidiactl c 195 255
如此一来,就不用每次升级完initscripts 之后再来修改配置了。



加上我查到的论坛地址

http://www.nvnews.net/vbulletin/showthread.php?t=38562
http://www.nvnews.net/vbulletin/showthread.php?t=38384
http://www.nvnews.net/vbulletin/showthread.php?t=38646
http://www.nvnews.net/vbulletin/showthread.php?t=38398

我估计fedora3会用2.6.9的内核,按照nvnews的说法,内核的开发小组肯定不会为这个加补丁,fedora的开发小组也一样,因此可能这个方法到最后fedora3发布以后,也应该有用的。

fudaming 发表于 2004-10-15 17:39:59

:mrgreen::mrgreen::mrgreen:

好东西,不能沉了,免得到时候一堆人来问。

stillwater 发表于 2004-10-21 12:30:05

6111在2.6.9-bk4上

我是这样做的:

在usr/src/nv/nv.c 增加
unsigned int __VMALLOC_RESERVE = 128 << 20;

打http://00f.net/blogs/index.php/2004/09/07/nvidia_kernel_module_and_linux_2_6_9_mm中的两个补丁

然后编译,安装成功。

stillwater 发表于 2004-10-23 22:54:29

6111 在 2.6.9-mm1上:

http://kernel.damouse.co.uk/nvidia-kernel-1.0.6111-r3.tar.bz2

照 Gentoo 的 ebuild 打patch就好。

原文链接在 http://www.nvnews.net/vbulletin/showthread.php?t=38827

suowei1979 发表于 2004-10-26 17:06:28

good

寒秋 发表于 2004-11-6 22:07:10

我也是莫名其妙地装上了NV的驱动程序。
不知道是哪里进行了设置,反正是试了很多方法,终于在fedora core 3装上了驱动。感觉显示的速度好多了。

不知道是不是我在启动菜单上添加了vga=0x314这个的缘故?让它把显示器的分辨率自动设置为800*600,所以没有提示在加载模块时要输入参数。

经过几次的安装,才发现只要按照上面所说的安装方法,虽然执行./nvidia-installer时会提示出错,但重新安装的sh .run文件后,再修改rc.sysinit文件,系统引导时就可以正常使用nvidia的驱动了。

fudaming 发表于 2004-11-18 15:21:03

小修改了一把,毕竟改配置文件又麻烦,又容易出错,而且还不直接,不如用命令来得快。

latam_2008 发表于 2004-11-29 20:20:40

我的FC 3 装了.run的文件就不行了!晕!

latam_2008 发表于 2004-11-29 20:28:20

装可以装上!就是好像还不如原先的好的啊!!显示器闪得厉害啊!!!!

latam_2008 发表于 2004-12-1 16:52:32

我装fedora core 3显卡驱动时候说少了个模块啊!!!怎么办啊!!!!
我也按上面的做了怎么办啊!!!
页: [1]
查看完整版本: Fedora3Test3最新的内核NV驱动安装方法