最近升级系统之后桌面没了,发现 xfdesktop 没有起来,于是手动运行,但报以下错误:
xfdesktop[5225]: starting up
process 5225: arguments to dbus_connection_send_with_reply_and_block() were incorrect, assertion "(error) == NULL || !dbus_error_is_set ((error))" failed in file dbus-connection.c line 3301.
This is normally a bug in some application using the D-Bus library.
D-Bus not built with -rdynamic so unable to print a backtrace
在网上搜了一圈,发现需要添加 /etc/dbus-1/system.d/nasz-user.conf:
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="dev">
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device"/>
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Manager"/>
</policy>
</busconfig>
其中 dev 改为实际用户名,然后重启 dbus
/etc/init.d/dbus restart
再运行 xfdesktop & 即可。
7/23/2009
7/22/2009
7/13/2009
在 Gmail 中添加 Twitter Gadget
Twitter 现在已经被封锁了,但如果之前在 Gmail 有 Twitter Gadget 好像可以继续使用哦 :-),那么如果在 Gmail 中添加 Twitter Gadget呢?
1) 让 Gmail 支持 Gadget。进入Gmail Lab,找到 "Add any gadget by URL" 并将它 Enable;
2) 点击 Gmail 右上角的 "setting",选择 "Gadget";
3) 将 Twitter Gadget address: http://twittergadget.appspot.com/gadget-gmail.xml(SSL https://twittergadget.appspot.com/gadget-gmail.xml) 拷贝到地址栏中;
1) 让 Gmail 支持 Gadget。进入Gmail Lab,找到 "Add any gadget by URL" 并将它 Enable;
2) 点击 Gmail 右上角的 "setting",选择 "Gadget";
3) 将 Twitter Gadget address: http://twittergadget.appspot.com/gadget-gmail.xml(SSL https://twittergadget.appspot.com/gadget-gmail.xml) 拷贝到地址栏中;
7/10/2009
6/11/2009
To support QPF font
最近比较忙而且blogspot 仍然被封锁中,因此很久没更新了,手头上的任务比较多阿,比如其中一个活儿就是为公司的一款老设备增加QPF 字体的支持,因为使用QPF,能进一步提高UI 的速度并减小占有的资源,现在已经做的差不多了(不然也没空来写这个了:-))。
那么什么是 QPF 呢,全称 Qt Prerendered Font ,是用于QT/Embedded下的不可缩放的字体,对于QPF 字体以相同格式的存储,所以在字体显示时,Qt只要读取字体,做相应分 析,然后显示就完成了,这样进一步减少了对RAM 资源的浪费,另外QPF字体是基于UNICODE 编码的,因此具有良好的可移植性。
我们定义的字体名称格式为:type-family-style-width-height-charset-encoding1[,encoding2,...]
另外QPF 结构的定义为:
typedef struct _QPFMETRICS
{
char ascent, descent;
char leftbearing, rightbearing;
unsigned char maxwidth;
char leading;
unsigned char flags;
unsigned char underlinepos;
unsigned char underlinewidth;
unsigned char reserved3;
} QPFMETRICS;
typedef struct
{
char font_name [LEN_UNIDEVFONT_NAME + 1];
unsigned int height;
unsigned int width;
unsigned int file_size;
QPFMETRICS* fm;
GLYPHTREE* tree;
} QPFINFO;
对于 QPF 字体就是围绕该结构体进行一系列的操作了。
那么什么是 QPF 呢,全称 Qt Prerendered Font ,是用于QT/Embedded下的不可缩放的字体,对于QPF 字体以相同格式的存储,所以在字体显示时,Qt只要读取字体,做相应分 析,然后显示就完成了,这样进一步减少了对RAM 资源的浪费,另外QPF字体是基于UNICODE 编码的,因此具有良好的可移植性。
我们定义的字体名称格式为:type-family-style-width-height-charset-encoding1[,encoding2,...]
另外QPF 结构的定义为:
typedef struct _QPFMETRICS
{
char ascent, descent;
char leftbearing, rightbearing;
unsigned char maxwidth;
char leading;
unsigned char flags;
unsigned char underlinepos;
unsigned char underlinewidth;
unsigned char reserved3;
} QPFMETRICS;
typedef struct
{
char font_name [LEN_UNIDEVFONT_NAME + 1];
unsigned int height;
unsigned int width;
unsigned int file_size;
QPFMETRICS* fm;
GLYPHTREE* tree;
} QPFINFO;
对于 QPF 字体就是围绕该结构体进行一系列的操作了。
6/03/2009
What is the nc(netcat)?
今天偶然在我们的产品中看到 nc 这个命令,就试了一下,还挺好用,呵呵~
最简单的,先在机器A 运行 nc -l -p 4444,再在机器B 运行 nc 192.168.8.112 4444,这样 A 和 B
两台机器就建立的连接,可以进行聊天了,功能虽然简单,但由此扩展的功能就比较强大了,比如:
(A) nc -l -p 3333 > backup.tar.bz2
(B) nc 192.168.8.170 3333 < data.tar.bz2
这样就将 B 上的 data.tar.bz2 拷贝到了 A 中。
再举一例:
(A) nc -l -p 4444 | tar xvf -
(B) tar cf - . | nc 192.168.8.112 4444
这样就把 B 上的当前目录下所有文件上传到了 A 中。
参考:
http://netcat.sourceforge.net/
http://en.wikipedia.org/wiki/Netcat
5/13/2009
libpcap cross compile for ARM
最近在做局域网内的 Discovery,目前已经做的差不多了,支持的协议有 ICMP, ARP, NETBIOS 和 SNMP等。Discovery 的功能主要就是扫描局域网内的存在的主机和服务等,也就是发送上述协议的包,然后对返回的包进行分析,其中 ARP 用到了 libpcap库,这里先说一下 libpcap库的交叉编译,我是这么编译的:
CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar LD=arm-none-linux-gnueabi-ld ac_cv_linux_vers=2 ./configure --host=arm-none-linux-gnu --target=arm-none-linux-gnu --with-pcap=linux
make
至于协议的具体实现以后再细说 :-)
CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar LD=arm-none-linux-gnueabi-ld ac_cv_linux_vers=2 ./configure --host=arm-none-linux-gnu --target=arm-none-linux-gnu --with-pcap=linux
make
至于协议的具体实现以后再细说 :-)
订阅:
博文 (Atom)

