XDirectFB编译笔记

XDirectFB是使用DirectFB库作为output driver的XServer实现。由于使用的人较少,所以编译是个问题。尤其是Fusion kernel module,DirectFB库,XDirectFB patch及代码,XServer之间版本匹配关系。

编译步骤可参考链接1的说明。版本匹配关系如下:

  • Fusion内核模块使用8.1.1版本;(下载链接
  • DirectFB使用1.2.8版本;(下载链接
  • XServer使用1.1.1版本;(下载链接
  • XDirectFB使用git开发树并回退至

commit 25a6eb36979779d240db9a679a6152c925d82c56

Refs: <origin/origin>, DIRECTFB_0_9_18-83-g25a6eb3
Author: Ville Syrjala <[email protected]>
Date:   Wed Feb 7 22:12:10 2007 +0000

Replace __u32 with u32 etc.

commit 25a6eb36979779d240db9a679a6152c925d82c56
Refs: <origin/origin>, DIRECTFB_0_9_18-83-g25a6eb3
Author: Ville Syrjala <[email protected]>
Date:   Wed Feb 7 22:12:10 2007 +0000
Replace __u32 with u32 etc.

git clone git://git.directfb.org/git/directfb/programs/XDirectFB.git
git checkout 25a6eb36979779d240db9a679a6152c925d82c56

已在Ubuntu 8.04上编译运行通过。(运行时XDirectFB缺少的字体可以从/usr/share/fonts/X11下拷贝)

参考链接

  1. http://www.directfb.org/wiki/index.php?title=XDirectFB:About
  2. http://www.directfb.org/index.php?path=Main/Downloads&page=0

Who’s who in Graphics / Linux / Xorg area

Alan Akin

  • DRI, Redhat

Adam Jackson (ajax)

  • Redhat

Alan Coopersmith

Andy Ritger

Behdad Esfahbod

Bertram Felgenhauer

  • pixman, cairo

Brian Paul

Dave Airlie (airelied)

David Dawes

David Reveman

Eric Anholt’s (anholt)

Gareth Hughes

  • DRI, Nvidia

James Jones

  • Nvidia

Jens Owen

Keith Packard (keithp)

Kevin E. Martin

Kristian Høgsberg (krh)

Mirco Müller, (macslow)

Rik, Faith

last updated: 2008-02-04 by unicell

something about XGL

Emanuele Tamponi’s post

My site about Xorg, Aiglx and Xgl
http://lists.freedesktop.org/archives/xorg/2006-March/014236.html

OpenGL & X

http://madman2k.net/article/36
covered 2 topics:

  • Compositing Manager
  • Accelerated X-Server

Article Explains How XGL/Compiz/Mesa/Device Drivers All Relate

http://www.breakitdownblog.com/tag/xgl/

Xgl的启动
(zhcn.blogspot.com/2007_05_20_archive.html )

刚才搜索xgl相关的知识,发现Emanuele Tamponi写的《How Xgl works》的综述比较明白,特别是关于Xgl如何启动的这部分:
第一步:Xgl和Xorg启动

  • (记住我们讨论的是Xglx)
  • Xgl启动。
  • “Xgl初始化过程”启动Xorg。
  • Xorg加载NVIDIA的X驱动
  • Xorg加载NVIDIA的libglx作为其X Server的GLX扩展(作者称之为“隐含的GLX扩展”)
  • Xorg可以给OpenGL客户程序提供直接OpenGL上下文。

第二步:请求上下文

  • Xgl被链接到NVIDIA的libGL并用它来进行渲染。
  • 目前,Xgl是一个OpenGL客户程序,故需要一个OpenGL上下文。
  • NVIDIA的libGL使用自身的GLX函数开启一个同隐含的GLX扩展进行的会话。
  • NVIDIA的libGL得到了一个给Xgl的OpenGL上下文。

第三步:Xgl开启并运行,提供了一个心的Xserver。

  • Xgl现在可以用OpenGL函数绘制窗口和root。
  • Xgl加载自己的libglx作为其X Server 的GLX扩展(作者称之为“Xgl GLX扩展”)。
  • Xgl只能向OpenGL客户程序提供间接OpenGL上下文,原因在于Xgl GLX扩展会把OpenGL命令传递给Xgl。

第四步:一个OpenGL客户程序被启动

  • Xgl内部,一个OpenGL客户程序被启动。
  • 这一OpenGL客户程序被链接到NVIDIA的libGL上。
  • 现在,它需要一个OpenGL上下文。
  • NVIDIA的libGL使用自身的GLX函数开启一个同Xgl GLX扩展进行的会话。
  • NVIDIA的libGL为它的客户程序获得一个间接OpenGL上下文。
  • OpenGL客户程序可以用OpenGL函数绘制其内容,并被Xgl通过GLX协议接收。
  • Xgl收到OpenGL函数调用并使用NVIDIA的libGL绘制内容。

Debian下的X配置

apt-get install discover — 硬件识别系统
apt-get install mdetect — 鼠标自动侦测工具
apt-get install read-edid — VESA PnP监视器硬件信息收集工具

apt-get install x-window-system

安装完的配置中ps2鼠标使用/dev/psaux

重新配置XF4服务器
# dpkg-reconfigure –priority=low xserver-common
# dpkg-reconfigure –priority=low xserver-xfree86

使用aptitude安装(推荐):
gnome
gnome-session

Ref.
====
http://debian.linuxsir.org/book/reference/lyoo/ch-tune.html#s-x