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

 我来答
城南明月羿当年
推荐于2016-03-20 · 知道合伙人生活技巧行家
城南明月羿当年
知道合伙人生活技巧行家
采纳数:24666 获赞数:123227
计算机爱好者

向TA提问 私信TA
展开全部
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 到,这几个目录

[html] view plaincopy在CODE上查看代码片派生到我的代码片
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中
[html] view plaincopy在CODE上查看代码片派生到我的代码片
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

[html] view plaincopy在CODE上查看代码片派生到我的代码片
Section "Module"
Load "record"
Load "extmod"
Load "dbe"
Load "dri2"
Load "glx"
EndSection

装载 /usr/lib/xorg/modules/extensions/ 下面的 libglx.so, libdri2.so 等
让 Xorg 加载 nvida 驱动

[html] view plaincopy在CODE上查看代码片派生到我的代码片
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.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式