尚未完成: 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’ »

好你个中国电信!

这两天上各种网站,常常被转到search.114.vnet.cn,搜索乱七八糟的东西。明显这个不是病毒的问题(哪个病毒这么好心,专门往电信的互联星空网站跑?),再加上现在乱输网址都会跑到sh.vnet.cn,遂怀疑中国电信不干好事。 首先,看nslookup。用nslookup查各个网站(im.qq.com, www.ethereal.com)等倒是没有问题,但是涉及到错误的网址么: > a Server: ns-pd.online.sh.cn Address: 202.96.209.133 Non-authoritative answer: Name: a Address: 218.83.175.154 而218.83.175.154和sh.vnet.cn Name: sh.vnet.cn Address: 218.83.175.138 是同一个局域网的。难道有叫a的网址…… 而且输b,c,d,aa,…..都一样。 这个也就算了,反正我很少输错网址的~ 但是,下面这个问题严重了。比如,我上mobile.qq.com: 注:202.96.209.5 上海的一个DNS 202.96.209.133 上海的另一个DNS ***** From Ethereal (www.ethereal.com) Output ****** (My IP)->202.96.209.5 DNS Standard query AAAA mobile.qq.com 202.96.209.5->(My IP) DNS Standard query response, Server failure(My IP)->202.96.209.133 DNS Standard query AAAA mobile.qq.com 202.96.209.133->(My IP) DNS Standard query response, Server failure(My IP)->202.96.209.5 DNS Standard query AAAA mobile.qq.com.HenryPC.org // 1秒以后 (My IP)->202.96.209.5 DNS Standard query AAAA mobile.qq.com.HenryPC.org // 又1秒 (My IP)->202.96.209.133 DNS Standard query AAAA mobile.qq.com.HenryPC.org 202.96.209.133->(My IP) DNS Standard query response A 218.83.175.154// 就是这一行,搞来一个错误的IP (My IP)->218.83.175.154 HTTP GET / HTTP/1.1 // 当中有host: mobile.qq.com, 说明我的机器把这个IP当作mobile.qq.com了! 218.83.175.154->(My IP) HTTP/1.1 200 OK (text/html) 返回的html: <script> s=String(window.location.href); … var KeyList = new Array(273); KeyList[0] = “\262\312\301\345” … KeyList[13] = “mp3” … KeyList[77] = “msn” KeyList[78] = “dj” KeyList[79] = “nba” … KeyList[95] = “s.h.e” … KeyList[273] = “\267\277\262\372”; t=”http://search.114.vnet.cn/search_web.html?id=596&fm=pro&kw=”+KeyList[myradom()]+”&s=83″; //t=”http://218.30.64.194/response.asp?MT=”+mylocal+”&srch=5&prov=&utf8″; document.location.href = t; </script> 也就是这个HTML,导致浏览器跑到search.114.vnet.cn去了…… 后面的纪录就是从search.114.vnet.cn获取网页的过程了…… 关键也就是先解析mobile.qq.com不给回答,然后解析mobile.qq.com.HenryPC.org(假如原来的不行,Windows会加上默认的本地域名,我的机器上是HenryPC.org),这个原本应该给出NXDOMAIN(无此域名)的查询,竟然返回了电信的广告网站,问题就这样出现了…… 所以说,完全是因为电信的DNS的胡作非为导致了这个问题! 经过用nslookup试验,发现: 当我用A方式查询(也就是IPv4的模式),DNS基本正常,但是NXDOMAIN变成了广告页面。 但是当我用AAAA方式查询(IPv6的模式,一般网站还没有这个模式),电信DNS对普通域名返回SERVFAIL(Server Fail),而对不存在的域名也返回广告! …

Continue reading ‘好你个中国电信!’ »

Using aMule

aMule是eMule的一个Clone,在各个平台下都有,用起来几乎和eMule一样,甚至能够读取eMule的部分文件…… 只是没有eMule稳定……  aMule是完全UTF-8化的软件,比如说他对我家FAT32分区上的GBK编码的文件名有很多反感的地方…… 而且下载下来的文件名在我看起来也是乱码(我家的工作环境也是GBK的,他存下来是UTF8的……) 办法总是有的嘛~ 搞了个脚本来自动识别并重命名~ #! /usr/bin/perl use Encode; while (<*.mp3>) {     $raw=decode(“utf8”,$_);     if (encode(“cp936”,$raw)=~/\?/) {         $euc_CN=$_;         print “Not Changed: $euc_CN\n”; } else {         $euc_CN = encode(“cp936”,$raw);         rename($_,$euc_CN);         print “Has Changed: $euc_CN\n”;     } #     symlink($_,$euc_CN); } 实话说,这样的检测方法很不怎么样…… 但是用Encode里面的Detect竟然把一个GBK的当成了俄罗斯文…… 汗死…… 还不如这样的“实践有效”的方法~ 也就是:原来GBK的东西用UTF-8解码再用GBK编码会出现一堆”?”… 但是,我也不知道,UTF-8 Decode之后成了什么了…… 还需研究…… Old Blog Link: http://computer.mblogger.cn/henryhu/posts/62324.aspx

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

得益于 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

Batch file to automatically pack source

BAT file: @for /F “tokens=1,2,3 delims=- “”” %%i in (“%date%”) do @set shortdate=%%i%%j%%k @for /l %%i in (1,1,100) do @( @if NOT exist src%shortdate%-%%i.zip @( @if NOT exist src%shortdate%-%%i.rar @( @zip -9 -r src%shortdate%-%%i.zip Comm Sender -x *.exe *.~* *ModelSupport* *_history* *.dcu @echo Zipped into src%shortdate%-%%i.zip @goto END ) ) ) :END 用这个脚本来自动压缩源代码~ 比原来方便多了~ Old …

Continue reading ‘Batch file to automatically pack source’ »