安装xorg及XDirectFB

在Debian (etch)下安装DirectFB及XDirectFB(x86架构)
唐刚 2007.10.31


第一步,安装一些开发包

build-essential

libc6-dev

make

intltool

libtool

libfreetype6

libfreetype6-dev

libmpeg2-4

libmpeg2-4-dev

libjpeg62

libjpeg62-dev

libmpeg3

libmpeg3-dev

libpng3

libpng12-0

libpng12-dev

zlib1g

zlib1g-dev

linux-kernel-headers

libdrm-dev

xorg-dev ( This is important. This has most necessary headers for XDirectFB. )(注:我用的Fedora 8,不用装这个

autoconf

automake

autoconf-archive

第二步:下载源代码包

DirectFB-1.0.1.tar.gz 或 DirectFB-1.1.0.tar.gz

DirectFB-examples-1.0.0.tar.gz

linux-fusion-7.0.1.tar.gz 或 linux-fusion-3.2.3.tar.gz

XDirectFB-2007-10-30-05-25-19-UTC.tar.gz(任何一个最新的snapshot都行)(注:这个在http://www.directfb.org/index.php?path=Development%2FSource+Code%2FSnapshots 可以下载到最新的。Downloads里面的那个实在旧的可以。

xorg-server-1.1.1.tar.bz2

linux-2.6.18.5.tar.bz2(任一个较新的内核都行)(注:如果你使用的debian的话,执行apt-get install linux-sourece 即可获得你内核版本的源代码,当然你的内核要是用apt-get 安装的才行。

第三步:编译fusion模块(注:fusion需要有内核源代码才能安装。实在装不上的话就顺便装个新内核吧,多花不了多长时间。

重新编译linux内核文件

tar jxvf linux-2.6.18.5.tar.bz2

cd linux-2.6.18.5

然后,要执行内核的配置操作,而我们此时,并不需要完全编译内核,需要的只是内核编译过程中产生的一些模块支持中间文件,所以可以执行一些特殊的操作方式

make menuconfig

出现一个终端下的图形界面后,不用配置,直接保存,退出

make modules

这是一个较长的过程,这个过程中,可能会出现一些错误,然后中途停止了,这没关系,只要这个过程运行过一段时间过后,就会产生所需要的中间文件,(实际上可能是先产生模块支持中间配置文件,再真正地编译其它东西),不管是正常结束还是非正常中止,都执行下一步

make modules_install(注:这一步可以不用执行,在/lib/modules/正在使用的内核版本号/ 下新建两个符号连接build和source指向你的源代码目录即可。看看下面的KERNEL_BUILD和KERNEL_SOURCE。

这时,就会在系统中产生一个配置文件夹 /lib/modules/2.6.18.5/ 。注,2.6.18.5是此内核的版本号,不同版本此号不同。(可以看出,不同的版本库和头文件可以共存)

然后,开始处理fusion

tar xvf linux-fusion-7.01.tar.gz

cd linux-fusion-7.01

然后,直接

make

如果,提示有错误产生,那很可能是因为打不到所需文件,编辑一下Makefile,输入 nano Makefile,会呈现如下内容
KERNEL_VERSION = $(shell uname -r)
KERNEL_MODLIB = /lib/modules/$(KERNEL_VERSION)
KERNEL_BUILD = $(KERNEL_MODLIB)/build
KERNEL_SOURCE = $(KERNEL_MODLIB)/source

表示会获取系统当前版本号,然后根据这个版本号来找路径,可是,我们下载的linux内核源代码版本与我们正在使用的系统的版本号可能不同(也没必要同),所以就会提示说找不到指定路径中的文件。于是我们将上面改成如下

KERNEL_VERSION = 2.6.18.5
KERNEL_MODLIB = /lib/modules/$(KERNEL_VERSION)
KERNEL_BUILD = $(KERNEL_MODLIB)/build
KERNEL_SOURCE = $(KERNEL_MODLIB)/source

反正目的只有一个,让编译器找得到路径

然后执行

make

一般来说不会出错,然后执行

make install

将会在 /lib/modules/2.6.18.5/ 下建立一些文件,其中包括 /lib/modules/2.6.18.5/drivers/char/fusion/fusion.ko 文件,这就是模块文件
然后,根据同一目录中的README文件,执行如下操作

mkdir /dev/fusion
mknod /dev/fusion/0 c 250 0
mknod /dev/fusion/1 c 250 1

insmod /lib/modules/2.6.18.5/drivers/char/fusion/fusion.ko
如果在执行这一步时,提示说不能插入,那么,很有可能是因为编译fusion.ko文件的gcc版本与编译内核的gcc版本不一致(或有较大不一致),如果出错了,有两种办法
方法一是,把内核继续编完,并将内核替换成新的;完成后,再来插入。
方法二是,找到编译内核的那个版本的gcc,用这个版本的gcc来编译fusion.ko

不过,谢天谢地,我的插入一次成功,我用的是gcc-4.1,debian etch,都是最新的东东,还不错。

执行
ls /proc
看有没有
fusion
目录,有的话,就表示成功了。

第四步:编译 DirectFB

tar xvf DirectFB-1.1.0.tar.gz
cd DirectFB-1.1.0

./configure —prefix=/opt/dfbsystem —enable-multi (注:一定要使用--enable-multi

这个配置检查过程中,可能会提示缺少某些文件,一般来说是缺少了某些库,缺哪些库就装哪些库,debian的好处就是要装哪些库,一个apt-get install就搞定,(甚至可能会down下一大堆库文件来),配置检查完成后,

make
make install

文件会安装在我们指定的路径 /opt/dfbsystem/下,由于我们指定的路径并不在系统默认的查找路径下,所以我们还要在~/.bashrc中添加如下几行

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/local/tools-trad/bin:/opt/dfbsystem/bin

export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/dfbsystem/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/opt/dfbsystem/lib

完成后,可以重启一次shell(exit然后重新登录)

为了测试刚才编译的DirectFB能不能正常运行,我们有必要编译一下example (注:这个example我就是编译不过。不过还好这个和Direcfb能否正常运行没什么关系,跳过去吧。

tar xvf DirectFB-examples-1.0.0.tar.gz
cd DirectFB-examples-1.0.0

./configure —prefix=/opt/dfbsystem/
make
make install

如果在make时提示找不到***文件,那么肯定是.bashrc文件中的找寻路径没设好,回去检查一下,然后重新操作。
编完后,会在/opt/dfbsystem/bin下出现几个可执行文件,执行,会发现,只面有几个小程序挺好玩的,只要能正常运行,就说明DirectFB没问题!可以进入下一步工作

第四步:编译 XDirectFB

tar xvf XDirectFB-2007-10-30-05-25-19-UTC.tar.gz

tar jxvf xorg-server-1.1.1.tar.bz2

cd xorg-server-1.1.1

cp ../XDirectFB-2007-10-30-05-25-19-UTC/xorg-server-1.1.1-directfb.diff

patch -p1 < xorg-server-1.1.1-directfb.diff

cp -a ../XDirectFB-2007-10-30-05-25-19-UTC/programs/Xserver/hw/directfb hw/

autoreconf (注:看清楚了,这里是autoreconf NOT autoconf,瞎费了我半天劲。

这步会执行较长的时间,而且中间可能还会有点小错误,根据提示,可能要输入 automake —add-missing 来更正(注:我是还来了个automake --add-missing才通过了。)

./configure —prefix=/opt/dfbsystem —disable-xorg —disable-dmx —disable-xvfb —disable-xprint

注:我在configure时会遇到找不到xkbui等库。费了好大力气弄齐全了。下载libxkbui在http://www.paldo.org/index-section-packages-page-main-releaseid-99266.html。或者在www.google.cn 上搜索一下xkbui tar 可以找到。还有其它的库在yum中可以找到。

make

make install

由于xorg相当大,所以编译会持续较长的时间,请耐心等待。编译完成后,会在 /opt/dfbsystem/bin 下出现一个可执行文件 XDirectFB

退出X Window系统,在控制台下执行

export DISPLAY=:0

XDirectFB &

(注:执行这步时可能会报错,如 Could not init font path element /usr/local/lib/X11/fonts/misc/,removing from list!

 Fatal server error: could not open default font 'fixed' 等。出现这种问题的原因是系统的字体没有安装在该目录下,解决方法拷贝系统的字体

如/usr/share/fonts/X11下的全部字体到/usr/local/lib/X11/fonts下。如果这样还继续报错找不到font,请在字体目录下找到fonts.alias文件,将任意

一个字体名字改为报错的字体名即可。另,对TTF好像没有fonts.alias。)

xfce4-session &

就进入了基于DirectFB下的xfce啦,好好玩一把!!!

附:到这里进入了基于DirectFB下的xfce,但是可能并没有DirectFB的透明特效,没关系,做点小修改。

将以下内容保存,命名为startxdfb。
 
#!/bin/bash
 
export DISPLAY=:0

 
#/usr/X11R6/bin/ 是XDirectFB的命令路径,请酌情修改.请参考http://www.linuxsir.org/bbs/showthread.php?s=&threadid=100618
/usr/X11R6/bin/XDirectFB -enableRoot -dpi 96 -enableFadeIn -enableFadeOut -defaultOpacity 195 -unfocusedOpacity 125 -enableUnfocused +kb -a 0 -c -br &
 
#开启XFCE4桌面,如果使用gnome桌面请使用 gnome-session &
xfce4-session &
 
执行一下,看看效果如何。
  
Good Luck! ^_^
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值