I am LAZY bones?
AN ancient AND boring SITE

解决了gentoo下的luit乱码/崩溃的问题

问题的起因是这样的: 我之前的那个sssh快速登录脚本,到了gentoo下,发现就不灵了,输完命令回车,就直接出错退出了,在排除了expect的问题和ssh本身的问题以后,很快就把问题定位到了luit,luit是个用于装换终端程序编码的东东,我的sssh脚本就是靠它登录gbk的远程服务器的.但是gentoo下,却出了问题.
于是拿个gb2312编码的fcitx的config文件做了下测试,如下:
$ luit -encoding gbk cat ~/.fcitx/config
段错误
而执行 luit -encoding gb2312 cat ~/.fcitx/config 出来的又是乱码.(ubuntu下不管是gbk还是gb2312都是正常输出的.)

然后我就strace了一下:
strace luit -encoding gbk cat ~/.fcitx/config
发现有这样的输出:

open(“/usr/share/fonts/encodings/encodings.dir”, O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=4526, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78ff000
read(3, “128\ngb18030.2000-0 large/gb18030.”…, 4096) = 4096
open(“/usr/share/fonts/encodings/large/gbk-0.enc”, O_RDONLY) = -1 ENOENT (No such file or directory)

马上 ls /usr/share/fonts/encodings/large ,发现有个 gbk-0.enc.gz 但是没有 gbk-0.enc 这个文件,所以上面报打开失败.而且这个文件名是从 /usr/share/fonts/encodings/encodings.dir 里读取的.所以看了下:

$grep gbk /usr/share/fonts/encodings/encodings.dir
gbk-0 large/gbk-0.enc
gbk-0 large/gbk-0.enc.gz

发现有这么两行输出,猜想会不会是顺序问题,意思把那文本里面的这两行对换了下位置,再 luit -encoding gbk cat ~/.fcitx/config 的时候,发现输出正常了,哈哈,当然sssh脚本又可以用了~~

也用上2.6.27的内核了

话说这gentoo的更新还真够快的,前几天才发布的2.6.27正式版内核,今天就进了portage.于是就编译,用上了.
没有什么大问题,因为之前的ipw3945和alsa-drivers都是另外安装的,而这次我决定把他们都弄到内核里面,这样就不用在每次换内核以后,都重新安装那几个包了.也因此,内核也增长到了2.5M以上,呵呵.
重启以后,发现alsa的声音没有任何问题,至于无线,iwconfig里面能看到,设备由原来的 eth1 变成了 wlan0.但是 ifconfig里面缺没有了,而且 ifconfig wlan0 up 居然提示:”SIOCSIFFLAGS: 没有那个文件或目录”.irc问了一下,说是由于缺少firmware,而且 dmesg 里面会有一堆这样的信息:

firmware: requesting iwlwifi-3945-1.ucode
iwl3945: iwlwifi-3945-1.ucode firmware file req failed: Reason -2
iwl3945: Could not read microcode: -2

解决方法就是安装这个包: iwl3945-ucode 装完之后 ifconfig wlan0 up就正常了,哈哈.
这下可以把这些包都卸载了: net-wireless/ipw3945 net-wireless/ipw3945d media-sound/alsa-driver

gentoo下的bash-completion

基本上就是 emerge bash-completion ,然后安装提示,在 ~/.bashrc 里面加上一行 [[ -f /etc/profile.d/bash-completion ]] && source /etc/profile.d/bash-completion
然后就搞定了,因为我的 /home 是和ubuntu共用的,所以稍微修改了一下,两个系统不同部分这样处理了,如下:

if echo “uname -a” | grep gentoo >/dev/null ; then
[[ -f /etc/profile.d/bash-completion ]] && source /etc/profile.d/bash-completion
alias au=’sudo emerge –sync && sudo emerge -avuDN world’
alias ai=’sudo emerge -av’
alias ar=’sudo emerge -av –unmerge’
alias as=’eix’
else
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
alias au=’sudo apt-get update && sudo apt-get upgrade’
alias ai=’sudo apt-get install’
alias ar=’sudo apt-get remove –purge’
alias as=’apt-cache search –names-only’
alias aw=’aptitude show’
fi

还有一点点小问题,就是我的系统(wd的也是)里面 source /etc/bash_completion 以后, echo $? 看到的是1,但是oceanboo的就是0,而且文件的md5sum都是一样的.这问题貌似不怎么影响使用,就是有点不解而已.
另外,bash-completion的更详细用法可以参见这里

cpu的降频和温度监控

以前一直以为自己的cpu不支持降频,也就没怎么去研究,直到 lerosua 告诉我,那是因为我没配置好,呵呵,汗自己一个。
其实也很简单,ubuntu和gentoo下都只要安装 cpufrequtils 这个包即可。然后确保加载了 acpi_cpufreq 这模块。
然后就可以用 cpufreq-set 命令调解cpu的频率了,默认是调整第一个内核,要调另外一个,只要加 -c1 参数即可。 -g ondemand 可以把cpu置为自动调解状态,会按需条件频率。
另外 cpufreq-info 命令可以查看当前cpu的频率、以及支持的频率等等,也可以在面板上放两个“cpu频率范围监视器”,没个监视一个内核,比较直观。
cpu的温度检测是要安装 lm-sensors 这个包,可以先用 sensors-detect 查看你的硬解有哪些传感器,按照提示做,就会把几个内核模块加进 /etc/modules 里面,也可以手工 modprobe ,完了以后执行 sensors 就应该有输出了,不过我的输出比较奇怪:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +13.0°C (crit = +100.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1: +10.0°C (crit = +100.0°C)

室温都不止这点温度,难道是传感器坏了?

记一下新的vbox源地址

以前的源

deb http://www.virtualbox.org/debian hardy non-free

早就已经不能用了,因为觉得没有升级的必要,也就一直用着老版本的vbox,是1.6.2。但是因为在我的gentoo下装的2.0.2的新版本,于是在gentoo下的新vbox里面打开了虚拟的xp系统以后,再用老的vbox就不能打开了,于是ubuntu下的也被迫升到了新版本,真的是被迫的,还装了一堆qt4的库呢。。。
被sun收购以后的源地址在这个页面里面有,记一下:

deb http://download.virtualbox.org/virtualbox/debian hardy non-free

,感觉2.0系列的除了要求qt4库以外,也没啥大变化啊,要说有,那就是包名变成了:“virtualbox-2.0”。

语音播报天气的脚本

我以前写的一个天气预报脚本,由xiooli同学完成了语音部分,嘿嘿,效果还不错的哦~
下载地址: http://ftp.ubuntu.org.cn/home/xiooli/say_weather.tar.gz 或 http://linuxfire.com.cn/~lily/say_weather.tar.gz

xiooli的原帖在这里,还有他的一个报时脚本,也很好玩。

gentoo下gedit不能自动识别编码的问题

gentoo下的gedit,无法自动识别编码,打开fcitx的配置文件之类的那种GB2312的文件,中文就是一片乱码了。
想想ubuntu下的gedit是会自动转编码的,肯定是配置问题,上irc问了,oahong告诉我个地址:http://www.linuxsir.org/bbs/showthread.php?t=310960&highlight=
解决办法就是:

也可以在 gconf-editor 里面改。

gentoo下的firefox鼠标中键不能关闭标签问题解决方法

这个问题不难,但是也记录一下。
ubuntu和windows下的firefox,都可以中键关闭标签,习惯了这种操作方式以后,发现gentoo下的居然不是这样的,点了中键以后,居然把剪贴板的内容贴到地址栏了,呵呵。
解决办法是firefox打开about:config,然后找到middlemouse.contentLoadURL这个键值,并设置为false,就好了。

fcitx 918纪念版

fcitx的作者Yuking停止开发这个可爱的输入法,转眼也已经有一年多了。
这1年多的时间里,虽然fcitx有些小问题,但是我还是坚持使用了,可能是因为习惯了,可能是因为不喜欢scim的臃肿。
最近,终于让我搞到内部流传的918纪念版,没错,是08年的918,心里很是高兴,不仅是因为这个版本,更是因为得知Yuking并没有完全放弃这个项目。
这个版本有几点改进,最主要的就是在firefox下输入的时候,不会选不上第二个候选词了。另外的改善还有输入大写字母,会自动转为英文模式,双击ctrl可以切换回来等等。同时,config文件的格式也有点变化了,最好备份原来的config并删除以后,让程序自动生成一个默认config,再进行修改。
贴个图炫耀一下,呵呵:
fcitx080918

flash插件引起的怪问题?

今天发生了一件挺郁闷的事情,我的电脑突然黑屏,而且不止一次。
黑了以后可以进入tty1,发现一堆进程都还在,但是Xorg这个进程defunct掉了,而且-9都杀不死,杀它的父进程gdm也杀不死,只能reboot了事。
但是reboot了以后,不久又是黑屏,不过这次我慢慢注意到了,是在我最小化firefox的那个瞬间黑掉的。
于是想是不是firefox刚升到3.0.2版本的缘故呢?但是问了irc里面的很多人都说没问题,而且自己也不是每次最小化的时候都黑屏的。
又黑了一次之后,总结出更细的规律了,那就是,只有打开有flash的页面的时候,最小化才会黑掉。于是马上想起,之前由于某个网站的要求,我曾把flash插件升级到“shockwave Flash 9.0 r124”,应该就是这个原因了,幸好原来的so文件有备份,马上换回“shockwave Flash 9.0 r31”,至少到现在还没发现问题,再观察一段时间看看。