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

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

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

下载了 intel 的 installer (intel-linux-graphics-installer_1.0.1_amd64.deb ),他们不支持 Ubuntu 12.04, 只支持 13.x

找了个 ATI x1300 的老显卡,官方的驱动(ati-driver-installer-9-3-x86.x86_64.run)只支持了 Ubuntu 8.x 9.x (让我深感,计算机真是消费品,过时了就用不起来了 )

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

这驱动做了如下的事情:

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

2) 把 /usr/lib/libGL.so 替换为 Nvidia 的(用 ldd 看就知道了),当然要把nvidia 自己的 so 也copy 到,这几个目录

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 要与Xorg集成的库,放在usr/lib/xorg/modules下面,并改下 /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

1. Ctrl+Alt+F1 , sudo service gdm stop
2. sudo Xorg -configure (生成文件 ~/xorg.conf.new)
3. sudo service gdm start
4. mv ~/xorg.conf.new /etc/X11/xorg.conf
5. gtf 1280 1024 60 -x
6. 然后将上一步中gtf命令生成的内容:
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
插入到/etc/X11/xorg.conf中:
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
EndSection
重新启动X。搞定。


如果不想生成xorg.conf文件,并且只想临时的调整分辨率,那么可以按照如下方法实现:
cvt 1280 1024
sudo xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
sudo xrandr --addmode VGA1 "1280x1024_60.00"
sudo xrandr --output VGA1 --mode "1280x1024_60.00"
就可以临时的调整分辨率到1280x1024.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值