LinuxGem
此处为老的 LinuxGem,新版 LinuxGem 请移步 www.linuxgem.org

试用 Nvidia Linux 驱动 180.06

galeki posted @ 2008年11月16日 09:49 in 系统与硬件管理 with tags nvidia 驱动 linux , 8277 阅读

前两天 Nvidia 刚刚发布了 177.82 的 Linux 驱动,转眼间,Nvidia 又将带有许多新特性的 180.06 beta 驱动呈现给广大 Linux 用户,这阵子 Nvidia 的用户比较幸福 

你可以在这里下载最新的 180.06 驱动,x86_64 的在这里

官方的更新内容如下:

Release Highlights

  • Added support for CUDA 2.1.

  • Added initial support for PureVideo-like features on Linux via the new VDPAU API (see the vdpau.h header file installed withthe driver).

  • Added new workstation performance optimizations.

  • Enabled the X Render "GlyphCache" by default.

  • Disabled shared memory X pixmaps by default; see the“AllowSHMPixmaps" option.

  • Fixed a regression that could result in window decorationcorruption when running Compiz using Geforce 6 and 7 series GPUs.

  • Improved X pixmap placement on GeForce 8 series and later GPUs.

  • Improved compatibility with recent Linux kernels.

  • Improved stability on some GeForce 8 series and newer GPUs.

除了将一些 170 时代需要手动加入的优化参数设置为默认值之外,还针对 GeForce 8 系列进行了一些列的性能优化。

我本地的显卡为 8600GTS,用 Gtkperf 来测试 2D 性能,相比之前大概快了 20%:

1000 rounds 的 Gtkperf 测试,之前要大概 55s,现在只要 40s

对于 Firefox 渲染慢,和正在用 KDE4 的同学,180.06 的驱动值得一试~

当然这个并不是 180.06 的重点,想必大家已经知道了,180 中最重要的更新就是新增的 VDPAU API 接口,可以给 Linux 提供类似于 PureVideo 的视频硬件加速功能~ 这样在 Linux 下,也可以轻松流畅的播放巨型的 H264 之类的视频了~

使用 Nvidia 打过 VDPAU 补丁的 Mplayer,就可以体验一下 VDPAU 的魅力啦~ 安装这个补丁版的 Mplayer 方法如下:

先下载补丁文件: mplayer-vdpau-3076399.tar.bz2

解压之后进入 mplayer-vdpau-3076399 目录,之后执行:

$ ./ checkout-patch-build.sh

这个脚本会自动从 svn 上迁出对应版本的 Mplayer 和解码库,然后自动开始编译。

如果你在编译中碰到了类似下面的错误:

libx264.c:165: error: 'x264_param_t' has no member named 'b_bframe_adaptive'
libx264.c:230: error: 'struct <anonymous>' has no member named 'b_bidir_me'
libx264.c:231: error: 'struct <anonymous>' has no member named 'b_bframe_rdo'
libx264.c:256: error: 'struct <anonymous>' has no member named 'psz_rc_eq'
make[1]: *** [libx264.o] Error 1

那么可以按照下面的方法临时解决:

首先在 mplayer-vdpau/libavcodec/libx264.c 这个源代码文件中,删除下面的行:

x4->params.analyse.b_bidir_me = avctx->bidir_refine > 0;
x4->params.analyse.b_bframe_rdo = avctx->flags2 & CODEC_FLAG2_BRDO;
x4->params.rc.psz_rc_eq = avctx->rc_eq;

然后将:

x4->params.b_bframe_adaptive = avctx->b_frame_strategy;

替换为:

x4->params.i_bframe_adaptive = avctx->b_frame_strategy;

这样应该可以正确编译安装,如果还是出错,先确认下系统中是否装有 Mplayer 所需的库,也可以尝试降级 GCC,如果还是未果,可以去这个帖子查看或者询问其他的解决办法。

编译好新的 Mplayer 之后,就可以尝试用新的 VDPAU 接口播放视频文件了:

./mplayer -vo vdpau -vc ffmpeg12vdpau xxxxx.mpg     // 播放 MPEG 文件
./mplayer -vo vdpau -vc ffh264vdpau   xxxxx.h264    // 播放 H.264 文件
./mplayer -vo vdpau -vc ffwmv3vdpau   xxxxx.wmv     // 播放 WMV3 文件
./mplayer -vo vdpau -vc ffvc1vdpau    xxxxx.wmv     // 播放 VC-1 文件

不同的视频文件类型,需要通过 -vc 参数指定不同的解码库, -vo vdpau 即是使用最新的 VDPAU 接口来输出视频图像了~

不幸的是,我硬盘上唯一的一个 H264 文件播放失败,只好去下载了一个 H264 测试视频 ,播放的效果相当令人满意。

在不使用 VDPAU 的情况下,播放这个文件时,CPU 占用率保持在 20% 左右,使用了 VDPAU 之后,CPU 的占用率几乎为 0 ~

另外的一个 VC-1 测试视频,播放 CPU 占用率也从之前的 60%,降低到 15% 左右。对于在 Linux 看高清视频的人来说,是绝对的福音~

你也可以去看看 Phoronix 的详细评测

当然,并不是所有型号的 Nvidia 显卡都支持这个 VDPAU,你可以阅读这个 PureVideo Support Table,来查看不同 Nvidia 显卡对各种视频格式的加速支持情况,但这只是 Windiows 驱动的支持情况,Linux 驱动目前似乎只支持在 Geforce 8 系列及以上的显卡上使用 VDPAU 功能。

总的来说,180.06 的确让人惊喜,只要你的 Nvidia 显卡不是太老,都能从中获得更好的体验。驱动的更新频率也很让人欣慰,希望能够早日和 Windows 下的驱动相媲美 

YuLei666 说:
2008年11月16日 17:11

硬件解码是个好东西 不知道GF7300行不行 一会试试去

YuLei666 说:
2008年11月16日 18:04

果然不支持 显卡再次被鄙视。。。。
Error at libvo/vo_vdpau.c:179

算了,没法子了

lh 说:
2008年11月16日 19:43

居然是4核的cpu,米有可比性

ztt 说:
2008年11月17日 03:12

7系列的路过……

wzhy 说:
2008年11月17日 17:10

8600GT!我得回家试试!
谢谢您的介绍!

BreakDS 说:
2008年11月26日 06:13

试了,Debian lenny,装起来很顺利,但是装完以后进不去gdm
换成原来的xorg.conf就可以,但是说nvidia的驱动没有启动。。。
显卡是9600GT,难道不被支持?

Head_small
galeki 说:
2008年11月30日 01:32

9600 应该可以支持,新版的 180.08 可以吗?

BreakDS 说:
2008年11月30日 06:25

180.08我去看的时候已经没有的下载了,不知道为什么。
原来的180.06,在启动X的时候会说
(EE) Failed to load module "type1"
我不理解是怎么回事。

shili 说:
2008年12月01日 04:46

注释掉那type1模块试试看

BreakDS 说:
2008年12月01日 05:43

试过了,那样的话直接最后说不能载入nvidia模块。

Head_small
galeki 说:
2008年12月02日 05:48

@BreakDS: 完整的 xorg.conf 和错误信息是啥?

BreakDS 说:
2008年12月03日 06:21

Xorg.0.log里面和它相关的是这些:
(II) Setting vga for screen 0.
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA(0): RGB weight 888
(==) NVIDIA(0): Default visual is TrueColor
(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
(**) NVIDIA(0): Enabling RENDER acceleration
(II) NVIDIA(0): Support for GLX with the Damage and Composite X extensions is
(II) NVIDIA(0): enabled.
(EE) NVIDIA(0): Failed to load the NVIDIA kernel module!
(EE) NVIDIA(0): *** Aborting ***
(II) UnloadModule: "nvidia"
(II) UnloadModule: "wfb"
(II) UnloadModule: "fb"
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found

完整的xorg.conf是:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 1.0 (buildmeister@builder57) Sat Nov 8 12:48:43 PST 2008

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "Module"
Load "dbe"
Load "extmod"
Load "freetype"
Load "glx"
EndSection

Section "InputDevice"

# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection

Head_small
galeki 说:
2008年12月04日 04:48

看不出端倪,可以尝试删除 xorg,让 X 自动生成一下 xorg.conf 试试看,今天驱动又更新了,如果新版还是不行,可能确实是兼容性问题。

BreakDS 说:
2008年12月06日 02:32

嗯,那样的话不是还是没有装载驱动吗?
今天驱动更新了? 去哪里看?

BreakDS 说:
2008年12月06日 02:45

为什么不管是180.08还是180.11我都找不到地方下载?
官方的ftp相应的目录又是空的!

shili 说:
2008年12月06日 10:44

可以下的,是不是地址打错了?
ftp://download.nvidia.com/XFree86/Linux-x86/180.11/

BreakDS 说:
2008年12月06日 16:05

下了,问题依旧。
说找不到\sbin\lrm-video
于是我touch了一个,结果过了,但是新的问题是说没有
\dev\nvidiactl,但是那个设备明明在。
而且它还说没有找到匹配类型的Nvidia GPU。。。
但是lspci有:
01:00.0 VGA compatible controller: nVidia Corporation GeForce 9600M GT (rev a1)


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter