Beryl / Compiz / XGL / AIGLX: 新进展

鉴于Xgl的编译困难——没有能够和Mesa共同编译的发布版本,我全面转向AIGLX。新版本的Xorg(7.2)自带了AIGLX,并且默认状态就是激活的。我原先用git抓下来编译的Xorg,竟然是7.1.99.2,竟然比发布版旧…… 跑起来之后,Xorg会在某个不确定的时刻死掉…… 而且,这个版本就是死活不肯编译 GLX Extension! 就算我 configure 的时候指定 –enable-glx 也没有用。 后来想,既然决定用新的Xorg,干脆用ModularXorg的ports算了。原先是觉得这样弄会很烦,但是也没有别的更简单的办法。于是就照着FreeBSD wiki里的ModularXorg的方法,先备份ports目录,然后用git抓下新的(大概耗时半小时左右),接着就到ports里的各处安装ModularXorg的各个组成部分,比如xorg-proto,xorg-server,libGL*,libglut,dri,libdrm,xf86-input-mouse,xf86-input-keyboard,xf86-video-ati,还有各个小工具,比如xdpyinfo,iceauth,…一切OK后,重新配了一下X,顺利进去了。这个X相对git下来那个稳定多了,也有了GLX Extension和Direct Rendering(虽然现在的ports里面的dri不编译glxinfo,glxgears等等,但是可以用git抓下新的Mesa的源代码,然后去progs/xdemos里面编译)。但是这个X没有6.9稳定,比如我切换到命令行再切换回来很容易出问题,而且每次退出基本上都不能正常,总是有”X in free():…”的错误。但无论如何,可以用了。然后安装了beryl和compiz,原来想着差不多了,但是启动beryl之后…… 就出来那个”white screen of death”了。其实也不是全白,可以转动桌面立方体,弹性窗口效果等等都有,桌面还是蓝颜色的,就是所有的窗口都是白的(还有半透明效果……),没有内容。如果用–use-copy选项启动beryl,能显示内容,但稍有变化就会乱掉,而且速度奇慢(其实不用–use-copy也很慢,但是至少能动),总之就是行不通。compiz这边,启动的时候显示”no GLXFBConfig for default depth, this isn’t work”的错误,而beryl对应的是”no GLXFBConfig for default depth, falling back to visinfo”,看来beryl针对这个问题进行了patch。总之就是不能正常使用……据说这个是glproto从1.4.7升到1.4.8之后导致的一个问题,看来要等更新了……现在打算去看看beryl的代码,哪里出的问题……注:beryl是从compiz分离出来的项目,基于compiz的代码,进行了许多改进/创造,目前两个项目正在考虑整合问题。 Old Blog Link: http://computer.mblogger.cn/henryhu/posts/63590.aspx

尚未完成: Compiz / Beryl / XGL / AIGLX on FreeBSD

和 Beryl / Xgl / AIGLX 等东西折腾了三天了,还没搞定……其实说起来很简单:装好各种基础,再装Mesa,然后是Xgl,接着compiz,就可以了。但是Xgl的源代码的编译严重依赖于Mesa的源代码,每次 Mesa有文件上的变化Xgl也要变。但是…… 计划没有变化快…… 最新通过git抓下来的Xgl和Mesa的源代码不能一起编译…… 我常试了各个版本,尚未找到办法……在网上看见很多安装指南,看来成功编译的不是正好Mesa和Xgl可以共同编译,就是自己做了些小的修正,但是现在的版本差别实在太大…… 后来发现新的用git抓下来的Xorg可以和Mesa一起编译,貌似采用了一种更先进的依赖方法…… 于是我试着把它和现在的Xgl整合,但是…… 没有效果……最后,我终于知道新的Xorg带了一个叫AIGLX的东西,按照www.freedesktop.org上的说法,这个是“Xgl的一个流行的替代品“。目前编译Xorg中……Compiz倒是很容易编译,就是一直跑不起来,看来一定要跑在Xgl/AIGLX上面……另一个搞不清楚的是,我编译安装了最新的Mesa(6.5.3 by git),卸掉了ports里的dri和libdrm,也编译安装了新的libdrm,但为什么就是没有direct rendering… 附: 各个版本的Mesa和Xgl的各个不同点 Mesa: 6.5 6.5.1 6.5.2 git cvs Xgl: git cvs 6.5.3 6.5.2 main:bitset.h No Yes Yes Yes Yes Yes Yesarrayobj.h No Yes Yes Yes Yes Yes Nomipmap.h No No Yes Yes Yes Yes Nomesa:array_cache Yes Yes Yes …

Continue reading ‘尚未完成: Compiz / Beryl / XGL / AIGLX on FreeBSD’ »

统计软件包占用空间的脚本

得益于 FreeBSD 的包管理方法,可以很容易地统计出每个软件包占用的空间大小和总大小~统计下来,总共3.9G左右,OpenOffice最大(310M左右)。通过这个还知道了最大的几个包,找到几个没用的删掉~ 空间大了不少~ #! /usr/bin/perl open(STDOUT,’| sort -n’); $sum=0; while(<STDIN>)#`pkg_info -s ‘*’`) { if (/^Pack/) { next; } unless (/for/ || /block/) { next; } if (/^Info/) { chop; /(^.*) (.*):$/; $x=$2; } else { chop; /(^\d+)/; $sum+=$1; print “$_ $x \n”; } } printf “%8d(1K-blocks) total\n”,$sum; close(STDOUT); Old Blog Link: http://computer.mblogger.cn/henryhu/posts/62323.aspx

统计软件包占用空间的脚本

得益于 FreeBSD 的包管理方法,可以很容易地统计出每个软件包占用的空间大小和总大小~ 统计下来,总共3.9G左右,OpenOffice最大(310M左右)。 通过这个还知道了最大的几个包,找到几个没用的删掉~ 空间大了不少~ 技术细节(也就是那个脚本)可以参看 My Tech Blog~

Maple Windows version running on FreeBSD!

终于成功地在FreeBSD上跑起了Windows版的Maple! Maple的界面部分是基于java的,内核不是。所以界面用FreeBSD Native JDK跑,内核用Wine跑,速度还是可以的,但估计比Linux版慢一些…… 先在Maple目录里建一个脚本,命名maple(为了简便),然后输入: java -Xmx567m -Ddefault.browser=”firefox %1″ -cp “java/mapleresource.jar:java/mapleresource_ja.jar:java/openviz2.jar: java/plot.jar:java/mapleclient.jar:java/maplewks.jar:java/mathdoc.jar: java/mathworksheet.jar:java/mail.jar:java/pen.jar:java/jai_codec.jar:java/jai_core.jar: java/WMFWriter.jar:java/wksloader.jar:java/mathxmltools.jar:java/mapletbuilder.jar: java/MapleActivation.jar:java/xercesImpl.jar:java/xmlParserAPIs.jar:java/xalan.jar: java/externalcall.jar:java/freehep-base.jar:java/freehep-graphics2d.jar: java/freehep-graphicsio-ps.jar:java/freehep-graphicsio.jar:java/freehep-graphicsio-pdf.jar: java/update.jar:java/jniwrap-2.5.jar:jre/lib/rt.jar” -Dmaple.bin.path=”/d/tools/math/maple/bin.win” com.maplesoft.worksheet.application.WmiWorksheet (不要换行) 这些都是参考了bin.win/maplew.exe的出错信息得到的。最后一个rt.jar是参考了前面那些库之后运行的出错信息得到的(里面说apache的XmlParserImpl找不到…… 基于一定在这里的信心,终于靠枚举找到……) 然后,运行它,你能看见界面出来了。但是,随便建一些东西,回车看看:出来一个“Waiting for kernel connection…”的框。命令行那里能够看见,原来是server不能启动,它启动的是maple.bin.path里面的mserver。所以在bin.win里面建一个脚本,叫mserver,内容如下: wine mserver.exe $* 1>stdout.txt 2>stderr.txt 再启动试试~ Maple出来了吧~ 随便算一个东西,也可以了~Old Blog Link: http://computer.mblogger.cn/henryhu/posts/61997.aspx