LinuxSir.cn,穿越时空的Linuxsir!

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

XGL安装手记

[复制链接]
发表于 2006-5-27 17:26:40 | 显示全部楼层 |阅读模式
今天把前几天升级 XORG7 和安装 XGL 的过程整理了一下,算是温习吧,也希望能给正在做这的人们一点帮助。
1、首先升级 XORG7
        我之前的 XORG 版本号是 6.8.2 ,那么就要这样:
               
       
  1. emerge -C xorg-x11
复制代码

        然后
       
  1. nano -w /etc/make.conf
复制代码

        增加这二行
       
  1. INPUT_DEVICES="keyboard mouse"
  2.                         VIDEO_CARDS="nv nvidia"
复制代码

        接着,先更新一下 portage。
       
  1. emerge --sync
复制代码

然后
       
  1. emerge xorg-x11
复制代码
(因为 xorg-x11 现在已经进入 ~ ,所以就不用再做烦琐的 unmask 了:)
        一切顺利地进行,但到了倒数第二个包的时候编译出错:
       
  1. Calculating dependencies... done!
  2. >>> Emerging (1 of 2) x11-apps/mesa-progs-6.4.2 to /
  3. >>> checking ebuild checksums ;-)
  4. >>> checking auxfile checksums ;-)
  5. >>> checking miscfile checksums ;-)
  6. >>> checking MesaLib-6.4.2.tar.bz2 ;-)
  7. >>> checking MesaDemos-6.4.2.tar.bz2 ;-)
  8. >>> Unpacking source...
  9. >>> Unpacking MesaLib-6.4.2.tar.bz2 to /var/tmp/portage/mesa-progs-6.4.2/work
  10. >>> Unpacking MesaDemos-6.4.2.tar.bz2 to /var/tmp/portage/mesa-progs-6.4.2/work
  11. >>> Source unpacked.
  12. >>> Compiling source in /var/tmp/portage/mesa-progs-6.4.2/work/Mesa-6.4.2 ...
  13. x86_64-pc-linux-gnu-gcc -I../../include -Wall -march=k8 -O3 -pipe -fomit-frame-pointer -m64 -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DHAVE_ALIAS -DUSE_X86_64_ASM -std=c99 -ffast-math glxinfo.c -L../../lib64 -lglut -lGLU -lGL -lm -o glxinfo
  14. /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.5/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lGLU
  15. collect2: ld returned 1 exit status
  16. make: *** [glxinfo] 错误 1

  17. !!! ERROR: x11-apps/mesa-progs-6.4.2 failed.
  18. Call stack:
  19. ebuild.sh, line 1527: Called dyn_compile
  20. ebuild.sh, line 931: Called src_compile
  21. mesa-progs-6.4.2.ebuild, line 68: Called die

  22. !!! glxinfo failed
  23. !!! If you need support, post the topmost build error, and the call stack if relevant.
复制代码


开始以为是 glut 的问题,重装 glut 问题依旧,查相关信息,可能是 libX11 或 mesa,遂重装libX11 和 mesa 后问题解决。


2、安装 XGL        
       
        因为 XGL 目前只有CVS版本,所以需要安装有 webdav 支持的 Subversion,我这样做:
       
  1. echo "dev-util/subversion -nowebdav" >> /etc/portage/package.use
复制代码

       
  1. emerge subversion
复制代码


        现在可以使用 CVS 了。

        现在指定 overlay 的目录:
       
  1. mkdir /usr/local/xgl-coffee
复制代码
  1. cd /usr/local/
复制代码


        使用 Subversion 下载 portage overlay tree 到 xgl-coffee 目录:
       
  1. svn co http://svn.xgl-coffee.org/xgl-coffee/trunk xgl-coffee
复制代码


        把这个 /usr/local/xgl-coffee 路径添加到 /etc/make.conf 中 PORTDIR_OVERLAY 的後面:
       
  1. PORTDIR_OVERLAY="/usr/local/xgl-coffee"
复制代码


        然后把下面的包添加到 /etc/portage/package.keywords :
  1. x11-proto/glproto ~amd64
  2. media-libs/mesa ~amd64
  3. media-libs/glitz ~amd64
  4. x11-base/xgl ~amd64
  5. x11-wm/compiz ~amd64
  6. x11-libs/cairo ~amd64
  7. sys-apps/man ~amd64
  8. x11-misc/util-macros ~amd64
  9. x11-libs/libdrm ~amd64
复制代码


        再把下面的包添加到 /etc/portage/package.unmask :

  1. media-libs/mesa
  2. x11-libs/cairo
  3. media-libs/glitz
复制代码


把 USE 标志 glitz 和 cairo 添加到 /etc/make.conf 的 USE 中。

然后
  1. emerge cairo
复制代码


但在 emerge mesa 的时候遇到了一些困难:


  1. # emerge mesa

  2. Calculating dependencies... done!
  3. >>> Emerging (1 of 1) media-libs/mesa-6.5.0_alpha20060320 to /
  4. >>> checksums files   ;-) mesa-6.5.0_alpha20060310.ebuild
  5. >>> checksums files   ;-) mesa-6.5.0_alpha20060317.ebuild
  6. >>> checksums files   ;-) mesa-6.5.0_alpha20060308.ebuild
  7. >>> checksums files   ;-) mesa-6.5.0_alpha20060319.ebuild
  8. >>> checksums files   ;-) mesa-6.5.0_alpha20060314.ebuild
  9. >>> checksums files   ;-) mesa-6.5.0_alpha20060320.ebuild
  10. >>> checksums files   ;-) mesa-6.5.0_alpha20060311.ebuild
  11. >>> checksums files   ;-) mesa-6.5.0_alpha20060307.ebuild
  12. >>> checksums files   ;-) files/r200-copy-pixels-1.patch
  13. >>> checksums files   ;-) files/i915-drm.patch
  14. >>> checksums files   ;-) files/mesa-glproto-indirect-fbo.patch
  15. >>> checksums files   ;-) files/digest-mesa-6.5.0_alpha20060307
  16. >>> checksums files   ;-) files/digest-mesa-6.5.0_alpha20060308
  17. >>> checksums files   ;-) files/digest-mesa-6.5.0_alpha20060310
  18. >>> checksums files   ;-) files/digest-mesa-6.5.0_alpha20060311
  19. >>> checksums files   ;-) files/digest-mesa-6.5.0_alpha20060314
  20. >>> checksums files   ;-) files/digest-mesa-6.5.0_alpha20060317
  21. >>> checksums files   ;-) files/digest-mesa-6.5.0_alpha20060319
  22. >>> checksums files   ;-) files/digest-mesa-6.5.0_alpha20060320
  23. >>> checksums files   ;-) files/6.4-dont-install-gles-headers.patch
  24. >>> checksums files   ;-) files/change-default-dri-driver-dir.patch
  25. >>> checksums files   ;-) files/mesa-dri-copy-sub-buffer-2.patch
  26. >>> checksums files   ;-) files/6.4-multilib-fix.patch
  27. >>> checksums files   ;-) files/i915_drm.h
  28. >>> checksums files   ;-) files/mesa-glproto-indirect-fbo-header.patch
  29. >>> checksums files   ;-) files/lib/libGLU.la
  30. >>> checksums files   ;-) files/lib/libGL.la
  31. >>> Unpacking source...
  32. * Fetching CVS module Mesa into /usr/portage/distfiles/cvs-src ...
  33. * Running  cvs -q -f -z4 -d ":pserver:anonymous:@anoncvs.freedesktop.org:/cvs/mesa" login
  34. Logging in to :pserver:anonymous@anoncvs.freedesktop.org:2401/cvs/mesa
  35. * Running  cvs -q -f -z4 -d ":pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa" update -D 20060320 -dP Mesa
  36. * Copying Mesa from /usr/portage/distfiles/cvs-src ...
  37. * CVS module Mesa is now in /var/tmp/portage/mesa-6.5.0_alpha20060320/work
  38. * Applying r200-copy-pixels-1.patch ...                                                                                       [ ok ] * Applying 6.4-dont-install-gles-headers.patch ...                                                                            [ ok ] * Applying change-default-dri-driver-dir.patch ...                                                                            [ ok ] * Applying 6.4-multilib-fix.patch ...                                                                                         [ ok ] * Applying mesa-dri-copy-sub-buffer-2.patch ...                                                                               [ ok ]>>> Source unpacked.
  39. >>> Compiling source in /var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa ...
  40. (cd configs && rm -f current && ln -s linux-dri-x86 current)
  41. make default
  42. make[1]: Entering directory `/var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa'
  43. make[2]: Entering directory `/var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa/src'
  44. Making sources for linux-dri-x86
  45. mkdir ../lib
  46. make[3]: Entering directory `/var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa/src/glx/x11'
  47. Makefile:92: depend: No such file or directory
  48. ln -s ../../../src/mesa/drivers/dri/common/glcontextmodes.c .
  49. touch depend
  50. makedepend -fdepend -I. -I../../../include -I../../../include/GL/internal -I../../../src/mesa/main -I../../../src/mesa/glapi -I../../../src/mesa/drivers/dri/common `pkg-config --cflags libdrm` -I/usr/X11R6/include glcontextmodes.c clientattrib.c compsize.c eval.c glxcmds.c glxext.c glxextensions.c indirect.c indirect_init.c indirect_size.c indirect_window_pos.c indirect_transpose_matrix.c indirect_vertex_array.c indirect_vertex_program.c pixel.c pixelstore.c render2.c renderpix.c single2.c singlepix.c vertarr.c xfont.c glx_pbuffer.c glx_query.c glx_texture_compression.c dri_glx.c XF86dri.c \
  51.         ../../../src/mesa/main/dispatch.c ../../../src/mesa/glapi/glapi.c ../../../src/mesa/glapi/glthread.c ../../../src/mesa/x86/glapi_x86.S
  52. makedepend: warning:  glcontextmodes.c (reading /usr/X11R6/include/bits/types.h, line 31): cannot find include file "stddef.h"
  53.         not in ./stddef.h
  54.         not in ../../../include/stddef.h
  55.         not in ../../../include/GL/internal/stddef.h
  56.         not in ../../../src/mesa/main/stddef.h
  57.         not in ../../../src/mesa/glapi/stddef.h
  58.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  59.         not in /usr/include/drm/stddef.h
  60.         not in /usr/X11R6/include/stddef.h
  61.         not in /usr/include/stddef.h
  62. makedepend: warning:  glcontextmodes.c (reading /usr/X11R6/include/sys/types.h, line 147): cannot find include file "stddef.h"
  63.         not in ./stddef.h
  64.         not in ../../../include/stddef.h
  65.         not in ../../../include/GL/internal/stddef.h
  66.         not in ../../../src/mesa/main/stddef.h
  67.         not in ../../../src/mesa/glapi/stddef.h
  68.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  69.         not in /usr/include/drm/stddef.h
  70.         not in /usr/X11R6/include/stddef.h
  71.         not in /usr/include/stddef.h
  72. makedepend: warning:  glcontextmodes.c (reading /usr/X11R6/include/X11/Xlib.h, line 75): cannot find include file "stddef.h"
  73.         not in ./stddef.h
  74.         not in ../../../include/stddef.h
  75.         not in ../../../include/GL/internal/stddef.h
  76.         not in ../../../src/mesa/main/stddef.h
  77.         not in ../../../src/mesa/glapi/stddef.h
  78.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  79.         not in /usr/include/drm/stddef.h
  80.         not in /usr/X11R6/include/stddef.h
  81.         not in /usr/include/stddef.h
  82. makedepend: warning:  glcontextmodes.c (reading ../../../include/GL/glext.h, line 3044): cannot find include file "stddef.h"
  83.         not in ./stddef.h
  84.         not in ../../../include/stddef.h
  85.         not in ../../../include/GL/internal/stddef.h
  86.         not in ../../../src/mesa/main/stddef.h
  87.         not in ../../../src/mesa/glapi/stddef.h
  88.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  89.         not in /usr/include/drm/stddef.h
  90.         not in /usr/X11R6/include/stddef.h
  91.         not in /usr/include/stddef.h
  92. makedepend: warning:  glcontextmodes.c (reading /usr/X11R6/include/string.h, line 33): cannot find include file "stddef.h"
  93.         not in ./stddef.h
  94.         not in ../../../include/stddef.h
  95.         not in ../../../include/GL/internal/stddef.h
  96.         not in ../../../src/mesa/main/stddef.h
  97.         not in ../../../src/mesa/glapi/stddef.h
  98.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  99.         not in /usr/include/drm/stddef.h
  100.         not in /usr/X11R6/include/stddef.h
  101.         not in /usr/include/stddef.h
  102. makedepend: warning:  glcontextmodes.c (reading /usr/X11R6/include/stdlib.h, line 33): cannot find include file "stddef.h"
  103.         not in ./stddef.h
  104.         not in ../../../include/stddef.h
  105.         not in ../../../include/GL/internal/stddef.h
  106.         not in ../../../src/mesa/main/stddef.h
  107.         not in ../../../src/mesa/glapi/stddef.h
  108.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  109.         not in /usr/include/drm/stddef.h
  110.         not in /usr/X11R6/include/stddef.h
  111.         not in /usr/include/stddef.h
  112. makedepend: warning:  glcontextmodes.c (reading /usr/X11R6/include/alloca.h, line 25): cannot find include file "stddef.h"
  113.         not in ./stddef.h
  114.         not in ../../../include/stddef.h
  115.         not in ../../../include/GL/internal/stddef.h
  116.         not in ../../../src/mesa/main/stddef.h
  117.         not in ../../../src/mesa/glapi/stddef.h
  118.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  119.         not in /usr/include/drm/stddef.h
  120.         not in /usr/X11R6/include/stddef.h
  121.         not in /usr/include/stddef.h
  122. makedepend: warning:  glcontextmodes.c (reading /usr/X11R6/include/X11/Xlibint.h, line 346): cannot find include file "stddef.h"
  123.         not in ./stddef.h
  124.         not in ../../../include/stddef.h
  125.         not in ../../../include/GL/internal/stddef.h
  126.         not in ../../../src/mesa/main/stddef.h
  127.         not in ../../../src/mesa/glapi/stddef.h
  128.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  129.         not in /usr/include/drm/stddef.h
  130.         not in /usr/X11R6/include/stddef.h
  131.         not in /usr/include/stddef.h
  132. makedepend: warning:  clientattrib.c (reading /usr/X11R6/include/stdio.h, line 34): cannot find include file "stddef.h"
  133.         not in ./stddef.h
  134.         not in ../../../include/stddef.h
  135.         not in ../../../include/GL/internal/stddef.h
  136.         not in ../../../src/mesa/main/stddef.h
  137.         not in ../../../src/mesa/glapi/stddef.h
  138.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  139.         not in /usr/include/drm/stddef.h
  140.         not in /usr/X11R6/include/stddef.h
  141.         not in /usr/include/stddef.h
  142. makedepend: warning:  clientattrib.c (reading /usr/X11R6/include/_G_config.h, line 14): cannot find include file "stddef.h"
  143.         not in ./stddef.h
  144.         not in ../../../include/stddef.h
  145.         not in ../../../include/GL/internal/stddef.h
  146.         not in ../../../src/mesa/main/stddef.h
  147.         not in ../../../src/mesa/glapi/stddef.h
  148.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  149.         not in /usr/include/drm/stddef.h
  150.         not in /usr/X11R6/include/stddef.h
  151.         not in /usr/include/stddef.h
  152. makedepend: warning:  clientattrib.c (reading /usr/X11R6/include/wchar.h, line 48): cannot find include file "stddef.h"
  153.         not in ./stddef.h
  154.         not in ../../../include/stddef.h
  155.         not in ../../../include/GL/internal/stddef.h
  156.         not in ../../../src/mesa/main/stddef.h
  157.         not in ../../../src/mesa/glapi/stddef.h
  158.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  159.         not in /usr/include/drm/stddef.h
  160.         not in /usr/X11R6/include/stddef.h
  161.         not in /usr/include/stddef.h
  162. makedepend: warning:  clientattrib.c (reading /usr/X11R6/include/gconv.h, line 31): cannot find include file "stddef.h"
  163.         not in ./stddef.h
  164.         not in ../../../include/stddef.h
  165.         not in ../../../include/GL/internal/stddef.h
  166.         not in ../../../src/mesa/main/stddef.h
  167.         not in ../../../src/mesa/glapi/stddef.h
  168.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  169.         not in /usr/include/drm/stddef.h
  170.         not in /usr/X11R6/include/stddef.h
  171.         not in /usr/include/stddef.h
  172. makedepend: warning:  clientattrib.c (reading /usr/X11R6/include/libio.h, line 53): cannot find include file "stdarg.h"
  173.         not in ./stdarg.h
  174.         not in ../../../include/stdarg.h
  175.         not in ../../../include/GL/internal/stdarg.h
  176.         not in ../../../src/mesa/main/stdarg.h
  177.         not in ../../../src/mesa/glapi/stdarg.h
  178.         not in ../../../src/mesa/drivers/dri/common/stdarg.h
  179.         not in /usr/include/drm/stdarg.h
  180.         not in /usr/X11R6/include/stdarg.h
  181.         not in /usr/include/stdarg.h
  182. makedepend: warning:  clientattrib.c (reading glxclient.h, line 59): cannot find include file "GL/glxproto.h"
  183.         not in GL/glxproto.h
  184.         not in GL/glxproto.h
  185.         not in ./GL/glxproto.h
  186.         not in ../../../include/GL/glxproto.h
  187.         not in ../../../include/GL/internal/GL/glxproto.h
  188.         not in ../../../src/mesa/main/GL/glxproto.h
  189.         not in ../../../src/mesa/glapi/GL/glxproto.h
  190.         not in ../../../src/mesa/drivers/dri/common/GL/glxproto.h
  191.         not in /usr/include/drm/GL/glxproto.h
  192.         not in /usr/X11R6/include/GL/glxproto.h
  193.         not in /usr/include/GL/glxproto.h
  194. makedepend: warning:  glxcmds.c (reading /usr/X11R6/include/inttypes.h, line 38): cannot find include file "stddef.h"
  195.         not in ./stddef.h
  196.         not in ../../../include/stddef.h
  197.         not in ../../../include/GL/internal/stddef.h
  198.         not in ../../../src/mesa/main/stddef.h
  199.         not in ../../../src/mesa/glapi/stddef.h
  200.         not in ../../../src/mesa/drivers/dri/common/stddef.h
  201.         not in /usr/include/drm/stddef.h
  202.         not in /usr/X11R6/include/stddef.h
  203.         not in /usr/include/stddef.h
  204. makedepend: warning:  glxcmds.c (reading /usr/include/limits.h, line 124): cannot find include file "limits.h"
  205. makedepend: warning:  glxcmds.c (reading ../../../src/mesa/main/glheader.h, line 72): cannot find include file "float.h"
  206.         not in ./float.h
  207.         not in ../../../include/float.h
  208.         not in ../../../include/GL/internal/float.h
  209.         not in ../../../src/mesa/main/float.h
  210.         not in ../../../src/mesa/glapi/float.h
  211.         not in ../../../src/mesa/drivers/dri/common/float.h
  212.         not in /usr/include/drm/float.h
  213.         not in /usr/X11R6/include/float.h
  214.         not in /usr/include/float.h
  215. makedepend: warning:  glxcmds.c (reading ../../../src/mesa/main/glheader.h, line 73): cannot find include file "stdarg.h"
  216.         not in ./stdarg.h
  217.         not in ../../../include/stdarg.h
  218.         not in ../../../include/GL/internal/stdarg.h
  219.         not in ../../../src/mesa/main/stdarg.h
  220.         not in ../../../src/mesa/glapi/stdarg.h
  221.         not in ../../../src/mesa/drivers/dri/common/stdarg.h
  222.         not in /usr/include/drm/stdarg.h
  223.         not in /usr/X11R6/include/stdarg.h
  224.         not in /usr/include/stdarg.h
  225. makedepend: warning:  indirect.c, line 33: cannot find include file "GL/glxproto.h"
  226.         not in ./GL/glxproto.h
  227.         not in ../../../include/GL/glxproto.h
  228.         not in ../../../include/GL/internal/GL/glxproto.h
  229.         not in ../../../src/mesa/main/GL/glxproto.h
  230.         not in ../../../src/mesa/glapi/GL/glxproto.h
  231.         not in ../../../src/mesa/drivers/dri/common/GL/glxproto.h
  232.         not in /usr/include/drm/GL/glxproto.h
  233.         not in /usr/X11R6/include/GL/glxproto.h
  234.         not in /usr/include/GL/glxproto.h
  235. makedepend: warning:  indirect_vertex_array.c, line 32: cannot find include file "GL/glxproto.h"
  236.         not in ./GL/glxproto.h
  237.         not in ../../../include/GL/glxproto.h
  238.         not in ../../../include/GL/internal/GL/glxproto.h
  239.         not in ../../../src/mesa/main/GL/glxproto.h
  240.         not in ../../../src/mesa/glapi/GL/glxproto.h
  241.         not in ../../../src/mesa/drivers/dri/common/GL/glxproto.h
  242.         not in /usr/include/drm/GL/glxproto.h
  243.         not in /usr/X11R6/include/GL/glxproto.h
  244.         not in /usr/include/GL/glxproto.h
  245. makedepend: warning:  indirect_vertex_array.c (reading indirect_va_private.h, line 39): cannot find include file "GL/glxproto.h"
  246.         not in ./GL/glxproto.h
  247.         not in ../../../include/GL/glxproto.h
  248.         not in ../../../include/GL/internal/GL/glxproto.h
  249.         not in ../../../src/mesa/main/GL/glxproto.h
  250.         not in ../../../src/mesa/glapi/GL/glxproto.h
  251.         not in ../../../src/mesa/drivers/dri/common/GL/glxproto.h
  252.         not in /usr/include/drm/GL/glxproto.h
  253.         not in /usr/X11R6/include/GL/glxproto.h
  254.         not in /usr/include/GL/glxproto.h
  255. makedepend: warning:  indirect_vertex_program.c, line 31: cannot find include file "GL/glxproto.h"
  256.         not in ./GL/glxproto.h
  257.         not in ../../../include/GL/glxproto.h
  258.         not in ../../../include/GL/internal/GL/glxproto.h
  259.         not in ../../../src/mesa/main/GL/glxproto.h
  260.         not in ../../../src/mesa/glapi/GL/glxproto.h
  261.         not in ../../../src/mesa/drivers/dri/common/GL/glxproto.h
  262.         not in /usr/include/drm/GL/glxproto.h
  263.         not in /usr/X11R6/include/GL/glxproto.h
  264.         not in /usr/include/GL/glxproto.h
  265. makedepend: warning:  XF86dri.c (reading /usr/include/drm/drm.h), line 196: # warning "__SIZE_TYPE__ not defined.  Assuming sizeof(size_t) == sizeof(unsigned long)!"
  266. make[3]: Leaving directory `/var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa/src/glx/x11'
  267. make[3]: Entering directory `/var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa/src/glx/x11'
  268. i686-pc-linux-gnu-gcc -c -I. -I../../../include -I../../../include/GL/internal -I../../../src/mesa/main -I../../../src/mesa/glapi -I../../../src/mesa/drivers/dri/common `pkg-config --cflags libdrm` -I/usr/X11R6/include -Wall -Wmissing-prototypes -march=athlon-xp -Os -pipe -fomit-frame-pointer -fPIC -m32 -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DHAVE_ALIAS -DDEFAULT_DRIVER_DIR='"/usr/lib/xorg/modules/dri"' -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -std=c99 -ffast-math  -DXF86VIDMODE -D_REENTRANT -UIN_DRI_DRIVER glcontextmodes.c -o glcontextmodes.o
  269. i686-pc-linux-gnu-gcc -c -I. -I../../../include -I../../../include/GL/internal -I../../../src/mesa/main -I../../../src/mesa/glapi -I../../../src/mesa/drivers/dri/common `pkg-config --cflags libdrm` -I/usr/X11R6/include -Wall -Wmissing-prototypes -march=athlon-xp -Os -pipe -fomit-frame-pointer -fPIC -m32 -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DGLX_DIRECT_RENDERING -DHAVE_ALIAS -DDEFAULT_DRIVER_DIR='"/usr/lib/xorg/modules/dri"' -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -std=c99 -ffast-math  -DXF86VIDMODE -D_REENTRANT -UIN_DRI_DRIVER clientattrib.c -o clientattrib.o
  270. In file included from clientattrib.c:38:
  271. glxclient.h:59:25: GL/glxproto.h: No such file or directory
  272. In file included from clientattrib.c:38:
  273. glxclient.h:257: error: syntax error before "GLXContextTag"
  274. glxclient.h:257: warning: no semicolon at end of struct or union
  275. glxclient.h:401: error: syntax error before '}' token
  276. In file included from clientattrib.c:39:
  277. indirect.h:67: warning: `fastcall' attribute directive ignored
  278. indirect.h:70: warning: `fastcall' attribute directive ignored
  279. clientattrib.c: In function `do_enable_disable':
  280. clientattrib.c:48: error: dereferencing pointer to incomplete type
  281. clientattrib.c:56: error: dereferencing pointer to incomplete type
  282. clientattrib.c:56: error: dereferencing pointer to incomplete type
  283. clientattrib.c: In function `__indirect_glPushClientAttrib':
  284. clientattrib.c:75: error: dereferencing pointer to incomplete type
  285. clientattrib.c:76: error: dereferencing pointer to incomplete type
  286. clientattrib.c:78: error: dereferencing pointer to incomplete type
  287. clientattrib.c:84: error: dereferencing pointer to incomplete type
  288. clientattrib.c:93: error: dereferencing pointer to incomplete type
  289. clientattrib.c:93: error: dereferencing pointer to incomplete type
  290. clientattrib.c: In function `__indirect_glPopClientAttrib':
  291. clientattrib.c:101: error: dereferencing pointer to incomplete type
  292. clientattrib.c:102: error: dereferencing pointer to incomplete type
  293. clientattrib.c:105: error: dereferencing pointer to incomplete type
  294. clientattrib.c:110: error: dereferencing pointer to incomplete type
  295. clientattrib.c:122: error: dereferencing pointer to incomplete type
  296. clientattrib.c:122: error: dereferencing pointer to incomplete type
  297. clientattrib.c: In function `__glFreeAttributeState':
  298. clientattrib.c:131: error: dereferencing pointer to incomplete type
  299. clientattrib.c:132: error: dereferencing pointer to incomplete type
  300. make[3]: *** [clientattrib.o] Error 1
  301. make[3]: Leaving directory `/var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa/src/glx/x11'
  302. make[2]: *** [subdirs] Error 1
  303. make[2]: Leaving directory `/var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa/src'
  304. make[1]: *** [default] Error 1
  305. make[1]: Leaving directory `/var/tmp/portage/mesa-6.5.0_alpha20060320/work/Mesa'
  306. make: *** [linux-dri-x86] Error 2

  307. !!! ERROR: media-libs/mesa-6.5.0_alpha20060320 failed.
  308. Call stack:
  309.   ebuild.sh, line 1565:   Called dyn_compile
  310.   ebuild.sh, line 974:   Called src_compile

  311. !!! Build failed
  312. !!! If you need support, post the topmost build error, and the call stack if relevant.
复制代码

我尝试用 equery belongs 命令查找相关的 .h 文件的包是否没有安装,但是我并没缺失没有安装的包,只好根据上面的出错信息重新安装相关的包碰碰运气,幸运的是到我重装了 glproto 这个包的时候 mesa 顺利编译通过了:

  1. emerge glproto
  2. emerge mesa
复制代码


        最后是安装 xgl 和 compiz,安装之前确保USE里已有gnome和svg的支持。
  1. emerge xgl compiz-vanilla
复制代码

        不要安装 compiz-quinnstorm,这个版本至少在我的机上不行,无论我怎么修改 GCC 的优化参数,运行它都频繁地出现段错误。

        现在来让 gdm 加载 xgl 服务:
                打开 gnome 的桌面菜单──系统管理──登录窗口──安全。在”配置 X 服务器“中删除原来的服务器,然后新添加一个服务器,VT 设为1,在右边的”命令”栏中输入:
       
  1. /usr/bin/Xgl :1 -ac -accel glx:pbuffer -accel xv
复制代码

        好了,在做下面的动作前,要先备份好 /etc/X11/gdm/gdm.conf 。
       
       

关于使用中,gedit 无法显示中文或键盘输入错码等问题,只要设好默认的字体主题和键盘布局就可以了。

大功告成。enjoy!!

相关帖子:
http://www.linuxsir.cn/bbs/showthread.php?t=257710
http://forums.gentoo.org/viewtopic-t-464225.html
发表于 2006-5-29 07:45:31 | 显示全部楼层
能帖一下你的make.conf吗?
回复 支持 反对

使用道具 举报

发表于 2006-5-29 09:48:27 | 显示全部楼层
楼主就不要刺激我了。安装了好多次都不成功,顶多在xglx下开出一个白色的终端,倒是带xgl效果,但就是出不了桌面。楼主有兴趣的话,帮我分析分析?
http://www.linuxsir.cn/bbs/showthread.php?t=256677
回复 支持 反对

使用道具 举报

发表于 2006-5-29 18:39:23 | 显示全部楼层
楼上, 我原来也是像你这样, 升级 compiz 后就行了. 现在我的 compiz 是 0.0.11.2

应该是 0.9.1 0.9.2 0.9.3 0410 0416 都有这样的问题.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-30 00:57:16 | 显示全部楼层
Post by zhou3345
能帖一下你的make.conf吗?

我的 make.conf 不成样子,见笑了。
  1. CFLAGS="-march=k8 -O3 -pipe -fomit-frame-pointer"
  2. #CFLAGS="-march=k8 -O2 -pipe"

  3. CHOST="x86_64-pc-linux-gnu"
  4. #CHOST="i686-pc-linux-gnu"

  5. CXXFLAGS="${CFLAGS}"
  6. MAKEOPTS="-j2"
  7. ACCEPT_KEYWORDS="~amd64"

  8. PORTDIR_OVERLAY="/usr/local/xgl-coffee"

  9. ALSA_CARDS="intel8x0"
  10. INPUT_DEVICES="keyboard mouse"
  11. VIDEO_CARDS="nv nvidia"

  12. USE="glitz cairo fortran gnome gtk gtk2 sse sse2 3dnow nvidia cjk nls nptl nptlonly oss alsa gpm X opengl svg truetype -kde -qt -java -ipv6 -dvd -eds -cdr -mozilla"

  13. GENTOO_MIRRORS="http://mirror.lupaworld.com/gentoo/ http://dxmirror.vmmatrix.net/Gentoo/ http://gentoo.osuosl.org/ ftp://gg3.net/pub/linux/gentoo/"
  14. #GENTOO_MIRRORS="ftp://gg3.net/pub/linux/gentoo/"

  15. SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
复制代码

PS:以防万一我在编译compiz-vanilla的时候使用了-O0。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-30 01:25:53 | 显示全部楼层
Post by 三翻领
楼主就不要刺激我了。安装了好多次都不成功,顶多在xglx下开出一个白色的终端,倒是带xgl效果,但就是出不了桌面。楼主有兴趣的话,帮我分析分析?
http://www.linuxsir.cn/bbs/showthread.php?t=256677

开出一个白色的终端,什么意思,是一个VT吧,就算xgl顺利运行你应该也看不到什么效果呀,但如果开了一个VT的话就说明xgl在运行了,这时候应关注compiz。我在装第二台机(X86)的时候也碰到了一些问题,第一次运行compiz的时候,它并没在gconf-editor里写入相关的插件,所以一直没边框,窗口的效果当然出不来了,如是说这样做,kde下我就不知道了:):
复制我amd64机子上的~/.gconf/apps/compiz/general/allscreens/options/%gconf.xml到x86机的相关目录后同样不行:)
又试着复制我amd64机子上的~/.gconf/apps/compiz目录到x86机的相关目录后问题解决。这真是变态!!

可能的原因是它同时要这二个,我的像这样:~/.gconf/apps/compiz/plugins/fade/screen0/options/%gconf.xml
  1. <?xml version="1.0"?>
  2. <gconf>
  3.         <entry name="fullscreen_visual_bell" mtime="1148919732" type="bool" value="true">
  4.         </entry>
  5.         <entry name="visual_bell" mtime="1148919732" type="bool" value="false">
  6.         </entry>
  7. </gconf>
复制代码

~/.gconf/apps/compiz/general/allscreens/options/%gconf.xml
  1. <?xml version="1.0"?>
  2. <gconf>
  3.         <entry name="active_plugins" mtime="1148712376" type="list" ltype="string">
  4.                 <li type="string">
  5.                         <stringvalue>gconf</stringvalue>
  6.                 </li>
  7.                 <li type="string">
  8.                         <stringvalue>decoration</stringvalue>
  9.                 </li>
  10.                 <li type="string">
  11.                         <stringvalue>wobbly</stringvalue>
  12.                 </li>
  13.                 <li type="string">
  14.                         <stringvalue>fade</stringvalue>
  15.                 </li>
  16.                 <li type="string">
  17.                         <stringvalue>minimize</stringvalue>
  18.                 </li>
  19.                 <li type="string">
  20.                         <stringvalue>cube</stringvalue>
  21.                 </li>
  22.                 <li type="string">
  23.                         <stringvalue>rotate</stringvalue>
  24.                 </li>
  25.                 <li type="string">
  26.                         <stringvalue>zoom</stringvalue>
  27.                 </li>
  28.                 <li type="string">
  29.                         <stringvalue>scale</stringvalue>
  30.                 </li>
  31.                 <li type="string">
  32.                         <stringvalue>move</stringvalue>
  33.                 </li>
  34.                 <li type="string">
  35.                         <stringvalue>resize</stringvalue>
  36.                 </li>
  37.                 <li type="string">
  38.                         <stringvalue>place</stringvalue>
  39.                 </li>
  40.                 <li type="string">
  41.                         <stringvalue>switcher</stringvalue>
  42.                 </li>
  43.                 <li type="string">
  44.                         <stringvalue>water</stringvalue>
  45.                 </li>
  46.         </entry>
  47.         <entry name="audible_bell" mtime="1148919731" type="bool" value="false">
  48.         </entry>
  49. </gconf>
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-30 01:54:55 | 显示全部楼层
有点让我不能理解的是,我并不用在gnome session增加如wiki里所说的/usr/bin/compizrc:
  1. #!/bin/bash
  2. #
  3. # Start compiz within gnome-session
  4. #
  5. if [ `ps -A | grep Xgl | wc -l` == "1" ]; then
  6.         DISPLAY=:1 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf &
  7.         DISPLAY=:1 gnome-window-decorator &
  8.         DISPLAY=:1 setxkbmap -model pc104 -layout it -variant basic
  9. fi
复制代码
我只要把compizrc放到/usr/bin/里以及在gdm.conf里设置好Xgl就行了,这让我很奇怪,哪位兄弟能说一下,不胜感激。
回复 支持 反对

使用道具 举报

发表于 2006-5-30 23:00:23 | 显示全部楼层
在 emerge compiz 时遇到了问题,似乎是MD5检验通不过
emerge compiz-vanilla
Calculating dependencies... done!
>>> Emerging (1 of 1) x11-wm/compiz-vanilla-0.0.11_p20060523 to /
>>> checking ebuild checksums
!!! Digest verification failed:
!!! /usr/local/xgl-coffee/x11-wm/compiz-vanilla/compiz-vanilla-0.0.10_p20060520.ebuild
!!! Reason: Filesize does not match recorded size
!!! Got: 1691
!!! Expected: 1690
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-31 01:26:48 | 显示全部楼层
Post by qeming
在 emerge compiz 时遇到了问题,似乎是MD5检验通不过
emerge compiz-vanilla
Calculating dependencies... done!
>>> Emerging (1 of 1) x11-wm/compiz-vanilla-0.0.11_p20060523 to /
>>> checking ebuild checksums
!!! Digest verification failed:
!!! /usr/local/xgl-coffee/x11-wm/compiz-vanilla/compiz-vanilla-0.0.10_p20060520.ebuild
!!! Reason: Filesize does not match recorded size
!!! Got: 1691
!!! Expected: 1690
  1. rm -rf /usr/portage/distfiles/cvs-src/compiz
复制代码
  1. rm -rf /var/tmp/portage/compiz-vanilla-0.0.11_p20060523
复制代码
  1. emerge compiz-vanilla
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-5-31 10:17:17 | 显示全部楼层
不行,还是一样的问题
回复 支持 反对

使用道具 举报

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

本版积分规则

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