LinuxSir.cn,穿越时空的Linuxsir!

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

使用ATI开源驱动,退出X后控制台花屏。

[复制链接]
发表于 2008-7-12 16:46:46 | 显示全部楼层 |阅读模式
我安装了ATI开源驱动后,只要退出X,控制台就花屏了,而使用官方驱动就不会。请问这是什么原因?各位遇到过这种情况吗?

以下是相关的 xorg.conf 配置:


  1. Section "Module"
  2.         Load  "ddc"  # ddc probing of monitor
  3.         Load  "dbe"
  4.         Load  "dri"
  5.         Load  "extmod"
  6.         Load  "glx"
  7.         Load  "drm"
  8.         Load  "bitmap" # bitmap-fonts
  9.         Load  "type1"
  10.         Load  "freetype"
  11.         Load  "record"
  12.         #   Load  "synaptics"
  13. EndSection

  14. Section "Monitor"
  15.         Identifier   "Monitor0"
  16.         #HorizSync    28.0 - 96.0
  17.         #VertRefresh  50.0 - 75.0
  18.         DisplaySize 370 277 # 96 DPI @ 1400x1050
  19.         # 1400x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 122.61 MHz
  20.         ModeLine     "1400x1050" 122.61 1400 1488 1640 1880 1050 1051 1054 1087 -hsync +vsync
  21.         Option      "VendorName" "ATI Proprietary Driver"
  22.         Option      "ModelName" "generic Autodetecting Monitor"
  23.         Option         "DPMS" "true"
  24. #        HorizSync    28.0 - 78.0 # Warning: This may fry very old Monitors
  25. EndSection

  26. Section "Device"
  27.         Identifier  "Card0"
  28.         Driver      "radeon"
  29.         VendorName  "ATI Technologies Inc"
  30.         BoardName   "Radeon Mobility X1400"
  31.         BusID       "PCI:1:0:0"
  32.         Option      "XAANoOffscreenPixmaps" "true"
  33. EndSection

  34. Section "Screen"
  35.         Identifier "Screen0"
  36.         Device     "Card0"
  37.         Monitor    "Monitor0"
  38.         DefaultDepth     24
  39.         SubSection "Display"
  40.                 Depth     1
  41.                 Modes    "1024x768" "800x600" "640x480"
  42.         EndSubSection
  43.         SubSection "Display"
  44.                 Depth     4
  45.                 Modes    "1024x768" "800x600" "640x480"
  46.         EndSubSection
  47.         SubSection "Display"
  48.                 Depth     8
  49.                 Modes    "1024x768" "800x600" "640x480"
  50.         EndSubSection
  51.         SubSection "Display"
  52.                 Depth     15
  53.                 Modes    "1024x768" "800x600" "640x480"
  54.         EndSubSection
  55.         SubSection "Display"
  56.                 Depth     16
  57.                 Modes    "1024x768" "800x600" "640x480"
  58.         EndSubSection
  59.         SubSection "Display"
  60.                 Depth     24
  61.                 Modes    "1400x1050" "1024x768" "800x600" "640x480"
  62.         EndSubSection
  63.         SubSection "Display"
  64.                 Depth     32
  65.                 Modes    "1400x1050" "1024x768" "800x600" "640x480"
  66.         EndSubSection
  67. EndSection

复制代码
发表于 2008-7-12 18:49:54 | 显示全部楼层
看不出有什么错误。个别问题?我也是开源驱动,我觉得是你加载模块加载错误。比如有无radeonfb这样的模块?是否在grub里面设置分辨率开启了fb?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-12 19:47:20 | 显示全部楼层
确实,去掉了 grub 的 vga 选项就没问题了。

不过这样给我造成了很大不便……没办法的话只好用官方驱动去了。
回复 支持 反对

使用道具 举报

发表于 2008-7-12 20:42:15 | 显示全部楼层
不需要,花屏的时候看看是否有radeonfb模块存在,如果确认是这个模块搞的鬼就把这个模块加入rc.conf的模块中并加上!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-13 22:47:47 | 显示全部楼层
我没发现 radeonfb 模块的存在……

现在真是头痛。用开源驱动吧,退出 X 后花屏,而且我 xorg.conf 里设置的 dpi 不起作用,非得我手工指定 -dpi 96x96 才行。另外,3D 加速也打不开,glxgears 才 200 多 FPS,启动 glxgears 时提示 libGL 初始化失败。

换到官方驱动后倒是不花屏了,3D加速也开了,glxgears 在 4500fps 吧。dpi 设置也正常了。但尝试 wine 运行 war3 时花屏。一启动 war3 屏幕就花了,勉强可以看得出屏幕被分成左右两块了,两边都有一个模糊的窗口运行着war3。

真是郁闷……我刚开始使用 arch,以前在debian下无论是开源还是官方驱动都没有出过问题。wiki上翻了个遍,也不知道是我RP不好还是配置有问题……
回复 支持 反对

使用道具 举报

发表于 2008-7-13 23:00:30 | 显示全部楼层
肯定是配置问题了,开源驱动和官方驱动是无法共存的,因为catalyst-utils会和libgl冲突。开源驱动需要后者,否则没有办法开启3D。使用开源驱动就需要安装libgl。源里面的xf86-video-ati比较老,尝试编译新的开源驱动或者搜索这个论坛上的xf86-video-ati-git的pkgbuild

检查3D是否开启的方法是glxinfo |grep direct 输出yes就是了

dpi应该默认就是对的,如果需要手动设置,那么就往xorg.conf的monitor节添加类似

  1. DisplaySize         338 211 #96 DPI @ 1280x800
复制代码

的类容,具体搜索字体微调,有涉及到调整dpi的部分

官方驱动运行3D游戏不会花,而应该是不断闪烁。开源驱动就没有问题。推荐开源驱动

wiki慢慢看,仔细想想。rp问题不是那么容易出现的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-13 23:19:13 | 显示全部楼层
谢谢 jarryson 的一再帮助。

catalyst-utils 和 libgl 的冲突我知道,并且安装时已经把冲突的包先卸掉。事实上无论是xf86-video-ati 还是 catalyst,都已经开始正常工作了。但它们工作的不好……

3D的问题我之前用 glxinfo 看过,确实是没打开。dpi 设置的部分我有加在 xorg.conf 里,使用官方驱动时它也发挥了自身的作用,但在开源驱动下就是无效。

源里的 6.8.0 我看了 manpage,上面没有提到支持我的 ATI Mobility Radeon X1400,但 6.9.0 明确写着是支持的,所以我也试着编译过 git 版。结果是这样的:
  1. atimodule.c:39: 错误:‘PACKAGE_VERSION_MAJOR’未声明(不在函数内)
  2. atimodule.c:39: 错误:‘PACKAGE_VERSION_MINOR’未声明(不在函数内)
  3. atimodule.c:39: 错误:‘PACKAGE_VERSION_PATCHLEVEL’未声明(不在函数内)
复制代码

PKGBUILD 我是从 archlinux.org 上找的,好像在 lists.x.org 上看过有人报告过相同的问题。不过也没什么明确的回答,只是叫他尝试使用 autoconf 和 automake 的特定几个版本进行编译,关于这个我也再没找到什么答案。

不知道论坛上是否有在 IBM T60 上使用 Archlinux 的朋友……能参考下他们的配置就好了。
回复 支持 反对

使用道具 举报

发表于 2008-7-13 23:24:13 | 显示全部楼层
使用下面的pkgbuild编译。6.8.0是不支持你的显卡的。无法开启3D

PKGBUILD:

  1. pkgname=xf86-video-ati-git
  2. pkgver=20080704
  3. pkgrel=1
  4. _mesaver="7.0.3"
  5. pkgdesc="Driver for AMD GPG Chipsets"
  6. url="http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/"
  7. arch=('i686' 'x86_64')
  8. license=('MIT')
  9. depends=('libdrm>=2.3.0')
  10. makedepends=('pkgconfig' 'git' 'xorg-util-macros' 'imake' 'mesa>=7.0.3rc2' 'xf86driproto' 'xorg-server>=1.4' 'diffutils' 'glproto>=1.4.9')
  11. provides=('xf86-video-ati')
  12. options=('!libtool')
  13. conflicts=('xf86-video-ati')
  14. install=ati.install
  15. #source=(http://www.mesa3d.org/beta/MesaLib-${_mesaver}.tar.gz)
  16. source=(http://nchc.dl.sourceforge.net/mesa3d/MesaLib-${_mesaver}.tar.bz2)
  17. #md5sums=('141f5c1c89b090d0f0bd92522ebb8de9')

  18. _gitroot="git://anongit.freedesktop.org/git/xorg/driver/xf86-video-ati"
  19. _gitname="xf86-video-ati"

  20. build() {
  21.     cd $startdir/src
  22.    
  23.     msg "Connecting to git.freedesktop.org GIT server...."

  24.     if [ -d $startdir/src/$_gitname ] ; then
  25.     cd $_gitname && git-pull origin
  26.     msg "The local files are updated."
  27.     else
  28.     git clone $_gitroot
  29.     fi
  30.     msg "GIT checkout done or server timeout"
  31.     msg "Starting make..."

  32.     cp -r $startdir/src/$_gitname $startdir/src/$_gitname-build
  33.     cd $startdir/src/$_gitname-build
  34.    
  35.     ./autogen.sh --prefix=/usr/ --enable-dri || return 1
  36.     make || return 1
  37.     make DESTDIR=$startdir/pkg install
  38.     install -Dm644 COPYING $startdir/pkg/usr/share/licenses/$_gitname/COPYING
  39.    
  40.     cd ${startdir}/src/Mesa-${_mesaver}/configs

  41.     CONFIG="linux-dri-x86"
  42.     [ "$CARCH" = "x86_64" ] && CONFIG="linux-dri-x86-64"
  43.     echo "EXTRA_LIB_PATH =" >> ${CONFIG}
  44.     # currently commented, see FS#7590 for details
  45.     #echo "OPT_FLAGS = ${CFLAGS} -fno-strict-aliasing" >> ${CONFIG}
  46.     echo "SRC_DIRS = glx/x11 mesa" >> ${CONFIG}
  47.     echo "USING_EGL = 0" >> ${CONFIG}
  48.     echo "PROGRAM_DIRS =" >> ${CONFIG}
  49.     echo "MKDEP = makedepend" >> ${CONFIG}
  50.     echo "DRI_DIRS = r128 radeon r200 r300" >> ${CONFIG}
  51.     echo "DRI_DRIVER_SEARCH_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
  52.     echo "DRI_DRIVER_INSTALL_DIR = /usr/lib/xorg/modules/dri" >> ${CONFIG}
  53.     echo "ARCH_FLAGS += -DGLX_USE_TLS" >> ${CONFIG}
  54.     echo "X11_INCLUDES = `pkg-config --cflags-only-I x11`" >> ${CONFIG}

  55.     ln -s ${CONFIG} current
  56.     cd ${startdir}/src/Mesa-${_mesaver}/src/mesa
  57.     make linux-solo || return 1
  58.     cd drivers/dri
  59.     make DESTDIR=${startdir}/pkg install || return 1   
  60.     rm -rf $startdir/src/$_gitname-build $startdir/src/Mesa*
  61. }
复制代码


ati.install

  1. post_install() {
  2.   echo ">> This driver is in an early state!"
  3.   echo ">> Use it at your own risk!"
  4.   echo ">> "
  5.   echo ">> To use this driver set the driver in xorg.conf to "ati"."
  6.   echo ">> Good luck ;)"
  7. }

  8. post_upgrade() {
  9.   post_install
  10. }

  11. post_remove() {
  12.   /bin/true
  13. }

  14. op=$1
  15. shift

  16. $op $*
复制代码


还有我记起来你说的官方驱动使用compiz然后运行3D游戏花屏是6.8的一个大bug。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-14 13:25:32 | 显示全部楼层
谢谢 jarryson,昨天使用你的 PKGBUILD 编译 git 版成功了。现在退出 X 已经不再花屏,但3D还是无法打开。

glxgears

  1. $ glxgears
  2. unknown chip id 0x7145, can't guess.
  3. libGL warning: 3D driver returned no fbconfigs.
  4. libGL error: InitDriver failed
  5. libGL error: reverting to (slow) indirect rendering
  6. XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
  7.       after 1559 requests (44 known processed) with 0 events remaining.
复制代码


LIBGL_DEBUG=verbose glxinfo > /dev/null

  1. $ LIBGL_DEBUG=verbose glxinfo > /dev/null
  2. libGL: XF86DRIGetClientDriverName: 5.3.0 r300 (screen 0)
  3. libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/r300_dri.so
  4. libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/r300_dri.so
  5. drmOpenDevice: node name is /dev/dri/card0
  6. drmOpenDevice: open result is 4, (OK)
  7. drmOpenByBusid: Searching for BusID pci:0000:01:00.0
  8. drmOpenDevice: node name is /dev/dri/card0
  9. drmOpenDevice: open result is 4, (OK)
  10. drmOpenByBusid: drmOpenMinor returns 4
  11. drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
  12. unknown chip id 0x7145, can't guess.
  13. libGL warning: 3D driver returned no fbconfigs.
  14. libGL error: InitDriver failed
  15. libGL error: reverting to (slow) indirect rendering
复制代码


我似乎是找到了问题所在,好像源里的 Mesa 7.0.3 是不支持 X1400 这款显卡的,而 7.1 是支持的……

这是 7.0.3 的 radeon_chipset.h

  1. #define PCI_CHIP_RV410_5E4F             0x5E4F
  2. #define PCI_CHIP_RS350_7834             0x7834
  3. #define PCI_CHIP_RS350_7835             0x7835
复制代码


这是 7.1-rc3 的 radeon_chipset.h

  1. #define PCI_CHIP_RV515_7144             0x7144
  2. #define PCI_CHIP_RV515_7145             0x7145
  3. #define PCI_CHIP_RV515_7146             0x7146
复制代码


难道我还得编译 mesa 7.1 来装……
回复 支持 反对

使用道具 举报

发表于 2008-7-14 13:42:26 | 显示全部楼层
你看看pkgbuild就知道,里面有个mesa版本,是通过这个来编译的。不过我以前换成7.1beta无法编译。你可以尝试一下。

还有看看是否需要根据6.9.0的驱动的pkgbuild修改一下pkgbuild,这个问题还是只有靠lz自己解决了

不行就暂时用catalyst驱动,记得运行3D游戏的时候不要用compiz
回复 支持 反对

使用道具 举报

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

本版积分规则

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