25
2009
4

reboot,will,and change

80后,牛人群,geek群突发性暴涨,人们很执着,个性,自恋。
我何尝不是geek,却很久没有像一个geek般生存了,我内心深处希望多一些高中时 zaki 这样的朋友。

扩展自己的视野,热衷自己的小事业,学习东西很有感觉,做自己喜欢的,但是又不会被和谐的事情。

好了,真的不知道要说什么,反正,这里也没有人看了。

zhetengmaomao只是笔记本,google能搜索到的,这里通通没有,它们都是原创的、低含金量的搜索引擎内容填充容器。

这里是盘古空间的废弃地,这里没有任何我爱的东西,没有我的幻想,没有我成日不变的固执,没有我。所以我不要了,我都不要了,重生吧,you are not just a man。

  • nick
  • email
  • blog
  • technology
  • think
  • love
  • believe

折腾猫猫,byebyebye
我要 重生 了
xin-jin bai-sao quan-chao-tian ren-yun kou-xia si ren-er

38.21% geek ,31.07%相当独立的脑浆,21.13%偏执固执,9.34%好心肠,0.23%感性的大脑,0.02%爱自己

this is a tag remember me to do something different than before. good bye.

Written by ChuangBo in: 未分类 | 标签:,

24
2009
0

[附英文locale解决方案]ubuntu 9.04 jaunty 安装最好用的ibus输入法

Logo

原本用scim,跟很多软件有兼容问题,后来听说fitx这个用python写的客户端(基于scim-python)的输入法很好用,就换了,确实比scim好用很多,就是有些bug,还因为scim经常崩溃无法输入,似乎很久没更新过了,那个作者主要开发Fun Input Toy

我是在TualatriX那里看到iBus。这个人也十分有来头,是ubuntu-tweak的的作者,并且还是一名大三学生。ubuntu-tweak是用python写的,这个人也是pyfan,还用django写了自己的博客,功能十分全面,他的开源项目还是蛮多的。特别是ubuntu-tweak,在各大网站评测、推荐过,很早就进入了ubuntu官方源。

iBus是linux下自称是下一代输入法平台的输入法( It is a next generation input framework. )。

iBus也是scim-python的作者Shawn.P.Huang开发的。客户端也是python,我对python十分热爱,就是基础还不太好,来不及学它。

iBus在ubuntu可以方便的获得,添加ubuntu-cn这个第三方源就可以用apt抓回来

#ubuntu-cn for 8.10
deb http://archive.ubuntu.org.cn/ubuntu-cn/ intrepid main restricted universe multiverse
 
#ubuntu-cn for 9.04 还没有,不过也是早晚的事吧?
# deb http://archive.ubuntu.org.cn/ubuntu-cn/ jaunty main restricted universe multiverse

ibus是必选包,拼音输入再ibus-pinyin,五笔郑码之类的码表输入是ibus-table

但是目前这个0.1.1.2008在我的英文locale下不能默认工作,用这个方法可以让它工作。

我猜测是每个GTK程序或者QT程序打开的时候绑定的so动态链接库是根据它提示的变量链接的,

# For iBus input method
export GTK_IM_MODULE=ibus    # for gtk+ app
export XMODIFIERS=@im=ibus   # for old x app
export QT_IM_MODULE=ibus      # now for qt4 app only

在.bashrc里写好只能对终端启动的程序有效,我这样解决,也不知道对不对,反正行了,我已经发email给Shawn.P.Huang和LI Daobing询问此事了。

# im-switch -z en_US -s ibus
# ln -s /etc/X11/xinit/xinput.d/ibus  ~./xinput.d/en_US

很早看过一篇文章说学习拼音输入法的源码可以学到很多东西,大意是说输入法麻雀虽小五脏俱全,技术含量很到位,而这么多的输入法引擎稳步推进着,不停的积累。

感谢这么多牛人做了这么多的工作,提供了源源不断的动力。

Written by ChuangBo in: Python, Ubuntu | 标签:,

21
2009
1

[春天]DirectFB v1.3.0图形库在嵌入式linux上的移植

来了北方才知道,如果没有冬天,也就没有春天。

因为要参加2009年的某比赛(暂时小小的保密一下),我们的项目要做的是——使用了水平倾角传感器和加速度传感器的——具有简单物理引擎的——健身益智类游戏。

这个项目的第一站和第二站就是解决图形库和传感器的问题。
qt是个好东西,封装完善,还有诺基亚这个牛后台狂顶它……
可惜我们的板子没有一颗4核的core2处理器,也没有nVidia的4核显卡,所以,鉴于QT的超低执行速度带来的噩梦,绣球不给她。
移植什么库呢?
我第一想到的是allegro,这个是一个专业的、跨平台的、牛的游戏开发库,它已经不只是图形库了,只要是游戏的各个方面他都有。它的demo很爽。哈哈。而且,我恰好用过
它支持framebuffer。
可是移植它遇到了很多困难,现在想想,好像是找不到模块的问题,而且这个库是为pc写的,为x86架构做了很多优化,而且不支持触摸屏(鼠标驱动没有触摸屏设备或者封装tslib,要改也不是不行,只是麻烦得很)。最终我放弃了。

搜阿搜阿,好了正题到了,终于到DirectFB了。

DirectFB是一个基于framebuffer的“图形库”,它的主要领域是嵌入式,GTK+有针对与DirectFB的实现噢!DFB做底层。
当然我们暂时永不到gtk+。他还支持触摸屏,tslib是当初移植小板的qt时候顺便移的,就用它吧。
现在跑几个demo看看,速度刚刚滴~哈哈

好了说移植:
先是环境
博创的 pxa270 板子
博创的 pxa270A 编译链3.4.6不带软浮点,注意噢,多了一个A
博创的 pxa270A blob无源码
我修改的博创的 pxa270内核2.6.9 修改了网卡驱动,暂时没改flash分区
下载吧首先:
DirectFB 1.3.0 源码
DirectFB example 1.2 例子
freetype 2.3.9 它依赖的矢量font库
giflib 4.1.6 gif库,可选,跑demo必须
jpegsrc v6b jpeg库同上
libpng 1.2.35 png库同上
tslib 1.4 小板内核必须,触摸屏库

tslib就不说了,根据小板的触摸屏走向修改了几个xy,太久了,忘了。

tslib其实可以不需要的,因为DirectFB支持一些常用的触摸屏,但是我们手上的内核使用的是input event

看到有人搜索tslib1.4下载,链接到这里了,那么就在这里放一下下载链接好了。

这个其实是用svn同步下来的,trunk里面正好是1.4的版本号。

svn co svn://svn.berlios.de/tslib/trunk/tslib tslib

下载tslib1.4点这里!

其他的无非就是指定一下编译链CC什么的,指定一下编译选项CFLAGS.LIBS什么的
configure make make install 老一套了
我习惯用脚本来干,这是例子
#!/bin/sh
export CC=arm-linux-gcc
export AR=arm-linux-ar
export LD=arm-linux-ld
export RANLIB=arm-linux-ranlib
export PREFIX=/mnt/yaffs/libjpeg
export EXEC_PREFIX=/mnt/nfs/libjpeg

./configure –prefix=${PREFIX}
–exec-prefix=${EXEC_PREFIX}
–host=arm-linux
–target=arm-linux

下面是重头戏,DirectFB的配置与修改
这个库的configure里面有个地方有逻辑问题

这一段是我的分析过程,急着去买菜或者去食堂或者约会的同学可以跳过了。
问题是运行后提示 can’t find system,大概是这样,systems是一些模块的目录,fbdev之类的实现图形的底层接口模块。
也就是说找不到目录。好类,我调试,我grep -R “上面的错误提示” .
进去,找了一下具体path是哪个变量,我看到模块加载的函数在lib/direct/modules.c里,156行 dir = opendir( directory->path );
我直接printf directory->path,好发现问题,它的路径合并了prefix和exec_prefix,寻找宏,在modules.h里75行处,有个宏MODULEDIR,又grep,这个宏是gcc传进来的,
根据我gcc的经验,传全局宏的方法是-DXXXXX于是我搜索,发现在lib/direct/Makefile的296297行,添加了一个SYSROOT的变量在MODULEDIR的前面,于是再grep SYSROOT,发现了,这个值与prefix重合,按理说这个变量只有在configure时启用–with-sysroot的时候才有的,我再grep,好了,问题所在,configure的27714-27723行,逻辑错误,直接全部#注释,空留一个SYSROOT=,搞定

好了,跳过上一段的朋友,如果你是着急去约会,我就要说你了,约会在乎这几分钟吗?难道(他、她)没有放你鸽子过吗?

好了编译,依然是脚本,请注意这些选项,是锤炼过的,注意修改路径,还有我打开debug选项,因为我是nfs挂载调试的,正式使用需要关掉并且strip它们

#!/bin/sh
export CC=arm-linux-gcc
export AR=arm-linux-ar
export LD=arm-linux-ld
export RANLIB=arm-linux-ranlib
export TSLIB_CFLAGS="-I/home/cat/tslib-1.4/build/include"
export TSLIB_LIBS="-L/home/cat/tslib-1.4/build/lib -lts"
export FREETYPE_LIBS="`/mnt/nfs/freetype/bin/freetype-config --libs`"
export FREETYPE_CFLAGS="`/mnt/nfs/freetype/bin/freetype-config --cflags`"
export CFLAGS="-I/mnt/yaffs/libpng/include -I/home/cat/workspace/jpeg-6b -I/mnt/yaffs/libgif/include"
export LDFLAGS="-L/mnt/yaffs/libpng/lib -L/home/cat/workspace/jpeg-6b"
export LIBS="-lpng -ljpeg"
./configure --prefix=/mnt/yaffs/DirectFB/
--exec-prefix=/mnt/nfs/DirectFB
--with-sysroot=/mnt
--host=arm-linux
--target=arm-linux
--enable-x11=no
--enable-osx=no
--enable-voodoo=no
--enable-mmx=no
--enable-sse=no
--enable-fbdev=yes
--enable-gif=yes
--enable-jpeg=yes
--enable-video4linux=no
--with-gfxdrivers=none
--with-inputdrivers=keyboard,linuxinput,tslib
--with-tests
--with-sysroot=/mnt/yaffs/DirectFB
--without-smooth-scaling
--enable-freetype=yes
--enable-debug

下面是example

#!/bin/sh
export CC=arm-linux-gcc
export AR=arm-linux-ar
export LD=arm-linux-ld
export RANLIB=arm-linux-ranlib
export DIRECTFB_CFLAGS="-I/mnt/yaffs/DirectFB//include/directfb -D_REENTRANT"
export DIRECTFB_LIBS="-L/mnt/nfs/DirectFB/lib -ldirectfb -lfusion -ldirect -lpthread"
export CFLAGS="-I/mnt/yaffs/libpng/include"
export LDFLAGS="-L/mnt/yaffs/libpng/lib"
export LIBS="-lpng"
./configure --prefix=/mnt/yaffs/DirectFB-example/
--exec-prefix=/mnt/nfs/DirectFB-example
--host=arm-linux
--target=arm-linux
--enable-debug

好了,打开板子,把目录nfs挂上去,设置LD_LIBRARY_PATH
执行例子,我建议首先执行df_dok这个是测benchmark的,需要移好了png和jpeg和gif,效果不错,很快。

我这个运行警告,设置ywrap参数非法的问题(panning error),google了一下,开发者说有些嵌入式不支持,警告很正常:
===================================
On Sun, Nov 02, 2008 at 12:28:34PM +0100, Collin Gregory wrote:
> Hi everyone,
>
> I know this problem has been treated so many times, but i didn’t find any
> tips to solve it…
>
> I’m using uvesafb for my fb manager, and when i try to launch vlc with
> directfb , i have always the same error : Panning Display failed (x=0 y=0
> ywrap=0 vbl=1)

It is simply a warning and it used to be printed even when the fb driver
didn’t support panning. Your application should still work (albeit
without page flipping).

I just pushed some fixes yesterday which should also prevent the
warning from being printed when the driver doesn’t support panning.

> What is annoying me is the ywrap=0 , does it means that ywrap is not
> activated ?

Yes.
=====================================
我的有CreatSuface失败的问题,不知道是哪个模块没打开的缘故,不过很多都可以跑了

也可以df_input,测试输入的,键盘和触摸屏都可以。

这时候是不是完了呢?不是,还要校准触摸屏。运行arm-linux-dfbpenmount(不知道在哪?死了算了),屏幕出现两个十字,点完了出现让你吧minx miny maxx maxy之类的填到inputdrivers/penmount/penmount.c 99行,rebuild。

好了,可以开始DirectFB之旅了,谢谢观赏

Written by ChuangBo in: 图形库 | 标签:, , , ,

19
2009
0

Ubuntu 9.04 – Comming Soon!

Ubuntu 9.04 - Comming Soon

Written by ChuangBo in: 未分类 |

01
2009
0

愚人节我快乐

烟台阳光100

照题

很久没有更新,确切的说是4个月了。域名2块,空间200块,这就浪费了几十块了。

自从看了徐宥牛的这个博文后,也发现了自己博客里全是炫耀帖,比如我干了什么什么,我学了什么什么,丝毫不值得阅读,没有价值可言。于是不敢随意写了。

于是google reader 里添加了一堆牛人博,但是粗体的已经280条了。各个列表里也积累了300多。

消灭未阅读的条目很消耗时间,获得的东西看似很多,其实杂乱的很,不能得到多少东西。

要多学习,多读书,向牛人学习~

看牛人们学python都用django做自己的博客,我也要试试,换换自己的博客系统。

花了一周粗浅的学习了下php,mysql,和lihai一起为实验室做了主页和简单的文档管理系统,用的最原始的php,没有尝试框架,接下来想向学校申请域名,打算再加上以前实验室自己内部的源,为更多的ubuntu,gentoo爱好者提供源服务,也宣传宣传嵌入式系统实验室。

实验室很多学长因为考研而离开实验室了,我们能否接过接力棒,把实验室的传统和实力沿袭下去呢?

Written by ChuangBo in: 未分类 | 标签:

Powered by WordPress | Aeros Theme | TheBuckmaker.com | 鲁ICP备08103482号