Advertisement

Ubuntu 12.04 下安装 openGL 驱动时,究竟做了什么事?

阅读量:

Ubuntu 下安装 openGL 驱动的确把我折腾惨了

本人机器是 HP 的使用 i5 的集成显卡

安装了 Intel 的安装程序(Intel Linux Graphics Installer 1.0.1 amd64.deb),这些安装程序不适用于 Ubuntu 12.04 版本

找了一台老旧的ATI X1300显卡。该驱动仅兼容Ubuntu 8.x及9.x系统版本。这让我意识到计算机作为消费电子产品确实存在时效性问题。

只好买了一个 Nvidia GT610 显卡,下载官方的 NVIDIA-Linux-x86_64-331.49.run, 顺利装上了

这驱动做了如下的事情:

  1. 把驱动装到 Kernel 中 ( 我升级了 Kernel ,又了重装驱动 )

替换成 Nvidia 的(通过运行ldd命令可以轻松确定),同时需要将Nvidia自身的.so文件复制到相同的目录下

复制代码
 ldd /usr/lib/libGL.so

    
     linux-vdso.so.1 =>  (0x00007fffe91ff000)
    
     libnvidia-tls.so.331.49 => /usr/lib/tls/libnvidia-tls.so.331.49 (0x00007fa1a58c0000)
    
     libnvidia-glcore.so.331.49 => /usr/lib/libnvidia-glcore.so.331.49 (0x00007fa1a30b1000)
    
     libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa1a2d7b000)
    
     libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fa1a2b6a000)
    
     libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa1a27aa000)
    
     libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa1a25a5000)
    
     libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa1a22a9000)
    
     libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fa1a208b000)
    
     /lib64/ld-linux-x86-64.so.2 (0x00007fa1a5e15000)
    
     libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fa1a1e87000)
    
     libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fa1a1c81000)

对于 i386 的支持库,放在/usr/lib32中

复制代码
 ldd /usr/lib32/libGL.so

    
     linux-gate.so.1 =>  (0xf7718000)
    
     libnvidia-tls.so.331.49 => /usr/lib32/tls/libnvidia-tls.so.331.49 (0xf75f1000)
    
     libnvidia-glcore.so.331.49 => /usr/lib32/libnvidia-glcore.so.331.49 (0xf53ac000)
    
     libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf5277000)
    
     libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf5265000)
    
     libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf50bb000)
    
     libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf50b6000)
    
     libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf508a000)
    
     libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf5068000)
    
     /lib/ld-linux.so.2 (0xf7719000)
    
     libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf5064000)
    
     libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf505d000)

开发 Android 时使用 , Android 使用 i386是从 /usr/lib/i386-linux-gnu 装载

所以要把 lib32 中所有文件复制到 /usr/lib/i386-linux-gnu

3) Xorg相关

Xorg是开源的 Xserver 实现

NVIDIA GPU驱动库需要与Xorg系统集成,并且需要将相应的共享库放置在/usr/lib/xorg/modules目录下。同时需要修改位于/usr/etc/X11下的相关配置文件以完成集成过程。

xorg.conf

让 Xorg加载 so

复制代码
 Section "Module"

    
     Load           "record"
    
     Load           "extmod"
    
     Load           "dbe"
    
     Load           "dri2"
    
     Load           "glx"
    
 EndSection

装载 /usr/lib/xorg/modules/extensions/ 下面的 libglx.so, libdri2.so

让 Xorg 加载 nvida 驱动

复制代码
 Section "Device"

    
     Identifier     "Card0"
    
     Driver         "nvidia"
    
     BusID          "PCI:1:0:0"
    
 EndSection

附带转帖

Ubuntu通过重新生成/etc/X11/xorg.conf文件来调整分辨率

http://blog.chinaunix.net/uid-25909722-id-3019407.html

使用快捷键 Ctrl+Alt+F₁,并执行sudo service gdm stop命令。
打开Xorg配置文件,并在生成文件~/xorg.conf.new时进行设置。
启用GDM服务。
将生成的配置文件复制至标准位置。
启用GTFOO模式,并设置分辨率、颜色和其他选项。
然后将上一步中gtf命令生成的内容:
Modeline “...” ...
插入到/etc/Xll/xorg.conf中:
Section “ Monitor ”
Identifier “ Monitor₀ ”
VendorName “ Monitor Vendor ”
ModelName “ Monitor Model ”
Modeline “ ...” 插入到 ... 中:
EndSection
完成配置后重启系统。

无需生成xorg.conf文件并仅需短暂调整分辨率即可实现。
具体步骤如下:
通过命令cvtx将分辨率设置为~
启动新模式为'宽度×高度_刷新率'参数列表 -hsync +vsync。
添加模式至VGA接口。
将指定模式设为主输出。
即可实现短暂的分辨率调整。

全部评论 (0)

还没有任何评论哟~