LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1084|回复: 4

LFS 装 fglrx 注意

[复制链接]
发表于 2006-4-23 20:29:05 | 显示全部楼层 |阅读模式
xorg 6.9 和7.0 都可以用 *.run 包装.
安装驱动, 编译内核模块就不说了. 说说如果出现问题, 原因可能在哪:

1. 确保 fglrx 模块已经加载
lsmod | grep fglrx 有结果.
如果 modprobe fglrx 出错, dmesg 看一下,
基本上都是因为内核太新, fglrx 无法编译,
可以试试换更高版本的 fglrx , 也可以到 http://ati.cchtml.com/ 找找看有没有补丁.

2. 保证运行程序链接的是 fglrx 的 libGL.so.1
只要 glxinfo 中有 ATI 出现就对了.
fglrx 的安装程序默认会覆盖 mesa 的 libGL.so.1.
但我是手动安装, fglrx 在 /usr/lib/X11R6/fglrx/libGL.so.1, 然后用 ldconfig 实现两者共存, 可以切换.
这就必须要使 ldd `which glxinfo`中 libGL.so.1 指向正确的文件

3. 保证挂载了/dev/shm
echo  tmpfs /dev/shm tmpfs defaults 0 0  >>/etc/fstab
mount /dev/shm  
mount | grep shm

4. 如果上面的都对了, fglrxinfo 还是 mesa

看看 glxinfo , 显示 OpenGL 各组件的版本, 正常的是 :
glx server : SGI
glx client : ATI
OpenGL verdor : ATI

但 lfs 有可能是
glx server : SGI
glx client : ATI
OpenGL verdor : Mesa
这证明前3步都对了, 关键的 2. 确实链接的是 fglrx 的 libGL.so.1

你要确保 /usr/X11R6/lib/dri 和/usr/X11R6/lib/drivers 下面, fglrx 的几个 .so 文件确实在里面.
然后 ldd 上面提到的fglrx 的几个 .so 文件. 很可能就发现原因. 里面的一个文件是链接到 libstdc++.so.5 的, 但 LFS 默认是没有的.

解决方法就是用 gcc3 的包编译一个 libstdc++.so.5 , 你也可以试试从某个distro拷贝一个, 我从 mdv2006 拷贝的 libstdc++.so.5 工作正常, 我想是因为 mdv2006 和我的 lfs 用的都是 gcc4 的原因.

这是 lfs 这种没有包管理器特有的问题, 非常难以发现.
 楼主| 发表于 2006-4-23 20:36:34 | 显示全部楼层
fglrx 8.24.8 的 kernel 2.6.16 补丁:
http://ati.cchtml.com/show_bug.cgi?id=303
回复 支持 反对

使用道具 举报

发表于 2006-4-24 00:12:19 | 显示全部楼层
这种心得,以后也许才用到的,发到wiki上,我会整理的。:)
谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-24 20:33:19 | 显示全部楼层
试试写了 wiki , 幻想看看如何.
回复 支持 反对

使用道具 举报

发表于 2006-4-25 00:58:39 | 显示全部楼层
很好,谢谢。:)。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表