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, 顺利装上了
这驱动做了如下的事情:
- 把驱动装到 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接口。
将指定模式设为主输出。
即可实现短暂的分辨率调整。
