快速业务通道

安装nvidia for FreeBSD驱动的一点儿注解

作者 佚名技术 来源 操作系统 浏览 发布时间 2012-06-28

在一台装有 GeForce 6600 的机器上安装nvidia驱动,使用的是如下ports

/usr/ports/x11/nvidia-driver
/usr/ports/x11/nvidia-settings
/usr/ports/x11/nvidia-xconfig

安装nvidia-driver时,从驱动文件下载到make install都正常,没有安装linux兼容部分,发现在安装过程中并没有完成nvidia.ko的配置过程,有些纳闷,权宜之计是手动在/boot/loader.conf中添加:

nvidia_load="YES"

启动kdm,可以看到nvidia的欢迎画面了,利用nvidia-xconfig完成了xorg.conf的配置,启动kde后运行nvidia-settings,设置了刷新率,这个刷新率的设置是可以保存在xorg.conf中的,所有工作做完以后,我的xorg.conf是这样的。

Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
RgbPath "/usr/local/share/X11/rgb"
ModulePath "/usr/local/lib/xorg/modules"
FontPath "/usr/local/lib/X11/fonts/misc/"
FontPath "/usr/local/lib/X11/fonts/TTF/"
FontPath "/usr/local/lib/X11/fonts/OTF"
FontPath "/usr/local/lib/X11/fonts/Type1/"
FontPath "/usr/local/lib/X11/fonts/100dpi/"
FontPath "/usr/local/lib/X11/fonts/75dpi/"
FontPath "/usr/local/lib/X11/fonts/local/"
EndSection

Section "Module"
Load "dbe"
Load "extmod"
Load "glx"
Load "record"
Load "xtrap"
Load "freetype"
Load "type1"
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"

#DisplaySize 310 230 # mm
### Comment all HorizSync and VertRefresh values to use DDC:
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Philips PH107C/F/H/T6"
HorizSync 30.0 - 71.0
VertRefresh 50.0 - 160.0
Option "DPMS"
EndSection

Section "Device"

### Available Driver options are:-
### Values: : integer, : float, : "True"/"False",
### : "String", : " Hz/kHz/MHz"
### [arg]: arg optional
#Option "SWcursor" # []
#Option "HWcursor" # []
#Option "NoAccel" # []
#Option "ShadowFB" # []
#Option "UseFBDev" # []
#Option "Rotate" # []
#Option "VideoKey" #
#Option "FlatPanel" # []
#Option "FPDither" # []
#Option "CrtcNumber" #
#Option "FPScale" # []
#Option "FPTweak" #
#Option "DualHead" # []
Identifier "Card0"
Driver "nvidia"
VendorName "nVidia Corporation"
BoardName "NV43 [GeForce 6600]"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 6600"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "CRT: 1024x768_85 +0+0; CRT: 1024x768 +0+0"
SubSection "Display"
Depth 24
Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

#Section "Extensions"
# Option "Composite" "Enable"
#EndSection

为了测试3D加速效果,安装了如下ports

/usr/ports/graphics/mesa-demos

glxinfo glxpears等测试程序都是在这个ports中,但是在make时,在一些测试程序中报错无法继续进行下去,主要是一些 ...MESA 函数,查看 /usr/local/include/GL/glx.h 文件,里面也不存在对应的函数,费了一番周折进行了修改,但是整体编译还是不成功。

细究了一下 GL 对应的头文件,发现在nvidia驱动安装以后,nvidia不同程度的覆盖了原来系统的MESA3D的一些文件。

/usr/local/lib/libGL.so.1的pkg_info信息如下:

both libGL-7.0.1 and nvidia-driver-100.14.19,也就是两个ports都包含这个,从日期上看,nvidia的覆盖了原来的。

libGL-7.0.1的文件列表如下:

Information for libGL-7.0.1:

Files:
/usr/local/include/GL/gl.h
/usr/local/include/GL/glext.h
/usr/local/include/GL/glx.h
/usr/local/include/GL/glxext.h
/usr/local/lib/libGL.so
/usr/local/lib/libGL.so.1

目录下的libGLU.so.1没有被覆盖,它属于libGLU-7.0.1软件包

文件列表如下:

Information for libGLU-7.0.1:

Files:
/usr/local/include/GL/glu.h
/usr/local/lib/libGLU.so
/usr/local/lib/libGLU.so.1

对比nvidia的文件列表可以发现,nvidia替换了libGL.so.1这个库,所用的头文件放在了

/usr/local/share/doc/NVIDIA_GLX-1.0/gl.h
/usr/local/share/doc/NVIDIA_GLX-1.0/glext.h
/usr/local/share/doc/NVIDIA_GLX-1.0/glx.h
/usr/local/share/doc/NVIDIA_GLX-1.0/glxtokens.h

我想这可能是mesa-demos没有安装成功的一个原因,但没有具体的确定

小节:OPENGL的库还是蛮复杂的,感觉里面也是有不少的陷阱

PS:混合特效一直不太成功,在xorg.conf添加了options也不行,不知道是kde 3.5.8还是X以及nvidia的问题!

附上nvidia-driver的文件列表,以后参考:-)

Information for nvidia-driver-100.14.19:

Files:
/usr/local/lib/libGL.so.1
/usr/local/lib/libGLcore.so.1
/usr/local/lib/libXvMCNVIDIA.so.1
/usr/local/lib/libnvidia-cfg.so.1
/usr/local/lib/libnvidia-tls.so.1
/usr/local/lib/libXvMCNVIDIA.a
/usr/local/lib/xorg/modules/libnvidia-wfb.so.1
/usr/local/lib/xorg/modules/drivers/nvidia_drv.so
/usr/local/lib/xorg/modules/extensions/libglx.so.1
/boot/modules/nvidia.ko
/usr/local/share/doc/NVIDIA_GLX-1.0/README
/usr/local/share/doc/NVIDIA_GLX-1.0/XF86Config.sample
/usr/local/share/doc/NVIDIA_GLX-1.0/gl.h
/usr/local/share/doc/NVIDIA_GLX-1.0/glext.h
/usr/local/share/doc/NVIDIA_GLX-1.0/glx.h
/usr/local/share/doc/NVIDIA_GLX-1.0/glxtokens.h
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-a.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-b.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-c.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-d.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-e.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-f.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-g.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-h.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-i.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/appendix-j.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-01.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-02.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-03.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-04-section-02.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-04.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-05.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-06.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-07.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-08.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/index.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-09.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-10.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-11.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-12.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-13.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-14.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-15.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-16.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-17.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-18.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-19.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-20.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-21.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-22.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-23.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/chapter-24.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/part-01.html
/usr/local/share/doc/NVIDIA_GLX-1.0/html/part-02.html
/usr/local/share/doc/NVIDIA_GLX-1.0/license.txt

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号