[ubuntu12.10]已装官方源nvidia显卡驱动,升级linux内核花屏问题[已解决]
这个装官方源驱动其实很多人都会.
用那个build-essential,内核的三版本同步,就是linux-image-xxxxxx linux-headers-xxxxxx linux-source-xxxxxx.这3个版本要一致,多版本并存可以,但是最新版的3个版本要一直才能成功.
完了还有个新立得软件包管理器.可以方便的弄那个包的安装.
如果不缺什么其他的,应该就可以装官方源nvidia-current,比如304.88的受限驱动.
官方源好处是,版本随不是最新,但是64bit下能驱起32bit下的mesa,opengl,direct rendering,这在于玩linux游戏的时候是关键性的!比如steam的那些linux商业游戏,以及一些多平台版本的独立游戏.
还有一个好处是,官方源驱动可以和nvidia开源驱动并存,这太关键了,一旦开源驱动的安装出偏差无论大小,我得有个回退到旧的正常版本的抄底的后手啊,如果,开源xserver-xorg-video-nouveau驱动没了,命令行模式,我又不熟,大陆网速又不是像发达国家,那重装一次,那可N多小时啊...
但是吧,ubuntu经常又更新.一般般的也就算了.万一我看见了某个新版本的软件包有性能提升或者重大bug的fix.我想升,如果牵扯升级ubuntu linux内核.
这问题就来了.
原因是这样的,就算你手动装了headers,source,image,内核三版本同步,原版ubuntu的update manager在自动给你做软件包升级的时候,只给你做source和image的升级,没有headers,然后就给你dkms,depmod,initramfs了.
所以这样实际上,虽然没什么提示,dkms实际意义上是失败的.重启完了以后,再进入桌面挂的是新内核+nvidia-current驱动进的桌面.所以肯定就屏幕就花了.
所以就是说,如果没把握,那个内核升级既然已经装好显卡驱动,怕折腾,就被动了.凑合用旧版本.
如果说一定想升内核,可以这样,update manager给你列那些包要升级的时候,你看好那个新内核的版本,你手动先新立得来一下,把那个版本的headers先拿下来装了.完了,再update升级包,但是为什么不先用updater升级包,再装headers呢?
这是因为,升级的时候,就自动运行那些包的安装了.如果你不先手装对应版本的headers,那个包升级的安装直接就把新内核挂上显卡驱动了.
已安装的现在系统正在使用的linux内核,image版本的查法,用uname -r命令查.
而且还有个不人性化的地方,那个包升级安装完了以后,直接就一个点重启的选项,没别的选项,比如restart later,没有,没有这种选项,一看包升级的出叉子了,想往回找,一旦手点抽了,那就欲哭无泪了.
所以,这个还是哎...
然后呢,因为虽然装了出问题了,但是重启后,开源驱动和nvidia-current驱动是并存的.所以,这个是可以补救的.如果没手动改个乱七八糟的话.
ctrl-alt-f1切换tty1控制台,登陆.如果会命令行模式配联网,那最好.连上网.不连,如果你以前有xserver-xorg-video-nouveau包的下载也可以.
然后,sudo apt-get remove nvidia-*
删除nvidia的受限驱动(ubuntu官方源的)
然后还有一个sudo dpkg-reconfigure xserver-xorg-video-nouveau
注意命令就是 dpkg-reconfigure,不是dpkg命令加"杠reconfigure"参数,不是的,我以前搞错了,还去查dkpg命令的man,结果发现dpkg命令就没-reconfigure这选项.
这个reconfigure是干嘛呢,就是怕手动改显卡驱动相关配置文件,给小幅弄乱了.不是大幅弄乱.小幅弄乱了.完了,把配置文件刷回来,否则的话,如果以前动了不该动的,用开源驱动进桌面是可以,但是unity界面显示不了,没有dash,没有顶栏.所以如果你这时能记得那些常见linux ubuntu桌面程序的命令名,比如ctrl-alt-t可呼出控制台,gedit是文本编辑器,synaptic是新立得,ifconfig是看网卡,配合ifup,ifdown命令可以连上网卡,sudo nautilus是root权限级的文件夹管理器,firefox是网页浏览器,sudo pppoeconf可以设置adsl,sudo pon dsl-provider可以开adsl,sudo poff关adsl.等等.你要能记得命令,可以控制台呼出这些来,但是你会发现没有那个窗口边框,窗口的大小也不可调.
但是简单修改一下配置是够了.
再有如果改了grub相关的,记得,sudo update-grub
如果改了modprobe中,比如blacklist那个东西,或者相关的,记得sudo update-initramfs -u
如果改了显卡驱动关于opengl,mesa那块的库和设置conf文件之类的,记得sudo ldconfig
让新修改配置生效.
完了,才sudo shutdown -r now重启.
然后如果能行,回桌面的话,就成功用了开源驱动了.有桌面了.完了补上缺的包,比如linux-headers-3.5.0-xx-generic 之类的.完了,新立得中检查一下headers,image,source,3版本最新的同步,都装了.
完了,就可以重装nvidia-current,完了重启就好了.因为你之前装过,所以这个包应该已经下好了,所以就直接开装,不会等下载.
真是折腾.
[ubuntu12.10]已装官方源nvidia显卡驱动,升级linux内核花屏问题[已解决]
-
- 帖子: 248
- 注册时间: 2010-01-22 23:45
-
- 帖子: 248
- 注册时间: 2010-01-22 23:45
Re: [ubuntu12.10]已装官方源nvidia显卡驱动,升级linux内核花屏问题[已解决]
如果是你自己用网上的方法,手动从nvidia官方拿xxxxxx.run的那个版本linux驱动,64位版nvidia显卡驱动,你想驱动起32bit的mesa,opengl,direct rendering,你是要自己手动改那个opengl相关的xxxxxx.so的库文件的conf配置的,完了ldconfig生效新配置才行.
可以用ldd命令,看相关的opengl程序用的到底是哪儿的库文件.一般出问题都是配置文件里没指到32bit的上头去.所以32bit程序在linux 64bit用的64bit的,那自然要出问题.
至于64位下加装32bit的i386 architecture,还有源设置的选项,勾选全了没有,ia32-libs包装了否,以及mesa-utils:i386(注意此包提供glxinfo命令的32bit版,与64bit版在64bit版ubuntu上默认无法并存,这个命令的命令行输出中,能提示i386,32bit模式下direct rendering是否成功,有助于排障),这都不用说的.肯定要折腾的.
贴一下我的排障信息.这个都是正确的,设置好的版本.
命令glxinfo | more的,可以看到在64位下32bit的direct rendering是成功的,英伟达卡也识别了.注意这是64位ubuntu下加装i386的mesa-utils:i386得到的.
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_swap_control, GLX_EXT_swap_control_tear,
GLX_EXT_texture_from_pixmap, GLX_ARB_create_context,
GLX_ARB_create_context_profile, GLX_EXT_create_context_es_profile,
GLX_EXT_create_context_es2_profile, GLX_ARB_create_context_robustness,
GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
GLX_EXT_framebuffer_sRGB, GLX_NV_multisample_coverage
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
.....ctrl-c中断掉.
=-=-=-=-=-=-=
命令 ldd /usr/bin/glxinfo查看i386版的glxinfo到底用的哪个opengl库,可以看到
linux-gate.so.1 => (0xf76f5000)
libGL.so.1 => /usr/lib32/nvidia-current/libGL.so.1 (0xf75fe000) 这条比较重要,如果/usr/lib/就不对了,应该是/usr/lib32/下的,因为这是32bit的,不该去调用64bit的so文件库.
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf74c7000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf731c000)
libnvidia-tls.so.304.88 => /usr/lib32/nvidia-current/tls/libnvidia-tls.so.304.88 (0xf7318000)
libnvidia-glcore.so.304.88 => /usr/lib32/nvidia-current/libnvidia-glcore.so.304.88 (0xf5612000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf5600000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf55fb000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf55d8000)
/lib/ld-linux.so.2 (0xf76f6000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf55ac000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf55a8000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf55a1000)
=-=-==-=-=-==-=-=
然后/usr/lib/nvidia-current/下,注意这个文件夹路径,不同人不一样,没准你的是/usr/lib/nvidia-319/或者/usr/lib/nvidia-304-updates之类的.看你装得什么驱动版本了.
下头有2个设置文件.
ld.so.conf和alt_ld.so.conf
alt_ld.so.conf可能是空文件.2个文件中不管写了什么,开头都要有
/usr/lib/nvidia-current
/usr/lib32/nvidia-current
比如你的是nvidia-319,那你就写
/usr/lib/nvidia-319
/usr/lib32/nvidia-319
还有就是/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf中,也要有那2行,库的指向设置.
这样.要sudo或者root权限才能改这个.完了sudo ldconfig升级设置.
然后你再通过glxinfo和ldd命令,证验,看用的是不是32bit的库.不行重启试试.
=-=--==--=-=-=
然后如果你在64bit版的ubuntu上用steam,
我在/etc/ld.so.conf.d/下是没有steam.conf文件的.
我的ubuntu 64位steam的用的库
ldd ~/.steam/steam/ubuntu12_32/steamui.so 命令.以下是输出.
linux-gate.so.1 => (0xf7776000)
libcef.so => not found
liboverride.so => not found
libsteam.so => not found
libtier0_s.so => not found
libvstdlib_s.so => not found
libSDL2-2.0.so.0 => not found
libXrandr.so.2 => /usr/lib/i386-linux-gnu/libXrandr.so.2 (0xf6309000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf62f6000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf61bf000)
libGL.so.1 => /usr/lib32/nvidia-current/libGL.so.1 (0xf60e3000)
libpangoft2-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0 (0xf60b4000)
libpango-1.0.so.0 => /usr/lib/i386-linux-gnu/libpango-1.0.so.0 (0xf606b000)
libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf5fd0000)
libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xf5f98000)
libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf5f48000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf5e4c000)
libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xf5ced000)
libgtk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 (0xf5883000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf587a000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf584e000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf5849000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf5760000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf5744000)
/lib/ld-linux.so.2 (0xf7777000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf559a000)
libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf5590000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf556e000)
libnvidia-tls.so.304.88 => /usr/lib32/nvidia-current/tls/libnvidia-tls.so.304.88 (0xf556a000)
libnvidia-glcore.so.304.88 => /usr/lib32/nvidia-current/libnvidia-glcore.so.304.88 (0xf3863000)
libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xf385e000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf3845000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf381d000)
libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf3816000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf37d5000)
libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf37b6000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf379f000)
libgdk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 (0xf36f1000)
libpangocairo-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0 (0xf36e4000)
libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf36dc000)
libatk-1.0.so.0 => /usr/lib/i386-linux-gnu/libatk-1.0.so.0 (0xf36bb000)
libcairo.so.2 => /usr/lib/i386-linux-gnu/libcairo.so.2 (0xf35b1000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xf358f000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf3571000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf356c000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf3565000)
libXinerama.so.1 => /usr/lib/i386-linux-gnu/libXinerama.so.1 (0xf3561000)
libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xf3551000)
libXcursor.so.1 => /usr/lib/i386-linux-gnu/libXcursor.so.1 (0xf3546000)
libXcomposite.so.1 => /usr/lib/i386-linux-gnu/libXcomposite.so.1 (0xf3541000)
libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf353d000)
libpixman-1.so.0 => /usr/lib/i386-linux-gnu/libpixman-1.so.0 (0xf34a6000)
libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xf347d000)
libxcb-shm.so.0 => /usr/lib/i386-linux-gnu/libxcb-shm.so.0 (0xf3479000)
libxcb-render.so.0 => /usr/lib/i386-linux-gnu/libxcb-render.so.0 (0xf346e000)
=-=--=-==-==-
完了.sudo dkms status
输出是
nvidia-current, 304.88, 3.5.0-41-generic, x86_64: installed
=-=-=--==-=--=
sudo lsmod | grep nv的输出是
nvidia 11309140 40
=-==-=-====-=
sudo modinfo nvidia-current的输出是,其中,nvdia-current那个换成你自己的驱动的包的名字.
filename: /lib/modules/3.5.0-41-generic/updates/dkms/nvidia_current.ko
alias: char-major-195-*
version: 304.88
supported: external
license: NVIDIA
alias: pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias: pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*
alias: pci:v000010DEd*sv*sd*bc03sc02i00*
alias: pci:v000010DEd*sv*sd*bc03sc00i00*
depends:
vermagic: 3.5.0-41-generic SMP mod_unload modversions
parm: NVreg_EnableVia4x:int
parm: NVreg_EnableALiAGP:int
parm: NVreg_ReqAGPRate:int
parm: NVreg_EnableAGPSBA:int
parm: NVreg_EnableAGPFW:int
parm: NVreg_Mobile:int
parm: NVreg_ResmanDebugLevel:int
parm: NVreg_RmLogonRC:int
parm: NVreg_ModifyDeviceFiles:int
parm: NVreg_DeviceFileUID:int
parm: NVreg_DeviceFileGID:int
parm: NVreg_DeviceFileMode:int
parm: NVreg_RemapLimit:int
parm: NVreg_UpdateMemoryTypes:int
parm: NVreg_InitializeSystemMemoryAllocations:int
parm: NVreg_UseVBios:int
parm: NVreg_RMEdgeIntrCheck:int
parm: NVreg_UsePageAttributeTable:int
parm: NVreg_EnableMSI:int
parm: NVreg_MapRegistersEarly:int
parm: NVreg_RegisterForACPIEvents:int
parm: NVreg_RegistryDwords:charp
parm: NVreg_RmMsg:charp
parm: NVreg_NvAGP:int
-=-=-==-==-
用这些方法证验.
希望能帮你们一点点.测试国服完美代理的valve游戏dota2,走linux steam 64bit,完全能玩!
-完-
可以用ldd命令,看相关的opengl程序用的到底是哪儿的库文件.一般出问题都是配置文件里没指到32bit的上头去.所以32bit程序在linux 64bit用的64bit的,那自然要出问题.
至于64位下加装32bit的i386 architecture,还有源设置的选项,勾选全了没有,ia32-libs包装了否,以及mesa-utils:i386(注意此包提供glxinfo命令的32bit版,与64bit版在64bit版ubuntu上默认无法并存,这个命令的命令行输出中,能提示i386,32bit模式下direct rendering是否成功,有助于排障),这都不用说的.肯定要折腾的.
贴一下我的排障信息.这个都是正确的,设置好的版本.
命令glxinfo | more的,可以看到在64位下32bit的direct rendering是成功的,英伟达卡也识别了.注意这是64位ubuntu下加装i386的mesa-utils:i386得到的.
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_swap_control, GLX_EXT_swap_control_tear,
GLX_EXT_texture_from_pixmap, GLX_ARB_create_context,
GLX_ARB_create_context_profile, GLX_EXT_create_context_es_profile,
GLX_EXT_create_context_es2_profile, GLX_ARB_create_context_robustness,
GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
GLX_EXT_framebuffer_sRGB, GLX_NV_multisample_coverage
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
.....ctrl-c中断掉.
=-=-=-=-=-=-=
命令 ldd /usr/bin/glxinfo查看i386版的glxinfo到底用的哪个opengl库,可以看到
linux-gate.so.1 => (0xf76f5000)
libGL.so.1 => /usr/lib32/nvidia-current/libGL.so.1 (0xf75fe000) 这条比较重要,如果/usr/lib/就不对了,应该是/usr/lib32/下的,因为这是32bit的,不该去调用64bit的so文件库.
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf74c7000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf731c000)
libnvidia-tls.so.304.88 => /usr/lib32/nvidia-current/tls/libnvidia-tls.so.304.88 (0xf7318000)
libnvidia-glcore.so.304.88 => /usr/lib32/nvidia-current/libnvidia-glcore.so.304.88 (0xf5612000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf5600000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf55fb000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf55d8000)
/lib/ld-linux.so.2 (0xf76f6000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf55ac000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf55a8000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf55a1000)
=-=-==-=-=-==-=-=
然后/usr/lib/nvidia-current/下,注意这个文件夹路径,不同人不一样,没准你的是/usr/lib/nvidia-319/或者/usr/lib/nvidia-304-updates之类的.看你装得什么驱动版本了.
下头有2个设置文件.
ld.so.conf和alt_ld.so.conf
alt_ld.so.conf可能是空文件.2个文件中不管写了什么,开头都要有
/usr/lib/nvidia-current
/usr/lib32/nvidia-current
比如你的是nvidia-319,那你就写
/usr/lib/nvidia-319
/usr/lib32/nvidia-319
还有就是/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf中,也要有那2行,库的指向设置.
这样.要sudo或者root权限才能改这个.完了sudo ldconfig升级设置.
然后你再通过glxinfo和ldd命令,证验,看用的是不是32bit的库.不行重启试试.
=-=--==--=-=-=
然后如果你在64bit版的ubuntu上用steam,
我在/etc/ld.so.conf.d/下是没有steam.conf文件的.
我的ubuntu 64位steam的用的库
ldd ~/.steam/steam/ubuntu12_32/steamui.so 命令.以下是输出.
linux-gate.so.1 => (0xf7776000)
libcef.so => not found
liboverride.so => not found
libsteam.so => not found
libtier0_s.so => not found
libvstdlib_s.so => not found
libSDL2-2.0.so.0 => not found
libXrandr.so.2 => /usr/lib/i386-linux-gnu/libXrandr.so.2 (0xf6309000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf62f6000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf61bf000)
libGL.so.1 => /usr/lib32/nvidia-current/libGL.so.1 (0xf60e3000)
libpangoft2-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0 (0xf60b4000)
libpango-1.0.so.0 => /usr/lib/i386-linux-gnu/libpango-1.0.so.0 (0xf606b000)
libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf5fd0000)
libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xf5f98000)
libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf5f48000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf5e4c000)
libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xf5ced000)
libgtk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 (0xf5883000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf587a000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf584e000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf5849000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf5760000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf5744000)
/lib/ld-linux.so.2 (0xf7777000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf559a000)
libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf5590000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf556e000)
libnvidia-tls.so.304.88 => /usr/lib32/nvidia-current/tls/libnvidia-tls.so.304.88 (0xf556a000)
libnvidia-glcore.so.304.88 => /usr/lib32/nvidia-current/libnvidia-glcore.so.304.88 (0xf3863000)
libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xf385e000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf3845000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf381d000)
libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf3816000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf37d5000)
libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf37b6000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf379f000)
libgdk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 (0xf36f1000)
libpangocairo-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0 (0xf36e4000)
libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf36dc000)
libatk-1.0.so.0 => /usr/lib/i386-linux-gnu/libatk-1.0.so.0 (0xf36bb000)
libcairo.so.2 => /usr/lib/i386-linux-gnu/libcairo.so.2 (0xf35b1000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xf358f000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf3571000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf356c000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf3565000)
libXinerama.so.1 => /usr/lib/i386-linux-gnu/libXinerama.so.1 (0xf3561000)
libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xf3551000)
libXcursor.so.1 => /usr/lib/i386-linux-gnu/libXcursor.so.1 (0xf3546000)
libXcomposite.so.1 => /usr/lib/i386-linux-gnu/libXcomposite.so.1 (0xf3541000)
libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf353d000)
libpixman-1.so.0 => /usr/lib/i386-linux-gnu/libpixman-1.so.0 (0xf34a6000)
libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xf347d000)
libxcb-shm.so.0 => /usr/lib/i386-linux-gnu/libxcb-shm.so.0 (0xf3479000)
libxcb-render.so.0 => /usr/lib/i386-linux-gnu/libxcb-render.so.0 (0xf346e000)
=-=--=-==-==-
完了.sudo dkms status
输出是
nvidia-current, 304.88, 3.5.0-41-generic, x86_64: installed
=-=-=--==-=--=
sudo lsmod | grep nv的输出是
nvidia 11309140 40
=-==-=-====-=
sudo modinfo nvidia-current的输出是,其中,nvdia-current那个换成你自己的驱动的包的名字.
filename: /lib/modules/3.5.0-41-generic/updates/dkms/nvidia_current.ko
alias: char-major-195-*
version: 304.88
supported: external
license: NVIDIA
alias: pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias: pci:v000010DEd00000AA3sv*sd*bc0Bsc40i00*
alias: pci:v000010DEd*sv*sd*bc03sc02i00*
alias: pci:v000010DEd*sv*sd*bc03sc00i00*
depends:
vermagic: 3.5.0-41-generic SMP mod_unload modversions
parm: NVreg_EnableVia4x:int
parm: NVreg_EnableALiAGP:int
parm: NVreg_ReqAGPRate:int
parm: NVreg_EnableAGPSBA:int
parm: NVreg_EnableAGPFW:int
parm: NVreg_Mobile:int
parm: NVreg_ResmanDebugLevel:int
parm: NVreg_RmLogonRC:int
parm: NVreg_ModifyDeviceFiles:int
parm: NVreg_DeviceFileUID:int
parm: NVreg_DeviceFileGID:int
parm: NVreg_DeviceFileMode:int
parm: NVreg_RemapLimit:int
parm: NVreg_UpdateMemoryTypes:int
parm: NVreg_InitializeSystemMemoryAllocations:int
parm: NVreg_UseVBios:int
parm: NVreg_RMEdgeIntrCheck:int
parm: NVreg_UsePageAttributeTable:int
parm: NVreg_EnableMSI:int
parm: NVreg_MapRegistersEarly:int
parm: NVreg_RegisterForACPIEvents:int
parm: NVreg_RegistryDwords:charp
parm: NVreg_RmMsg:charp
parm: NVreg_NvAGP:int
-=-=-==-==-
用这些方法证验.
希望能帮你们一点点.测试国服完美代理的valve游戏dota2,走linux steam 64bit,完全能玩!
-完-
-
-
- 帖子: 248
- 注册时间: 2010-01-22 23:45
Re: [ubuntu12.10]已装官方源nvidia显卡驱动,升级linux内核花屏问题[已解决]
再有就是ubuntu官方源nvidia闭源驱动更新跟不上nvidia官方发布,又不想用nvidia原版xxxxxx.run的那个驱动安装包,想用新版驱动,
我个人啊,我个人,推荐这个源.xorg-edgers
sudo apt-add-repository ppa:xorg-edgers/ppa
不过装完以后,64位的起32位的opengl,你可能那个ld.so.conf还是要改,还是要手动改.确实不是一劳永逸的.
再有,装驱动的时候,应该会有nvidia-settings这个包,没有不行自己装1个.命令也是sudo nvidia-settings,不过你不会调里头的设置,可别乱改.那个是图形界面的工具,也可以看到是否有direct rendering,opengl/glx那里,但是那个direct rendering在linux 64位下是64bit的,不是64位调用32bit会如何如何的,所以那里的direct rendering,是yes,只能说,你64位的应用程序,调用opengl按理说正常,但是32位的不一定...不一定.仍然可能会报错说有问题.
-ok了-
我个人啊,我个人,推荐这个源.xorg-edgers
sudo apt-add-repository ppa:xorg-edgers/ppa
不过装完以后,64位的起32位的opengl,你可能那个ld.so.conf还是要改,还是要手动改.确实不是一劳永逸的.
再有,装驱动的时候,应该会有nvidia-settings这个包,没有不行自己装1个.命令也是sudo nvidia-settings,不过你不会调里头的设置,可别乱改.那个是图形界面的工具,也可以看到是否有direct rendering,opengl/glx那里,但是那个direct rendering在linux 64位下是64bit的,不是64位调用32bit会如何如何的,所以那里的direct rendering,是yes,只能说,你64位的应用程序,调用opengl按理说正常,但是32位的不一定...不一定.仍然可能会报错说有问题.
-ok了-
-