I am LAZY bones ? all linux

分类: 'gentoo' 的归档

在linux下显示农历

看到标题,很多熟悉linux的朋友估计都会想到曾经的 lunar-applet ,我之前也用过这款软件。
不过lunar-applet其实是基于gnome-panel的clock这个applet的代码做的,只是替换了原来显示日历的控件而已,这样,如果成为单独一个软件的话,得同步上游的代码,维护起来比较累。
所以,最近软件的作者 yetist 再次发力,把lunar-applet拆成了2个包外加一个patch。
具体就是:

  • 只依赖 glib-2.0 的liblunar,这个只提供了计算农历信息的核心的算法;
  • 依赖 gtk库 和 liblunar 的 liblunar-gtk 这个提供一套基于 gtk 的 widget;
  • 然后是给 gnome-panel 的一个 patch,这个patch调用 liblunar-gtk 的 widget,替换掉 clock 的日历显示。

这样虽然描述起来比较费力,但是显然比较合理和易于维护,所以lunar-applet本身也就停止维护了。
现在貌似还没有deb/rpm的包,不过如果你用的也是gentoo的话,可以试试我传到gentoo-china-overlay的ebuild。如果你已经加了这个overlay的话,现在就可以给 gnome-panel 加上 lunar 这个USE,然后重新emerge一下 gnome-panel,就可以看到效果了。
我这里的截图,已经被传到项目主页里去了:
lunar-applet

另外,值得一提的是,liblunar 还自带 python 的绑定哦,你要在python里使用的话,也是相当方便的,给个例子:

>>> import locale, time, liblunar
>>> locale.setlocale(locale.LC_ALL, "")
'zh_CN.UTF-8'
>>> t = time.localtime()
>>> l = liblunar.Date()
>>> l.set_solar_date(t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour)
>>> format = "\n公历:%(YEAR)年%(MONTH)月%(DAY)日\n农历:%(NIAN)年%(YUE)月%(RI)日\n干支:%(Y60)年%(M60)月%(D60)日\n生肖:%(shengxiao)\n"
>>> print l.strftime(format)
 
公历:二○○九年九月二十九日
农历:己丑年八月十一日
干支:己丑年癸酉月丁丑日
生肖:牛
 
>>>

更多信息,还可以在项目主页里挖到。

试验了一下A卡的KMS

KMS(kernel mode-setting) 内核模式设置:即在内核初始化时,也完成图形的始初化,让显示设备从grub加载至进入桌面,都使用标准的分辨率,不需要频繁的切换模式。

这个介绍来自LDCN的文章,在这个文章里,TX兄说,Linux 2.6.31 就支持A卡的KMS了。而2.6.31的内核也刚刚于昨天发布了。今天看了下gentoo的portage,已经有2.6.31的内核了,哈哈,于是我就自然想试试到底什么是KMS了。
在内核选项里打开这个选项:

Device Drivers  --->
  [*] Staging drivers  --->
    [ ]   Exclude Staging drivers from being built
    [*]     Enable modesetting on radeon by default

编译,用新内核启动,内核刚刚初始化,果然就可以看到那个企鹅的logo了,分辨率也是正常的1680×1050了,OpenRC输出的信息的字体都很小,非常适合我这个大屏小字控,哈哈。
虽然控制台看得我是满心欢喜,但是X却出了点问题,还是老现象:开compiz白屏,关了compiz勉强能用,但是性能却很差。估计又是DRM没有成功打开吧。重新编译了一下开源显卡驱动并调了一下xorg.conf都没有解决问题,不得已又把KMS给关掉了,毕竟留在tty的时间还是很少的,是吧~
等找出这两者的冲突的解决办法以后,我会再回到KMS的,哈哈。。。

微调了gentoo的字体

基本是参照WD的这篇文章来做的,devnull这个overlay貌似不是很稳定,本来想昨天就做的,结果昨天死活加不了,今天却又好了。
话说加了这个devnull后全局启用ubuntu这个use,再全局 -cleartype 这个use,重新编译了那几个包,效果还真是不错的。
另外,我这里启用 10-hinting-slight.conf 的效果比启用 10-hinting-medium.conf 的效果更好一点。
我就只管贴图了,具体方法就看wd的文章好了。
下图是我的firefox浏览自己的blog时截的,下面那个窗口的是未调时的截图效果,上面是现在的效果:

调整前后对比图

调整前后对比图

是不是好一点呢?不过好像普通字体变粗了一点点,然后粗体却反而变细了一点点。。。

media-libs/mutagen-1.16

昨天折腾gmbox的时候,发现mutagen已经从quodlibet里独立出来,成为一个全新的项目了.而且已经发布了1.16版本,而gentoo的portage里还是老的1.15.在自己的overlay里测试一下没问题,于是我忍不住报告了,这个bug处理得还挺快,于是现在就有了这个ebuild.
今天,自己就装上这个版本了.
哈哈.portage树里也算是有我名字喽…

grep -1 "05 Jul 2009" /usr/portage/media-libs/mutagen/ChangeLog

看吧~

开始使用wicd管理网络

wicd是一个轻量级的网络管理程序,支持有线连接和无线连接,号称可以代替NetworkManager.
今天对gentoo系统进行常规更新的过程中,发现 net-misc/networkmanager-0.7.1-r6 编译不过去了,一搜bugs.gentoo,果然已经有人报告过bug了.看来事情的起因是 sys-auth/policykit 升级到 0.92 版本之后,api/abi发生了变化,导致configure的时候找不到polkit-dbus导致的.
本来可以先把policykit降级,或者等待更新的.但是联想到最近Networkmanager老有问题,连无线网络经常要半天,反复禁用/启用以后才能连得上,再加上oceanboo又老在那边蛊惑,就决定删了NetworkManager,装上wicd试试.
由于之前全局启动了networkmanager这个use,所以卸掉它还得重新编译不少包.幸好wicd还确实是轻量级的,几秒钟就装上了.后来才发现原来wicd是python写的,界面是PyGTK,难怪编译起来这么快.
到目前为止,发现wicd还是挺不错的,虽然连无线还是很不容易,这个可能时AP的问题了,暂且不管.另外的配置/界面/功能什么的还是蛮舒服的.成熟度也还算是可以了,建议喜欢折腾或者喜欢轻量的朋友试试.

终于在开源驱动下开起了compiz

写之前那篇blog的时候,我还是刚用上开源驱动.但是怎么试性能都上不去:
xorg.conf 也改了很多次,把 /etc/make.conf 里的 VIDEO_CARDS 改成 radeon 和 radeonhd 都试过,mesa xorg-server也来回编译过好几次,包括1.6的xorg-server,但是 glxgears 始终只有100FPS左右(fglrx的时候可以到2500+).而且,更可恶的是开compiz不是没边框就是直接白屏…
后来,查看 Xorg.0.log ,发现里面有这么几行:

drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device or address)
drmOpenDevice: open result is -1, (No such device or address)
drmOpenDevice: Open failed
[drm] failed to load kernel module "radeon"
(EE) RADEON(0): [dri] RADEONDRIGetVersion failed to open the DRM
[dri] Disabling DRI.

这种/dev/xxx的东西,马上就想到了是内核的原因,后面wd告诉我说要打开这个内核选项: Device Drivers -> Graphics support -> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) 并选中下面的A卡模块.
马上重新编译了内核,再启动,果然那几行错误没有了, glxgears 已经到 1100FPS 以上了.开compiz也正常了,整体感觉还是比较流畅的.
先就这样用着吧,不折腾了~目前我的情况是:

Mobility Radeon X1700 (RV535)
VIDEO_CARDS="radeonhd"
sys-kernel/gentoo-sources-2.6.30-r1
media-libs/mesa-7.4.2
x11-base/xorg-server-1.6.1.901-r3
x11-drivers/xf86-video-radeonhd-1.2.5
x11-wm/compiz-0.8.2-r2

gentoo升级后的若干问题

半个月前的某一天,我正在对gentoo进行常规更新的时候,记得当时emerge到了wine,突然屏幕一黑,机器就保护性关机了…用手一摸CPU附近,那是相当地热…
于是,最近一段时间都没有升级过gentoo.
直到后来,我把本本后盖打开,清理了一下里面的灰尘.听风扇的噪音,明显比之前小了很多了,温度也没那么夸张了.于是又开始升级了,一看已经积累了108个包要编译了.这还是我mask掉新内核的结果.
编译之后,nautilus 到了2.26.3,晚上下班后,重启进系统,就发现不对劲了,一堆的窗口把窗口列表塞满了… 后来经过试验发现,只要我一把 /apps/nautilus/preferences/show_desktop 这个勾去掉,就会启动N多个nautilus的窗口,下面的窗口列表里瞬间被挤满了..并且还在不断增加,直到内存耗尽…
问了keke他的情况刚好和我相反,是勾上那个勾勾才会出问题…这个估计是nautilus的bug了,没时间深究,等上头更新了,现在就先看着本不想看到的桌面吧…

还有一个好玩的问题,就是我的音量调节的图标没了,之前还以为是 gnome-volume-manager 这个包的问题,后来TX提醒我才想起这个volume是卷(磁盘分区)的意思,和音量根本没关系,汗了…这算不算英文词汇的匮乏呢?
其实,那个音量调节的applet是在 gnome-base/gnome-applets 里面的.重新编译了一下,又可以用了.而且,那调音量的滚动条变横着了…我怎么觉得还是没竖的好看呢?

====20090630更新====
nautilus疯狂打开窗口的问题终于好了…难道是昨天编译了gnome-base/gnome-session-2.26.1-r1的原因?不管怎么样,我的桌面总算又干净了~

用上了2.6.29的内核,A卡驱动搞定

今天也体验了一把用gentoo来hack的乐趣,哈哈.
昨天(还是前天?)2.6.29的内核就已经进了gentoo的源,今天编译好,用上了,倒是能启动,但是却出了点小问题:我的A卡驱动坏了…编译内核模块的时候,由于内核源文件的修改,使得编译无法通过,无法生成内核模块了…结果我的compiz就罢工了…
于是,就google呗,搜到这个补丁,然后调用gentoo强大的hack功能,就给装上了,方法如下:
1.建一个自己的overlay,用gentoo的应该都有自己的overlay吧? 比如我的在 /usr/local/portage.
2.把 /usr/portage/x11-drivers/ati-drivers/ 复制到 /usr/local/portage 下面.
3.下载这个补丁到 /usr/local/portage/x11-drivers/ati-drivers/files 目录下.注意这个补丁和上面 phoronix 帖子里的不完全一样,用那个在我这里失败了,所以我稍微修改了下路径.如果你的内核源码也在 /usr/src/linux 的话,直接可以用.
4.修改 /usr/local/portage/x11-drivers/ati-drivers/ati-drivers-8.582.ebuild ,在src_unpack()里加一行

epatch "${FILESDIR}"/${PV}/ati-drivers-2.6.29.patch || die "epatch failed"

5.生成 Manifest 之类的以后,就可以emerge了.
完成,我的compiz又回来了,啊哈哈…

订阅了gentoo packages的RSS

用gentoo这么久,还是刚知道Gentoo packages也有RSS的输出,哈哈,于是马上订阅之,以后portage有任何更新都逃不过我的眼睛了。
我订阅的是 ~x86 的,地址是: http://packages.gentoo.org/feed/arch/x86

回到杭州了

终于暂时从北京出差回来了,之所以说暂时,是因为有可能还要去一趟,呵呵。
去北京的时候,几乎没有什么不习惯的,反倒是一回来,就觉得杭州湿冷的空气比较不舒服,好一个烟雨朦胧的江南啊。也许是因为杭州下了太多天的雨了吧。据说我走之后就没怎么晴过?
由于北京我在的地方网络都不好,速度贼慢,所以gentoo也是半个月没更新了,于是一回来马上想更新一下,结果就是:
Total: 68 packages (56 upgrades, 8 new, 1 in new slot, 3 reinstalls), Size of downloads: 198,705 kB
够恐怖的,呵呵。
发现用过快的网速之后,就基本上不能忍受慢的网络了,更别说没网络了,这样下去怎么办啊?