用镜头记录,用心灵体验 | 订阅本站 | 所有笔记 | 亲和力设计 | 流量

DB2 学习笔记

博客话题:DB2,Linux,Web,业余无线电,户外,摄影,截拳道,Thankpad,其他

Thinkpad and PDA

与Thinkpad 笔记本电脑和PDA 使用相关的话题

Nokia E71 杂记

说点废话E71是一款可以打动我的手机,无论是外形还是内在。相比使用了两年的Windows Mobile 平台的多普达手机,我对Symbian 系统的评价更高,或许是我的D700 型号太老了,总之,我能找到一大堆理由替换掉她:多任务切换需要第三方支持,更重要的是切换过程的反应速度过慢;内存占用过多时,会出现中文输入无法呼出的问题;无线或者蓝牙有时需要reboot一下系统才能启动;因电池耗尽更换电池后,需要手工关闭飞行模式,作为PDA设计无可厚非,作为电话却繁缛了点;最重要的一点,通信模块有时会假死,PDA功能正常,但电话打不进来;决定性的因素,她终于被我摔坏了:(黑莓、iPhone、Gphone或许都是不错的选择,尤其后两者的Shell 环境尤其吸引我,但E71 现在占据了我的心灵:)E71已经用了月余,让我欣慰的是,仅仅花费了一周左右的时间,就获得了在Mobile平台折腾月余的成果 。废话到此为止,现在分享一下E71经验。E71 可以共享PC连接上网吗? 通过数据线目前似乎不能。  通过蓝牙似乎需要安装第三方软件才可以。  通过WIFI可以,参考下面链接。测试成功!  http://bbs.dospy.com/thread-1935390-1-2.html 更新(2008-12-20):我的步骤与上面链接有些不同(不需要配置手机端的ipv4地址。PC端的无线连接也不需要手动指定DNS),简要列出如下: 前提:电脑通过某网络接口(一般是以太网卡)连接到Internet,获取的是内部IP或是外部IP没有关系。 在此网络接口上设置允许共享此连接,可共享此连接的网络选择电脑上空闲的无线网络接口。 验证无线网络是否分配了192.168.0.1/255.255.255.0...

说点废话

E71是一款可以打动我的手机,无论是外形还是内在。相比使用了两年的Windows Mobile 平台的多普达手机,我对Symbian 系统的评价更高,或许是我的D700 型号太老了,总之,我能找到一大堆理由替换掉她:

多任务切换需要第三方支持,更重要的是切换过程的反应速度过慢;内存占用过多时,会出现中文输入无法呼出的问题;无线或者蓝牙有时需要reboot一下系统才能启动;因电池耗尽更换电池后,需要手工关闭飞行模式,作为PDA设计无可厚非,作为电话却繁缛了点;最重要的一点,通信模块有时会假死,PDA功能正常,但电话打不进来;决定性的因素,她终于被我摔坏了:(

黑莓、iPhone、Gphone或许都是不错的选择,尤其后两者的Shell 环境尤其吸引我,但E71 现在占据了我的心灵:)

E71已经用了月余,让我欣慰的是,仅仅花费了一周左右的时间,就获得了在Mobile平台折腾月余的成果

废话到此为止,现在分享一下E71经验。

E71 可以共享PC连接上网吗?

  • 通过数据线目前似乎不能。 
  • 通过蓝牙似乎需要安装第三方软件才可以。 
  • 通过WIFI可以,参考下面链接。测试成功! 
    http://bbs.dospy.com/thread-1935390-1-2.html 

更新(2008-12-20):

我的步骤与上面链接有些不同(不需要配置手机端的ipv4地址。PC端的无线连接也不需要手动指定DNS),简要列出如下:
  1. 前提:电脑通过某网络接口(一般是以太网卡)连接到Internet,获取的是内部IP或是外部IP没有关系。
  2. 在此网络接口上设置允许共享此连接,可共享此连接的网络选择电脑上空闲的无线网络接口。
  3. 验证无线网络是否分配了192.168.0.1/255.255.255.0 的地址。不需指定网关和DNS。
  4. 配置无线网络:选中“使用windows管理无线网络”,并添加一个adhoc类型的网络,SSID可随意命名,比如:myadhoc,可选择加密方式,比如WEP,并手工设置一个密钥。
  5. 下面配置手机端,进入连接设置,新增一个无线接入点,adhoc类型,SSID同为myadhoc,设置相同的加密方式和密钥,不用指定IP,网关,DNS等,保存。
  6. 手机上打开web,选择新增的无线接入点 myadhoc,连接应该成功。 

E71 使用8G卡会不会因为扫描大容量降低反应速度?

已升级Sandisk 8G,无速度降低。

每次开机都自动安装软件,最后提示失败,为什么?

我购的是欧版,已在上级批发商统一刷过BOIS,估计是新系统与原TF卡的兼容问题。

删除TF卡上此目录下的文件可解决问题:\private\10202dce

使用条码扫描工具扫描商品上的条码,没有任何结果。

E71自带条码扫描工具仅支持二维条码,通常商品包装是一维条码,可以这个页面中的二维条码 ,识别速度很快。

是否有手机版飞信?

可使用这个E62版的飞信程序 

有关E71的辐射

降低辐射的方法

通话中录音

使用系统录音机,启动有些繁琐,录音过程对方能听到提示音,音质很好。有第三方可避免以上问题,不过不喜欢复杂。

录音过程中如果离开录音机的画面,则自动暂停录音,注意不是停止,返回后可按键继续录音。

MSN, Gtalk, ICQ...

Fring ,不二的选择。

最近msn官方刚发布了移动版,同样支持Symbian平台,不过服务页面不支持Firefox,未下载成功,哪位有空可尝试下。

Podcast

系统内置Podcast目录, 可直接订阅下载(小心GPRS下会产生巨大流量),系统播放器会自动读出播放列表。

更新(2008-12-20): 

解释一下Podcast的使用,界面中第2个选项Directory(目录)是podcast管理器,里面预存了可以订阅的资源入口,每次访问前需要在线更新资源列表,更新成功后可以进入列表选择要订阅的具体资源,订阅成功的资源会在界面的第一个选项Podcasts中出现。

podcast管理器可以通过添加在线的OPML来扩充,也可以导入一个本地的OPML文件,从而批量增加podcast资源入口。

如果已知某个podcast资源URL,可以在Podcasts (第一个选项)中直接添加。下面是我添加的几个PBS科普podcast:

http://www.pbs.org/nova/rss/nova-podcast-pb.xml
http://www.pbs.org/nova/rss/nova-vodcast-pb.xml
http://www.pbs.org/nova/sciencenow/rss/nsn-podcast-pb.xml
http://www.pbs.org/nova/rss/einstein-podcast-pb.xml 

在Podcast中选择某个条目后,后面出现的白色方块图标,表示正在请求数据,请等待。 

对于一些内置播放器无法播放的视频,可以安装一个CorePlayer来解决。 

字典

可在线下载Dictionary Language 并安装 Chinese等感兴趣语种,并设置source/targe language

有关GPRS流量

Log中可查看GPRS 单次数据传输量,以及总量,可在月初手工清零。

彩信导致的流量也会计入,一般这部分是按条单独收费,需要考虑。

Nokia Maps 语音导航

使用破解的Nokia Maps 2.0 + 证书签名,驾驶导航功能一直在计算路径,无法进入导航。

如果地图与语音文件已安装好,那么可能是TF卡上缺少以下文件导致:

\cities\diskcache\CacheddatHeader.cdt 文件必须存在

另外:

\cities\diskcache\ffffffff.cdt 文件不能离线自动生成,但缺失情况下也可以语音导航。
\cities\diskcache\config.cfg 文件可以离线自动生成。
2个qf 文件可离线自动生成。
\cities\qf
\cities\diskcache\qf

此问题与语音文件的语言无关,可以配置成与地图使用不同种类的语言。

与选择的开始或者目的地点没有详细道路没有关系(两点之间必须有完整的地图道路数据,区别于地图未下载完整)。

如果希望使用与系统语言不同的Nokia Maps数据

那么千万不能在Nokia Maps中使用go online选项,否则会瞬间丢失所有本地地图数据。

go online 之后Nokia Maps会自动在线更新地图,并且会根据系统的语言选择相应语言版本的地图数据,如果不符,会删除所有本地地图数据,并下载新的符合语言版本的地图数据。有人说修改qf文件中的languageID可避免不期望的删除,但经测试无效:

English 是129,大陆是31,但修改后软件会自动根据系统语言更新这个文件,如果修改后设为只读,虽然软件无法修改成功,但依然删除原有数据并下载与系统语言相符的地图数据。

开心网

可通过手机短信在开心网发布记录,或者通过彩信在开心网发布图片,目前(2008-11-08)免费。

以上功能需要在开心网进行手机号码绑定设置。

GPS

GPS 在野外开阔地带第一次定位速度在1分钟内,经过长途导航测试,GPS表现非常稳定。开启GPS 利用地图持续导航的情况下(另外运行一个SportTracker保留轨迹),满电电池可以坚持10小时左右。

其他

通过WIFI 共享PC Internet连接,速度非常快,最高160k左右,几乎达到了电信宽带实际速度的上限。
 
运行第三方Energy Prifile 1.1 过久会导致手机自动重起。

Activated connection中可查看WIFI连接的当前状态和速率。

使用蓝牙连接PC suite,没有卡正在使用的问题。平时开着PC端蓝牙,一旦打开手机蓝牙即可自动连接PC suite,十分方便,缺点是文件传输速度稍慢。
 
SMS Spam Message 后台运行导致PC suite 连接后找不到TF卡,只有内存卡。

科大讯飞语音电子书for Symbian 1.0 还不支持第三版,已经咨询过官方,目前无法运行在E71上。已注册了软件,等待升级,对于未来升级版,注册码在同一手机上有效。

输入法我用A4,奥运五环E71专用版。

BizReader在有的版本系统自带,没有的可自己下载,其利用摄像头扫描名片,出人意料的实用。

拍照时,按数字键2 先对焦,否则你可能会更嘲笑这个350w的。

更新 2008-12-20

在上面增加了一些更新。 

(未完)

延展阅读

Posted by Alex at 1:52 AM | Comments (0) | Edit | Taged: E71 (1), nokia (1)

Gentoo Linux on T43 (15) Fn + Keys

对于Linux 对Thinkpad Fn 组合键的支持的了解一直比较模糊,有很多内核中的支持以及软件包,不太清楚具体的分工以及关系,今天查阅了一些资料,试图清理一下自己的思路,也把自己的配置共享一下。 下面给一些包及内核Module加一些注释: 内核Thinkpad ACPI 在2.6.20 中叫做IBM ACPI,这里是它的项目主页。如果编译为module,名字为thinkpad_acpi,它的功能是把Fn 组合按键的事件export 到/proc/acpi(在kernel-2.6.24 中应该选择此项:[*] Deprecated /proc/acpi/event...

对于Linux 对Thinkpad Fn 组合键的支持的了解一直比较模糊,有很多内核中的支持以及软件包,不太清楚具体的分工以及关系,今天查阅了一些资料,试图清理一下自己的思路,也把自己的配置共享一下。

下面给一些包及内核Module加一些注释:

内核Thinkpad ACPI

在2.6.20 中叫做IBM ACPI,这里是它的项目主页。如果编译为module,名字为thinkpad_acpi,它的功能是把Fn 组合按键的事件export 到/proc/acpi(在kernel-2.6.24 中应该选择此项:[*] Deprecated /proc/acpi/event support ),但其并不负责处理事件,需要其它userspace 程序来处理。

app-laptop/tp_smapi

来自Tpctl 项目 ,将thinkpad 硬件的信息export 到sysfs,供其它程序使用,目前主要实现了电池管理和HDAPS的功能。Fn keys应该不需要这个软件包,但我一直使用patched kernel + tp_smapi 来驱动HDAPS。

包含moduels:

hdaps
thinkpad_ec
tp_smapi

app-laptop/thinkpad

也来自Tpctl 项目 ,但目前已经被上面的tp_smapi 所取代,除非使用很古老的笔记本(before 2001),应该不需要这个软件包。

sys-power/acpid

acpid需要配合thinkpad-acpi使用,它默认读取/proc/acpi/event 中的条目,并将其传递给事件处理脚本,作出相应动作,比如关闭屏幕、待机等。 这些条目由/etc/acpi/events/default 捕获,并传递给/etc/acpi/default.sh 处理,但默认的/etc/acpi/default.sh 功能十分有限,必须自己修改。

配置Fn+Keys

这里已经有人写好了一些常用脚本,我根据他的内容整理了一份default.sh,目前可以处理Fn+F3(关屏), Fn+F4(Suspend to ram), Fn+F5(开关蓝牙), Fn+F6(开关wifi),Fn+F7(Toggle VGA-out),Fn+F12(Suspend to disk) 。这个脚本会用到radeontool,如果系统没有这么命令,merge它(也可以使用xset,但需要自己更改default.sh)。

# emerge -av1 radeontool

另外,我注释了脚本中的xosd 命令,如果你有GUI 程序需要显示Fn控制程序的状态,那么可以去掉注释(需要merge xosd)

调试

共享一下调试Fn 组合键的方法,thinkpad_acpi 会将按键事件写入/proc/acpi/event,但acpid 运行时我们无法读取这个文件,先停掉服务:

# /etc/init.d/acpid stop

然后cat这个文件(确保module thinkpad_acpi 已经装载,或者内建在内核)

# cat /proc/acpi/event

接着按Fn 组合键,console 中会打印出事件条目,括号中是我的注释。default.sh 将解析这些条目,并调用不同的命令进行处理。

ibm/hotkey HKEY 00000080 00001001 (Fn+F1)
ibm/hotkey HKEY 00000080 00001002 (Fn+..)
ibm/hotkey HKEY 00000080 00001003
ibm/hotkey HKEY 00000080 00001004
ibm/hotkey HKEY 00000080 00001005
ibm/hotkey HKEY 00000080 00001006
ibm/hotkey HKEY 00000080 00001007
ibm/hotkey HKEY 00000080 00001008
ibm/hotkey HKEY 00000080 00001009
ibm/hotkey HKEY 00000080 0000100a
ibm/hotkey HKEY 00000080 0000100b
ibm/hotkey HKEY 00000080 0000100c (Fn+F12)
ibm/hotkey HKEY 00000080 00001018 (Access IBM)
ibm/hotkey HKEY 00000080 00001014 (Fn+Space)

在我这里,调整屏幕亮度、屏幕灯、音量几个按键thinkpad_acpi 似乎是捕获不到的,event 没有输出,但功能正常,是不是xmodmap 处理了?

另外,内核中还有一个ACPI Button 支持,如果编译为module,在rmmod thinkpad_acpi之后,并且已经装在button,诸如Fn+F4 的事件会被其捕获,同样写入/proc/acpi/event:

button/sleep SLPB 00000080 00000001
button/sleep SLPB 00000080 00000002

下载

使用default.sh 覆盖acpid 默认的文件/etc/acpi/default.sh 即可,/etc/acpi/events/default 不用更改。

更新了default.sh,加入了toggleVGA-out 的脚本。(2008-11-06)

更新 2008-04-09 

今天偶然发现hal (0.5.10)中已经包含全系列thinkpad 型号hotkey的policy 配置文件,包括最新的T/X 6系列,这个文件位于:/usr/share/hal/fdi/information/10freedesktop/30-keymap-module-thinkpad-acpi.fdi,对于T4  系列,有如下定义:

<match key="/org/freedesktop/Hal/devices/computer:system.hardware.version" contains="T4">
<append key="input.keymap.data" type="strlist">0x02:screenlock</append> <!-- Fn+F3 lock -->
<append key="input.keymap.data" type="strlist">0x03:sleep</append> <!-- Fn+F4 suspend -->
<append key="input.keymap.data" type="strlist">0x04:radio</append> <!-- Fn+F5 switch radio -->
<append key="input.keymap.data" type="strlist">0x06:switchvideomode</append> <!-- Fn+F7 switch video output device -->
<append key="input.keymap.data" type="strlist">0x0b:suspend</append> <!-- Fn+F12 hibernate -->
<append key="input.keymap.data" type="strlist">0x0f:brightnessup</append> <!-- Fn+Home -->
<append key="input.keymap.data" type="strlist">0x10:brightnessdown</append> <!-- Fn+End -->
<append key="input.keymap.data" type="strlist">0x13:zoom</append> <!-- Fn+Space -->
<append key="input.keymap.data" type="strlist">0x17:vendor</append> <!-- ThinkPad/ThinkVantage button -->
<append key="info.capabilities" type="strlist">input.keymap</append>
</match> 

我猜想如果使用这个配置文件,应该可以免去上面手工配置Fn keys的步骤,或者不再使用/proc/acpi/event 这个interface,代之使用经由hal 提供的事件绑定?

尝试将其copy 至/etc/hal/fdi/policy 或者/usr/share/hal/fdi/policy/10osvendor,然后重启/etc/init.d/hald 服务,同时关闭了可能与其冲突的acpid 服务,但并没有预期的作用。查看lshal,似乎也都符合配置文件:

$ lshal |grep input.product 
  input.product = 'ThinkPad Extra Buttons'  (string)
...
$ lshal |grep system.hardware.vendor
  system.hardware.vendor = 'IBM'  (string)
$ lshal |grep system.hardware.version
  system.hardware.version = 'ThinkPad T43'  (string)

继续关注这个问题。

下面添加了一篇Gentoo 配置的参考文章。

延展阅读

Posted by Alex at 2:04 AM | Comments (0) | Edit | Taged: Fn (1), gentoo (21), linux (38), T43 (14), Thinkpad (21)

Gentoo Linux on T43 总结:环境与配置文件

这篇笔记将集中给出一些系统中的环境设置与配置文件,有些配置文件在前面可能有所提及,有些并未涉及到,算作对前面内容的总结和补充。 环境  $ emerge --info  Portage 2.1.3.18 (default-linux/x86/2007.0, gcc-4.2.2, glibc-2.6.1-r0, 2.6.23-gentoo i686) ================================================================= System uname:...

这篇笔记将集中给出一些系统中的环境设置与配置文件,有些配置文件在前面可能有所提及,有些并未涉及到,算作对前面内容的总结和补充。

环境 

$ emerge --info 
Portage 2.1.3.18 (default-linux/x86/2007.0, gcc-4.2.2, glibc-2.6.1-r0, 2.6.23-gentoo i686)
=================================================================
System uname: 2.6.23-gentoo i686 Intel(R) Pentium(R) M processor 2.00GHz
Timestamp of tree: Mon, 05 Nov 2007 13:20:01 +0000
app-shells/bash:     3.2_p17-r1
dev-java/java-config: 1.3.7, 2.1.2-r1
dev-lang/python:     2.5.1-r3
sys-apps/baselayout: 1.12.10-r5
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r1
sys-devel/automake:  1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r1
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.23
ACCEPT_KEYWORDS="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-Os -march=pentium-m -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-Os -march=pentium-m -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://ftp.ncnu.edu.tw/Linux/Gentoo/     http://distro.ibiblio.org/pub/linux/distributions/gentoo/     http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/"
LANG="en_US"
LINGUAS="en zh zh_CN"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
USE="X a52 aac aalib acl acpi alsa apache2 asf avahi avi berkdb bitmap-fonts bluetooth bzip2 cdparanoia cdr cjk cli console cracklib crypt cups dbus divx4linux dri dv dvd dvdr dvdread emacs encode esd exif ffmpeg firefox flac foomatic fortran gdbm gif glitz gnome gphoto2 gpm gstreamer gtk hal hdaps iconv immqt-bc irda isdnlog java jpeg lame live mad madwifi midi mjpeg mmx mp3 mp4 mpeg msn mudflap mysql ncurses nls nptl nptlonly nsplugin ogg opengl openmp oss pam pcre pda pdf perl png ppds pppd python qq quicktime rar readline real reflection ruby session sound spell spl sse sse2 ssl svg symlink tcpd tiff truetype truetype-fonts type1 type1-fonts unicode usb userlocales vcd vidix vorbis wav win32codecs wmv x86 xcb xine xinerama xml xorg xv xvid zip zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard evdev mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en zh zh_CN" USERLAND="GNU" VIDEO_CARDS="radeon vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS 
$ set 
ANT_HOME=/usr/share/ant-core
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="2" [2]="17" [3]="1" [4]="release" [5]="i686-pc-linux-gnu")
BASH_VERSION='3.2.17(1)-release'
CLASSPATH=/home/db2amor/sqllib/java/db2java.zip:/home/db2amor/sqllib/java/db2jcc.jar:/home/db2amor/sqllib/java/sqlj.zip:/home/db2amor/sqllib/function:/home/db2amor/sqllib/java/db2jcc_license_cisuz.jar:/home/db2amor/sqllib/java/db2jcc_license_cu.jar:.
COLORTERM=gnome-terminal
COLUMNS=152
CONFIG_PROTECT='/usr/share/X11/xkb /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown /usr/share/config'
CONFIG_PROTECT_MASK='/etc/env.d/java/ /etc/udev/rules.d /etc/gconf /etc/terminfo /etc/revdep-rebuild /etc/splash'
CVS_RSH=ssh
DB2INSTANCE=db2amor
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-S9K8WiCEnf,guid=d7447ddfa94cec100759df0047da3397
DIRSTACK=()
DISPLAY=:0.0
EDITOR=/usr/bin/emacs
EUID=1000
FLTK_DOCDIR=/usr/share/doc/fltk-1.1.7-r2/html
GCC_SPECS=
GDK_USE_XFT=1
GENERATION=2
GNOME_DESKTOP_SESSION_ID=Default
GNOME_KEYRING_SOCKET=/tmp/keyring-HarWwA/socket
GROUPS=()
GTK_IM_MODULE=scim
GTK_RC_FILES=/etc/gtk/gtkrc:/home/alex/.gtkrc-1.2-gnome2
G_BROKEN_FILENAMES=1
HISTFILE=/home/alex/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/home/alex
HOSTTYPE=i686
HUSHLOGIN=FALSE
IFS=$' \t\n'
INFOPATH=/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/info:/usr/share/gcc-data/i686-pc-linux-gnu/4.2.2/info:/usr/share/info/emacs-22
JAVAC=/home/alex/.gentoo/java-config-2/current-user-vm/bin/javac
JAVA_HOME=/home/alex/.gentoo/java-config-2/current-user-vm
JDK_HOME=/home/alex/.gentoo/java-config-2/current-user-vm
KDEDIRS=/usr:/usr/local:/usr/kde/3.5
LANG=en_US
LC_CTYPE=zh_CN
LD_LIBRARY_PATH=/opt/ibm-jdk-bin-1.4.2.9/bin:/opt/ibm-jdk-bin-1.4.2.9/jre/bin:/home/db2amor/sqllib/lib
LESS='-R -M --shift 5'
LESSOPEN='|lesspipe.sh %s'
LIBPATH=/home/db2amor/sqllib/lib
LINES=51
LOGNAME=alex
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:'
MACHTYPE=i686-pc-linux-gnu
MAIL=/var/mail/alex
MAILCHECK=60
MANPATH=/home/alex/.gentoo/java-config-2/current-user-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.2.2/man:/etc/java-config/system-vm/man/:/usr/kde/3.5/share/man:/usr/qt/3/doc/man
OPENGL_PROFILE=xorg-x11
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PAGER=/usr/bin/less
PATH=/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.2.2:/opt/mts-client:/opt/mts:/opt/ibm-jdk-bin-1.4.2.9/bin:/opt/ibm-jdk-bin-1.4.2.9/jre/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin:/home/alex/bin:/home/alex/foo:/home/alex/foo/order:/home/db2amor/sqllib/bin:/home/db2amor/sqllib/adm:/home/db2amor/sqllib/misc:/home/alex/bin:/home/alex/foo:/home/alex/foo/order
PIPESTATUS=([0]="2")
PKG_CONFIG_PATH=/usr/qt/3/lib/pkgconfig
PPID=7553
PRELINK_PATH_MASK=/usr/lib/gstreamer-0.10:/usr/lib/klibc
PYTHONPATH=/usr/lib/portage/pym
QMAKESPEC=linux-g++
QTDIR=/usr/qt/3
QT_IM_MODULE=scim
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=3
SSH_AGENT_PID=7403
SSH_AUTH_SOCK=/tmp/ssh-VHqDnq7373/agent.7373
TERM=xterm
USER=alex
VMHANDLE=ibm-jdk-bin-1.4
VWSPATH=/home/db2amor/sqllib
VWS_LOGGING=/home/db2amor/sqllib/logging
VWS_TEMPLATES=/home/db2amor/sqllib/templates
WINDOWID=20980933
WINDOWPATH=7
XAUTHORITY=/home/alex/.Xauthority
XDG_DATA_DIRS=/usr/share:/usr/kde/3.5/share:/usr/local/share
XDG_SESSION_COOKIE=
XMODIFIERS=@im=SCIM

配置文件

后记

这篇笔记不会是这个系列的最后一篇,因为有些部分自己还没有整理清楚,待合适的时候,将继续更新。

延展阅读

Posted by Alex at 3:11 AM | Comments (0) | Edit | Taged: conf (1), environment (1), gentoo (21), linux (38), T43 (14), Thinkpad (21)

Google Reader 移动版连续后退中文乱码,Solved

环境:多普达D700,Windows Mobile 5.0,IE。 在 Google Reader 中浏览订阅内容时,经常会用到后退按钮,在连续2次后退之后,页面中的中文变为乱码,需要重新刷新页面才能解决,我一直以来避免连续后退两次这样的操作,今天查看了一下IE Options 中的字符集设置,默认使用简体中文Chinese Simplified (GB2312),将其更改为Unicode (UTF-8) 问题得到解决。 顺便我尝试了Google 手机地图中国版(Google...

环境:多普达D700,Windows Mobile 5.0,IE。

Google Reader 中浏览订阅内容时,经常会用到后退按钮,在连续2次后退之后,页面中的中文变为乱码,需要重新刷新页面才能解决,我一直以来避免连续后退两次这样的操作,今天查看了一下IE Options 中的字符集设置,默认使用简体中文Chinese Simplified (GB2312),将其更改为Unicode (UTF-8) 问题得到解决。

顺便我尝试了Google 手机地图中国版(Google China Maps) 1.7.1,通过本地网络接入互联网,速度很快,几分钟的浏览就cache 了1MB的数据,这也说明它会很轻松的突破大多数人使用的GPRS 5MB/10MB 套餐的流量,提醒大家在使用GPRS 连接时要慎重。

如果您正在使用PDA ,可以直接下载安装: Windows Mobile 手机用户 | Symbian S60 第3版 手机用户

Posted by Alex at 11:54 PM | Comments (0) | Edit

Gentoo Linux on T43 (11) CPU 频率自动控制

TODO...
TODO

Posted by Alex at 6:12 PM | Comments (0) | Edit

Gentoo Linux on T43 (10) Fingerprint Reader 指纹认证

Thinkpad Integrated Fingerprint Reader 可以使用指纹认证代替用户登录过程中的密码认证,减少用户手工输入密码的机会,在Windows 下使用CSS 软件,配合内置加密芯片,更可以实现指纹认证的文件加解密。 在Gentoo Linux 下整个配置过程比较容易,How to enable the fingerprint reader...

Thinkpad Integrated Fingerprint Reader 可以使用指纹认证代替用户登录过程中的密码认证,减少用户手工输入密码的机会,在Windows 下使用CSS 软件,配合内置加密芯片,更可以实现指纹认证的文件加解密。

在Gentoo Linux 下整个配置过程比较容易,How to enable the fingerprint reader with ThinkFinger - ThinkWiki 提供了非常清晰的描述,请参考文中的Gentoo 部分以及后续步骤。下面仅列出几点Gentoo 用户需要注意的地方。

  • 文件/etc/pam.d/common-auth 在Gentoo Linux 下无法找到,应该使用 /etc/pam.d/system-auth,以下是我修改后的内容。

/etc/pam.d/system-auth

#%PAM-1.0
auth       required     pam_env.so
# Added by alex
auth       sufficient   pam_thinkfinger.so
auth       sufficient   pam_unix.so try_first_pass likeauth nullok
auth       required     pam_deny.so
account    required     pam_unix.so
# This can be used only if you enabled the cracklib USE flag
password   required     pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 try_first_pass retry=3
# This can be used only if you enabled the cracklib USE flag
password   sufficient   pam_unix.so try_first_pass use_authtok nullok md5 shadow
# This can be used only if you enabled the !cracklib USE flag
# password   sufficient pam_unix.so try_first_pass nullok md5 shadow
password   required     pam_deny.so
session    required     pam_limits.so
session    required     pam_unix.so
  • 将uinput 加入/etc/modules.autoload.d/kernel-2.6
# Modules for fingerprint
uinput
  • 将文中的环境变量$USERNAME 替换为$USER 再使用,例如:
# gpasswd -a $USERNAME fingerprint 
  • 若使指纹认证在xscreensaver/gnome-screensaver 中工作,必须按照上文4 xscreensaver/gnome-screensaver 一节进行额外配置。我在以下环境测试成功。
    • gnome-screensaver-2.20.0
    • pam-0.99.9.0

      但需要指出的是,文件/etc/pam.d/gnome-screensaver 并不需要修改,因为其已经通过include 关键字包含文件system-auth。
  • 关于gksu/gksudo 的workaround ,我未进行测试。

延展阅读

Posted by Alex at 5:34 PM | Comments (0) | Edit | Taged: fingerprint reader (1), gentoo (21), linux (38), T43 (14), Thinkpad (21), 指纹 (1)

Gentoo Linux on T43 (9) HDAPS 硬盘动态保护系统

本文参考How to protect the harddisk through APS ,以下内容可直接应用于Gentoo Linux。 Thinkpad HDAPS 依靠笔记本内部的2D 加速度传感器检测笔记本位移, 将数据写入sysfs,系统中有一个demon (守护进程)负责监视这个sysfs...

本文参考How to protect the harddisk through APS ,以下内容可直接应用于Gentoo Linux。

Thinkpad HDAPS 依靠笔记本内部的2D 加速度传感器检测笔记本位移, 将数据写入sysfs,系统中有一个demon (守护进程)负责监视这个sysfs interface,必要时执行硬盘磁头parking 动作。此外,有一个applet,可以在任务托盘实时反映当前的保护状态,这个不是必须的。

在Linux 上完整的HDAPS 包括以下几个部分:

  • hdaps 驱动程序,从硬件传感器读取数据(内核内置此驱动,但不要使用,推荐使用tp_smapi 提供的驱动)。
  • 内核 patch,负责向sysfs 写入数据,需要重新编译内核。
  • hdapsd,demon 程序
  • applet,有多种选择:gnome-hdaps-applet, khdapsmonitor 等,可以不安装,并不影响HDAPS 作用。

下面就以上4个部分分别讨论。

内核Patch 

这一步需要提前来做。

根据自己的内核版本,找到相应的patch 下载另外一个下载地址),我的内核版本是2.6.23:

$ eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.20-gentoo-r8
  [2]   linux-2.6.23-gentoo *
  [3]   linux-2.6.23-gentoo-r1

网络上没有找到版本完全符合的patch,但在2.6.23-kamikaze4 中找到了thinkpad-2.6.23-1.patch ,它里面包含了我们需要的protection patch,我将其提取出来,做成 hdaps-protect-2.6.23.patch ,可以单独使用。

用以下命令应用patch,并重新编译内核安装modules 。

# cd /usr/src/linux
# patch -p1 <  ~/hdaps-protect-2.6.23.patch 
# make && make modules_install

重新启动系统之后,会在sysfs 生成文件 /sys/block/xxx/queue/protect,表明patch 成功。

hdaps 驱动程序 

首先要禁止内核中的驱动程序,确保以下内核选项没有被设置,否则,将在不同的路径生成两个同名的module hdaps,load 过程会出错。

$ zcat /proc/config.gz |grep -i hdaps
# CONFIG_SENSORS_HDAPS is not set 

接下来在/etc/make.conf 的USE flag 中加入hdaps 支持,将会被tp_smapi 用到。

/etc/make.conf

USE="hdaps"

tp_smapi 已经被加入Gentoo package list,可以直接emerge,我目前使用0.31 版本。

# emerge -av app-laptop/tp_smapi

载入hdaps 与tp_smapi

# modprobe tp_smapi hdaps 

并将其加入到/etc/modules.autoload.d/kernel-2.6

# Modules for Thinkpad HDAPS
tp_smapi
hdaps

hdapsd

安装demon,直接emerge 即可,我的版本是20060409-r1 。

# emerge -av  app-laptop/hdapsd

编辑hdapsd 配置文件,在DISK 中指定需要保护的硬盘设备名称,作为可选,也可以调整保护动作阈值THRESHOLD ,值越小,保护动作越早,但也会更频繁。

/etc/conf.d/hdapsd

# The name of the disk device that hdapsd should monitor.
# Usually this is 'hda' or 'sda' the primary master.
DISK="sda"
# hdapsd sensitivity 
# The lower the threshold is the earlier 
# the heads are parked when the laptop is shaked
THRESHOLD="15"
# Set any extra options here, like -a for Adaptive mode
OPTIONS="-a"

启动hdaspd 服务

# /etc/init.d/hdapsd start

将hdapsd 设置为跟随系统自动启动 

# rc-update add hdapsd boot 

applet

如果希望监视硬盘保护状态,则需要安装applet 。我使用gnome 环境,因此选择了gnome-hdaps-applet ,但其还未被加入Gentoo 官方package list,需要下载回来自己编译安装。以下是步骤。

下载:

$ cd
$ wget http://www.zen24593.zen.co.uk/hdaps/gnome-hdaps-applet-20060120.tar.gz
$ mkdir gnome-hdaps-applet
$ tar -zxvf gnome-hdaps-applet-20060120.tar.gz -C gnome-hdaps-applet
$ cd gnome-hdaps-applet

编译:

$ gcc $(pkg-config --cflags --libs libpanelapplet-2.0) -o gnome-hdaps-applet gnome-hdaps-applet.c

安装:

# cp gnome-hdaps-applet /usr/bin
# mkdir /usr/share/pixmaps/gnome-hdaps-applet/
# cp *.png /usr/share/pixmaps/gnome-hdaps-applet/
# cp GNOME_HDAPS_StatusApplet.server /usr/lib/bonobo/servers

重启Xwindow,在applet 列表中可以找到新的项目,加入到panel 即可。

Tips

  • 我在hdapsd 中设置的设备名为sda,但我的第二块硬盘sdb(在硬盘托架内)并没有受到保护,我尝试更改配置文件为sdb,保护动作正常,但无法对2个设备同时进行保护,hdaps project 邮件列表有一条关于此的讨论,希望未来会支持多个设备
  • 如果没有安装applet,在那里查看硬盘的保护状态呢?可以用以下命令查看历史状态,也可以使用ctrl + alt + F12 查看实时状态。
$ dmesg |tail
...
scsi_protect_queue(): head parked..
... 
  • 我曾经在kernel-2.6.20-r8 下设置hdaps,但始终无法成功patch 内核,没有sysfs 数据写入,因此,hdapsd服务也无法启动成功。若有相似问题的用户可以尝试升级内核。

下载

延展阅读

(未完)

Posted by Alex at 3:45 PM | Comments (0) | Edit | Taged: gentoo (21), hdaps (1), linux (38), T43 (14), Thinkpad (21)

Gentoo Linux on T43 (8) X300 显卡的驱动以及3D 加速

T43 包括两种显卡方案,一种是915GM 主板集成Intel 显卡 ,另一种是ATI X300 独立显卡 ,我的显卡是X300 ,这里所有的讨论都是与X300 相关。 ATI X300 有2种驱动方案,一种是开源驱动radeon,通过开源R300 项目已经可以支持X300 显卡的3D...

T43 包括两种显卡方案,一种是915GM 主板集成Intel 显卡 ,另一种是ATI X300 独立显卡 ,我的显卡是X300 ,这里所有的讨论都是与X300 相关。

ATI X300 有2种驱动方案,一种是开源驱动radeon,通过开源R300 项目已经可以支持X300 显卡的3D 加速;另一种是ATI 官方的闭源驱动fglrx 。

下面针对这2种方案,分别给出我的配置,涉及到:内核配置、make.conf 、安装软件包、X11 配置、装载module以及OpenGL 设置。

内核配置

请参照 Gentoo Linux on T43 (5) 配置内核(kernel) 显卡一节。

make.conf

在开时编译一些软件包之前,需要在/etc/make.conf  中设置变量:USE 与VIDEO_CARDS 。

开源驱动与官方驱动都需要设定如下USE flag,将其添加到原有USE flag 列表

USE="dri opengl" 

VIDEO_CARDS 中的设定值会被软件包x11-server、x11-drm 等软件包使用,对于开源驱动设定:

VIDEO_CARDS="radeon vesa"

对于官方驱动设定: 

VIDEO_CARDS="fglrx vesa" 

加入vesa 用来对启动过程中的字符界面提供支持。

安装软件包

如果使用开源驱动,emerge:

# emerge -av xorg-x11 xf86-video-ati 

下面的软件包会作为依赖被自动安装

x11-base/xorg-server
x11-drivers/xf86-video-vesa
media-libs/mesa

前面内核配置,如果没有选择内核中的drm,那么此处应该把drm 也安装上:

# emerge -av x11-base/x11-drm 

如果使用官方驱动,emerge:

# emerge -av ati-drivers 

X11 配置

X11 的配置文件位于/etc/X11/xorg.conf ,这里不介绍如何生成一个默认的xorg.conf 文件(相关内容请参考Gentoo 手册),仅给出我的配置,将其合并入你的配置文件即可,以下是针对T43 1400x1050 高分屏以及X300显卡,并开启3D 加速的配置。

开源驱动
Section "Module"
    Load	"dbe"
    SubSection	"extmod"
        Option	"omit xfree86-dga"
    EndSubSection
    Load 	"glx"
    Load 	"dri"
    ...
EndSection
Section "Extensions"
    Option  "Composite" "1"
EndSection
Section "ServerFlags"
    Option      "AIGLX"         "on"
EndSection
Section "Monitor"
    Identifier	"Thinkpad LCD Monitor"
    Option	"dpms"
    DisplaySize	      370	277
EndSection
Section "Device"
    Identifier	"ATI Graphics Mobile X300"
    Driver	"radeon"
    BusID	"PCI:1:0:0"
EndSection
Section "Screen"
    Identifier "High Screen"
    Device     "ATI Graphics Mobile X300"
    Monitor    "Thinkpad LCD Monitor"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth      24
        Modes      "1400x1050" "1280x1024" "1024x768" "800x600"
    EndSubSection
EndSection
Section "ServerLayout"
    Identifier	"Main Layout"
    Screen	"High Screen"
    ...
EndSection
Section "dri"
    Mode         0666
EndSection 
官方驱动 

将上面的配置进行如下修改即可

...
Section "Extensions"
    Option  "Composite" "0"
EndSection
Section "ServerFlags"
    Option      "AIGLX"         "off"
EndSection
...
Section "Device"
    Identifier	"ATI Graphics Mobile X300"
    Driver	"fglrx"
    BusID	"PCI:1:0:0"
EndSection
...

装载module 

在/etc/modules.autoload.d/kernel-2.6 文件中加入在启动时需要装载的module 名称。

开源驱动 
# Modules for video card & 3D
drm
radeon
官方驱动 
# Modules for video card & 3D
drm
fglrx

可以使用以下命令确认module 是否装载成功,以及查看引用关系(以开源驱动为例)

$ lsmod |grep radeon
radeon                121376  2 
drm                    63380  3 radeon

OpenGL 配置

为系统选择OpenGL 程序。

开源驱动 
# eselect opengl set xorg-x11
官方驱动 
# eselect opengl set ati

延展阅读

(未完)

Posted by Alex at 6:17 PM | Comments (0) | Edit | Taged: 3d (1), gentoo (21), linux (38), T43 (14), Thinkpad (21), x300 (1)

Gentoo Linux on T43 (7) 中文字体

Linux 下字体的配置可以很简单,也可以很复杂,这取决于个人需求的复杂程度,以及对相关知识的了解和技术掌控程度,其差别会导致悬殊的时间成本。在我本人开始这项工作之前,对相关内容了解很少,因此不得不花费时间来了解一些基础性内容。 在这个过程中,一本在线书籍Free/Open Source Software Localization 为我提供了有益的帮助,其整个第七章都是有关字体的内容,介绍了基本的字体概念,字体的分类,以及Linux 如何处理字体 等。 对于中文字体的详细配置,参考了quanliking 的2 篇文章: Linux 字体微调 -...

Linux 下字体的配置可以很简单,也可以很复杂,这取决于个人需求的复杂程度,以及对相关知识的了解和技术掌控程度,其差别会导致悬殊的时间成本。在我本人开始这项工作之前,对相关内容了解很少,因此不得不花费时间来了解一些基础性内容。

在这个过程中,一本在线书籍Free/Open Source Software Localization 为我提供了有益的帮助,其整个第七章都是有关字体的内容,介绍了基本的字体概念字体的分类,以及Linux 如何处理字体 等。

对于中文字体的详细配置,参考了quanliking 的2 篇文章: Linux 字体微调 - windows 效果版Linux 字体微调- Vista 效果版 以及kemean 的字体配置local.conf详解[带Win效果和AA效果]

下面先描述一下字体的安装方法,然后给出我的字体配置,更多的内容可以参考以上的链接。

安装字体

Gentoo Linux有2种主要的字体系统并存:Core X11 font systemxft font system,分别有不同的安装方法。

Core X11 font system

对于Core X11,系统与应用程序的字体一般放在/usr/share/fonts 下面的子目录内,建议把用户自己安装的字体放在/usr/local/share/fonts 下的子目录,并且需要将这些路径加入到Xwindow的配置文件 /etc/X11/xorg.conf。举例:

将新的truetype 类型字体放在/usr/local/share/fonts/TTF 目录,然后执行以下命令(注意顺序):

# mkfontscale  /usr/local/share/fonts/TTF
# mkfontdir /usr/local/share/fonts/TTF

接着编辑/etc/X11/xorg.conf 来让使用Core X11 font system 的X 应用程序知道有新的字体可以利用,添加以下行到文件的Files 与Module Section(其实这个目录默认已经存在,无须添加)。

Section "Files"
    FontPath   "/usr/local/share/fonts/TTF"
    ...
EndSection
重启Xwindow 即可,新的字体将会被识别。 
xft font system

有些X 应用程序使用xft font system ,Gentoo Linux 默认设置了以下环境变量,使gtk+ 2.0 应用程序的字体使用xft,而不是Core X11 font system。

$ cat /etc/env.d/50gtk2
GDK_USE_XFT=1

xft font system 会自动搜索标准的字体路径并发现新字体,无须多余的步骤。如果希望新字体可以立即使用,那么执行命令fc-chache -fv 来即可刷新字体缓存。

对字体的配置可以存放在2个文件当中,其一是系统级别的/etc/fonts/local.conf (没有此文件可以自己建立),其二是用户Home目录下的.fonts.conf,仅影响当前用户。

字体配置

目前Linux 下的中文字体配置主要分为以下几种。

Windows 或Mac 效果 

使用Windows 平台的宋体(SimSun)、新宋体(NSimSun)与黑体(SimHei) ,或者最新vista 系统中的微软雅黑字体(Microsoft YaHei)。另外还有Mac 平台采用的华文黑体(STHeiti),其效果与SimHei 类似,但小字体的效果更出色。这几种字体包含的字符集非常齐全,覆盖了汉字简繁以及日韩字体,因此对繁体以及日韩字体显示效果要求不很高的用户,就没必要再去配置细明体(PMingLiU) 等其它字体。

使用这些字体的方法很简单,将其从Windows 目录复制到Linux 下简单配置即可,但严格来讲,这里面有版权问题,因此,在大多数Linux 发布之中,我们找不到以上字体。

使用免费的开源字体 

在这方面做得比较出色的是文泉驿 字体,目前通过网络协作的方式,已经开发出了点阵宋体、黑体以及等宽三大类字体,并不断升级改善中。

可以直接在Gentoo 中安装其中的点阵宋体和正黑字体:

# emerge -av  media-fonts/wqy-bitmapfont media-fonts/wqy-zenhei
配置文件 

为了对比,我尝试了以上的各种字体配置方案,经过调整后,在T43 高分屏1400x1050分辨率下,效果都不错,其差别仅在个人喜好罢了。因此,我将配置文件整理,如果你安装了以上几种字体,那么简单修改几行,重启Xwindow ,即可更换一种字体。

下面是我的.fonts.conf (整理自quanliking 与kemean 的文章),放在我的HOME 目录,会被/etc/fonts/fonts.conf 自动读取,其优先级低于/etc/fonts/local.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- ~/.font.conf file for user customizations -->
<fontconfig>
<!--
    Breaf:
    Search keyword "editable" for configuation.
    Section:
    1. Fonts family configuration
    2. Fonts substitution
    3. Global configuration
    4. English fonts configuration
    5. CJK fonts configuration
    Installed fonts list:
    STHeiti
    微软雅黑,Microsoft YaHei
    黑体,SimHei
    宋体-18030,SimSun-18030
    宋体,SimSun
    新宋体-18030,SimSun-18030,NSimSun-18030
    新宋体,NSimSun
    WenQuanYi Bitmap Song
    文泉驿正黑,文泉罅正黑,WenQuanYi Zen Hei
    Arial
    Arial Black
    Verdana
    Comic Sans MS
    Georgia
    Times New Roman
    Courier New
    Andale Mono
    Fixed
    Impact
    Trebuchet MS
    Webdings
-->
<!--
*******************************************************************************
    1. Fonts family configuration [Begin]
*******************************************************************************
-->
    <alias>
        <family>serif</family>
        <prefer>
            <!-- @@@ editable -->
            <family>SimSun</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <!-- @@@ editable -->
            <family>Microsoft YaHei</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <!-- @@@ editable -->
            <family>NSimSun</family>
        </prefer>
    </alias>
<!--
*******************************************************************************
    1. Fonts family configuration [End]
*******************************************************************************
-->
<!--
*******************************************************************************
    2. Fonts substitution [Begin]
*******************************************************************************
-->
<!--
    fonts alias substitution
-->
    <match target="pattern">
        <test name="family">
            <string>宋体</string>
        </test>
        <edit name="family" mode="assign">
            <string>SimSun</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="family">
            <string>新宋体</string>
        </test>
        <edit name="family" mode="assign">
            <string>NSimSun</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="family">
            <string>宋体-18030</string>
        </test>
        <edit name="family" mode="assign">
            <string>SimSun-18030</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="family">
            <string>新宋体-18030</string>
        </test>
        <edit name="family" mode="assign">
            <string>NSimSun-18030</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="family">
            <string>黑体</string>
        </test>
        <edit name="family" mode="assign">
            <string>SimHei</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="family">
            <string>微软雅黑</string>
        </test>
        <edit name="family" mode="assign">
            <string>Microsoft YaHei</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="family">
            <string>文泉驿正黑</string>
        </test>
        <edit name="family" mode="assign">
            <string>WenQuanYi Zen Hei</string>
        </edit>
    </match>
<!--
    not installed fonts substitution
-->
    <match target="pattern">
        <test name="family">
            <string>Times</string>
        </test>
        <edit name="family" mode="assign">
            <string>Times New Roman</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="family">
            <string>Helvetica</string>
        </test>
        <edit name="family" mode="assign">
            <string>Verdana</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="family">
            <string>Courier</string>
        </test>
        <edit name="family" mode="assign">
            <string>Courier New</string>
        </edit>
    </match>
    <match target="pattern" >
        <test name="family" >
            <string>PMingLiU</string>
            <string>MingLiU</string>
            <string>FangSong_GB2312</string>
            <string>KaiTi_GB2312</string>
            <string>AR PL KaitiM GB</string>
            <string>AR PL KaitiM Bit5</string>
            <string>AR PL SungtiL GB</string>
            <string>AR PL Mingti2L Bit5</string>
            <string>AR PL ShanHeiSun Uni</string>
            <string>AR PL ZenKai Uni</string>
            <string>Bitstream Vera Serif</string>
            <string>Bitstream Vera Sans</string>
            <string>Bitstream Vera Sans Mono</string>
            <string>DejaVu Sans</string>
            <string>DejaVu Sans Mono</string>
            <string>DejaVu Serif</string>
            <string>MS 明朝</string>
            <string>MS ゴシック</string>
            <string>Kochi Mincho</string>
            <string>Kochi Gothic</string>
            <string>Baekmuk Batang</string>
            <string>Baekmuk Dotum</string>
            <string>Baekmuk Gulim</string>
            <string>Baekmuk Headline</string>
        </test>
        <edit name="family" mode="assign" >
            <string>san-serif</string>
        </edit>
    </match>
<!--
    english portion substitution
-->
    <match target="pattern" >
        <test name="family" >
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend" binding="strong" >
            <!-- @@@ editable -->
            <string>Georgia</string>
        </edit>
    </match>
    <match target="pattern" >
        <test name="family" >
            <string>sans-serif</string>
        </test>
        <edit name="family" mode="prepend" binding="strong" >
            <!-- @@@ editable -->
            <string>Verdana</string>
        </edit>
    </match>
    <match target="pattern" >
        <test name="family" >
            <string>monospace</string>
        </test>
        <edit name="family" mode="prepend" binding="strong" >
            <!-- @@@ editable -->
            <string>Courier New</string>
        </edit>
    </match>
<!--
*******************************************************************************
    2. Fonts substitution [End]
*******************************************************************************
-->
<!--
*******************************************************************************
    3. Global configuration [Begin]
*******************************************************************************
-->
<!--
    target dots per inch, change dpi to 96
-->
    <match target="pattern" >
        <edit name="dpi" mode="assign" >
            <double>96</double>
        </edit>
    </match>
<!--
    enable sub-pixel rendering.
    if you are using CRT, set rgb -> none
-->
    <match target="font">
        <edit name="rgba" mode="assign">
            <const>none</const>
        </edit>
    </match>
<!--
    default Fonts setting
    here autohint = ture / hinting = false is for free fonts in your system
    we will use autohint = false / hinting = true for MS core fonts
-->
    <match target="font" >
        <edit name="antialias" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="autohint" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="hinting" mode="assign" >
            <bool>false</bool>
        </edit>
        <edit name="hintstyle" mode="assign" >
            <const>hintfull</const>
        </edit>
    </match>
<!--
    font size settings:
    set the apposite font size,so it is easy to be read
-->
    <match target="pattern" >
        <test name="pixelsize" compare="more_eq" >
            <double>8</double>
        </test>
        <test name="pixelsize" compare="less_eq" >
            <double>12</double>
        </test>
        <edit name="pixelsize" mode="assign" >
            <double>12</double>
        </edit>
    </match>
<!--
    synthetic emboldening for fonts that do not have bold face available
-->
    <match target="font">
        <!-- check to see if the font is just regular -->
        <test name="weight" compare="less_eq">
            <int>100</int>
        </test>
        <!-- check to see if the pattern requests bold -->
        <test target="pattern" name="weight" compare="more_eq">
            <int>180</int>
        </test>
        <!-- set the embolden flag -->
        <edit name="embolden" mode="assign">
            <bool>true</bool>
        </edit>
    </match>
<!--
*******************************************************************************
    3. Global configuration [End]
*******************************************************************************
-->
<!--
*******************************************************************************
    4. English fonts configuration [Begin]
*******************************************************************************
-->
<!--
    default : smoothed and hinted
-->
    <match target="font" >
        <test name="foundry" qual="any" >
            <string>monotype</string>
            <string>microsoft</string>
        </test>
        <edit name="antialias" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="autohint" mode="assign" >
            <bool>false</bool>
        </edit>
        <edit name="hinting" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="hintstyle" mode="assign" >
            <const>hintfull</const>
        </edit>
    </match>
<!--
    for point size less equal than 6 : only smoothed
-->
    <match target="font" >
        <test name="foundry" qual="any" >
            <string>monotype</string>
            <string>microsoft</string>
        </test>
        <test name="size" compare="less_eq" >
            <double>6</double>
        </test>
        <edit name="antialias" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="autohint" mode="assign" >
            <bool>false</bool>
        </edit>
        <edit name="hinting" mode="assign" >
            <bool>false</bool>
        </edit>
    </match>
<!--
    Arial Regular
-->
    <match target="font" >
        <test name="family" >
            <string>Arial</string>
        </test>
        <test name="weight" compare="eq">
            <const>regular</const>
        </test>
        <test name="slant" compare="eq" >
            <const>roman</const>
        </test>
        <test name="size" compare="more_eq" >
            <double>7</double>
        </test>
        <test name="size" compare="less_eq" >
            <double>13</double>
        </test>
        <edit name="antialias" mode="assign" >
            <bool>false</bool>
        </edit>
        <edit name="autohint" mode="assign" >
            <bool>false</bool>
        </edit>
        <edit name="hinting" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="hintstyle" mode="assign" >
            <const>hintfull</const>
        </edit>
    </match>
<!--
    Times New Roman Bold Italic
-->
    <match target="font" >
        <test name="family" >
            <string>Times New Roman</string>
        </test>
        <test name="weight" compare="eq">
            <const>bold</const>
        </test>
        <test name="slant" compare="eq" >
            <const>italic</const>
        </test>
        <test name="size" compare="more_eq" >
            <double>7</double>
        </test>
        <test name="size" compare="less_eq" >
            <double>13</double>
        </test>
        <edit name="antialias" mode="assign" >
            <bool>false</bool>
        </edit>
        <edit name="autohint" mode="assign" >
            <bool>false</bool>
        </edit>
        <edit name="hinting" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="hintstyle" mode="assign" >
            <const>hintfull</const>
        </edit>
    </match>
<!--
    Courier New:
    both enable autohint and hinting looks very well.
-->
   <match target="font" >
      <test name="family" >
         <string>Courier New</string>
      </test>
      <edit name="antialias" mode="assign" >
         <bool>true</bool>
      </edit>
      <edit name="autohint" mode="assign" >
         <bool>true</bool>
      </edit>
      <edit name="hinting" mode="assign" >
         <bool>true</bool>
      </edit>
      <edit name="hintstyle" mode="assign" >
         <const>hintfull</const>
      </edit>
   </match>
<!--
    Courier New font size
-->
   <match target="font" >
      <test name="family" >
         <string>Courier New</string>
      </test>
      <test name="pixelsize" compare="less_eq" >
         <double>14.7</double>
      </test>
      <edit name="pixelsize" mode="assign" >
         <double>14.7</double>
      </edit>
   </match>
<!--
*******************************************************************************
    4. English fonts configuration [End]
*******************************************************************************
-->
<!--
*******************************************************************************
    5. CJK fonts configuration [Begin]
*******************************************************************************
-->
<!--
    the dual-width Asian fonts (spacing=dual) are not rendered correctly,
    apparently FreeType forces all widths to match. Trying to disable the
    width forcing code by setting globaladvance=false alone doesnot  help.
    as a brute force workaround, also set spacing=proportional, i.e. handle
    them as proportional fonts:
-->
    <match target="font" >
        <test target="pattern" name="lang" compare="contains" >
            <string>zh</string>
            <string>ja</string>
            <string>ko</string>
        </test>
        <test name="spacing" compare="eq">
            <const>dual</const>
        </test>
        <edit name="spacing" mode="assign" >
            <const>proportional</const>
        </edit>
        <edit name="globaladvance" mode="assign" >
            <bool>false</bool>
        </edit>
    </match>
<!--
    adjusting
-->
    <match target="font" >
        <test qual="any" name="family" compare="eq" >
            <!-- installed fonts -->
            <!--
            <string>STHeiti</string>
            -->
            <string>Microsoft YaHei</string>
            <string>SimHei</string>
            <string>SimSun</string>
            <string>NSimSun</string>
            <string>SimSun-18030</string>
            <string>NSimSun-18030</string>
            <string>WenQuanYi Bitmap Song</string>
            <string>WenQuanYi Zen Hei</string>
        </test>
        <edit name="rgba" mode="assign">
            <const>none</const>
        </edit>
        <edit name="antialias" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="autohint" mode="assign" >
            <bool>false</bool>
        </edit>
        <edit name="hinting" mode="assign" >
            <bool>true</bool>
        </edit>
        <edit name="hintstyle" mode="assign" >
            <const>hintfull</const>
        </edit>
        <edit name="embeddedbitmap" mode="assign" >
            <bool>true</bool>
        </edit>
    </match>
<!--
    enable embedded bitmap fonts
    non-bitmap:
       STHeiti: sthei.ttf 13563000 bytes
       Microsoft YaHei: msyh.ttf 15043584 bytes
       SimHei: simhei.ttf 10044356 bytes
    with bitmap:
       SimSun/NSimSun: simsun.ttf 10500792 bytes
       SimSun-18030/NSimSun-18030: simsun-18030.ttf 12642204
       WenQuanYi Zen Hei: wqy-zenhei.ttf 12844372 bytes
    checked by Linux tool: fontforge
-->
    <match target="font" >
        <test qual="any" name="family" compare="eq" >
            <string>SimSun</string>
            <string>NSimSun</string>
            <string>SimSun-18030</string>
            <string>NSimSun-18030</string>
        </test>
        <test name="pixelsize" compare="eq" >
            <double>12</double>
            <double>13</double>
            <double>14</double>
            <double>15</double>
            <double>16</double>
            <double>18</double>
        </test>
        <edit name="antialias" mode="assign" >
            <bool>false</bool>
        </edit>
    </match>
    <match target="font" >
        <test qual="any" name="family" compare="eq" >
            <string>WenQuanYi Bitmap Song</string>
        </test>
        <test name="pixelsize" compare="more_eq" >
            <double>9</double>
        </test>
        <test name="pixelsize" compare="less_eq" >
            <double>12</double>
        </test>
        <edit name="antialias" mode="assign" >
            <bool>false</bool>
        </edit>
    </match>
    <match target="font" >
        <test qual="any" name="family" compare="eq" >
            <string>WenQuanYi Zen Hei</string>
        </test>
        <test name="pixelsize" compare="eq" >
            <double>12</double>
            <double>13</double>
            <double>15</double>
            <double>16</double>
        </test>
        <edit name="antialias" mode="assign" >
            <bool>false</bool>
        </edit>
    </match>
<!--
*******************************************************************************
    5. CJK fonts configuration [End]
*******************************************************************************
-->
</fontconfig>

上面的字体配置使用3种虚拟字体:

  • 衬线字体:Serif
  • 非衬线字体:Sans-serif/Sans serif/Sans
  • 等宽字体:Monospace/Mono

虚拟字体已经被定义在/etc/fonts/conf.d/ 下面的配置文件中,并拥有了一个字体列表,以上字体配置中的字体会被加在顶部,具有更高的优先级。并且,/etc/fonts/fonts.conf 中也为虚拟字体添加了可能采用的别名,比如mono。有关衬线字体与非衬线字体,请参看:细说字体 Sans Serif 与 Serif

在上面,我定义了:对于衬线字体,中文使用宋体,英文使用Georgia;非衬线的字体,中文使用微软雅黑,英文使用Verdana;等宽字体,中文使用新宋体,英文使用Courier New,共6种字体。其中,除了中文字体需要自己额外安装以外,其它英文字体默认已经存在于/usr/share/fonts/corefonts 目录,它们属于media-fonts/corefonts ,如果你找不到这些字体,可以emerge 这个包。

如果想换不同的口味,只需要把上述6处字体名称替换为系统中已经安装的字体即可,为了方便配置,我在每一处增加了<!-- @@@ editable --> 这样的注释。

另外,有人觉得/etc/fonts/conf.d 下面的配置文件没什么用处,还可能干扰自己的配置,可以删除了事。我仔细看过,不提倡删除,如果删除的话,以下2个文件一定要保留,否则fontconfig 就不会读取~/.fonts.conf 与/etc/fonts/local.conf ,它们是这2个配置文件的装载入口。

  • 50-user.conf
  • 51-local.conf

下面是雅黑的效果截图:

screenshot-msyh.jpg

字体有关的命令 

下面介绍几个字体有关的命令,在配置过程中可能会用来进行配置的确认、除错等。

fc-list

列出系统中所有可用的字体名称(包含中英文别名),以及支持的style。

命令后面可加字体名称,但必须是全称,不支持通配符,否则无法匹配。如果是中文字体,要求环境为UTF-8,否则匹配不成功,输出也是乱码。字体名称如果包含空格,使用引号引起。

虚拟字体不会被列出。

fc-match  

列出字体文件名称、英文名称,不支持中文字体名匹配。同样不支持通配符,但支持虚拟字体,可以列出虚拟字体中优先级最高的字体。可以使用-v 参数输出字体详细信息。 

对于配置文件中进行过字体替换的字体,fc-match 会输出替换后的字体名称

$ fc-match courier
cour.ttf: "Courier New" "Normal"
fc-cat

从cache 文件中读取字体信息,很少用到。

以上三个命令来自media-libs/fontconfig,属于xft 的命令。

xlsfonts

xlsfonts 也用于列出字体,但格式不同,此外,它也可以列出一些未被xft 系统识别并cache 的字体。同时这个命令也支持通配符。

$ xlsfonts -fn "*sim*"
-misc-simhei-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-iso10646-1
-misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-iso8859-1
-misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-koi8-r
-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1
-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso8859-1
-misc-simsun-medium-r-normal--0-0-0-0-p-0-koi8-r

如果系统中找不到这个命令,需要emerge x11-apps/xlsfonts

fontforge

这是一个GUI 程序,可用于编辑字体文件,同时也可以获得大量的字体信息,比如一个TrueType 字体是否内嵌了点阵字体,size是多少。对于MS的宋体,fontforge 只能识别出部分size 的点阵字体:12、14、16,13、15、18 则识别不出来,开时我认为是字体文件的版本问题,后来看了quanliking 的回帖才知道是fontforge 的问题。

如果系统中找不到这个命令,需要emerge  media-gfx/fontforge

Tips

如果字体没有变化,仅仅修改了字体配置文件,如果使用fc-match 这样的命令,不需要重启Xwindow。对于其它应用程序,比如gedit,仅仅重新运行这个程序即可应用新的配置,但有些应用程序则需要重启动Xwindow 才可以应用新的配置,比如gnome-terminal 。了解这些可以在测试字体配置的时候节省一些时间。

下载

  • fontconfig 配置文件:.fonts.conf(如果直接使用这个文件,请重命名为 .fonts.conf,下载的文件名中没有点)
  • 因为版权问题,不提供一些字体的下载,在Windows 系统以及本文链接的文章中可以找到。

延展阅读

(未完)

Posted by Alex at 11:35 PM | Comments (0) | Edit | Taged: chinese (2), font (2), gentoo (21), linux (38), T43 (14), Thinkpad (21)

Gentoo Linux on T43 (6) 中文环境

如果是初次安装Gentoo 系统与配置中文环境,在读接下来内容之前,建议首先阅读Gentoo Linux Localization Guide。 Locale locale 名称是一个具有命名约定、带有格式的字符串,其实质是其背后对应的字符集(codeset)。这里有一篇文章 关于locale的设定 Simple HOWTO 可以帮助理解locale ,虽然我并不完全同意文中的所有 观点。 使用不带任何参数的locale命令可以查看当前系统中与locale...

如果是初次安装Gentoo 系统与配置中文环境,在读接下来内容之前,建议首先阅读Gentoo Linux Localization Guide

Locale

locale 名称是一个具有命名约定、带有格式的字符串,其实质是其背后对应的字符集(codeset)。这里有一篇文章 关于locale的设定 Simple HOWTO 可以帮助理解locale ,虽然我并不完全同意文中的所有 观点。

使用不带任何参数的locale命令可以查看当前系统中与locale 有关的变量,以及它们所采用的locale 名称。

$ locale
LANG=en_US
LC_CTYPE=zh_CN
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=  

在Gentoo 手册 6. 安装Gentoo基本系统 最后一节,作为可选,简单的介绍了如何生成locale。Gentoo 提供了/etc/locale.gen 文件,用于指定为glibc 生成哪些locale,籍此来控制生成的locale 数量,减小系统体积。查看当前系统中已经生成并可用的locale 有哪些,使用以下命令:

$ locale -a
C
en_US
en_US.utf8
POSIX
zh_CN
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

所有生成的locale 会被放在 /usr/lib/locale/ 下面的子目录,并且与locale 名称同名(除字符集部分的大小写)。(由于历史原因,C 与POSIX 是2个很特殊的locale)

$ ls -1 /usr/lib/locale/
en_US
en_US.utf8
zh_CN
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

locale.gen 文件内容具有如下格式,空格之前是locale 名称,locale 名称中可以不包含字符集的部分,空格之后是所对应的字符集。

en_US ISO-8859-1
en_US.UTF-8 UTF-8 

作为中文用户,为了系统可以正确的识别、显示并处理中文字符,必须生成与中文字符集有关的的额外locale。字符集可以采用以下之一:

  • GB18030
  • GBK
  • GB2312
  • UTF-8

其中除UTF-8  是Unicode 解决方案以外,其它三个是父子集关系,其中GBK18030 最为完整,但仍然建议按以下格式,添加GBK 与GB2312 字符集相关的locale 到locale.gen 文件:

en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GB18030
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.UTF-8 UTF-8 

为什么不单独使用最完整的GB18030 字符集?理由是为了向下与一些较早的应用程序保持兼容,这个方法来自于 最精简有效的 glibc locales 设定

如果见到有些文章介绍使用/etc/locale.build 文件和不同的格式做类似的事情,不要奇怪,请用以下命令查看你的glibc 版本,如果大于等于glibc-2.3.6-r4 ,那么请用本文的文件名与格式,否则升级glibc 或者按他说的做。

$ emerge -s %^glibc$
*  sys-libs/glibc
Latest version available: 2.6.1
Latest version installed: 2.6.1

设置locale 有关的环境变量

对于中文用户,一般可以分为2种

  1. 一般性中文要求,仅要求系统具有中文的处理能力。
    要求操作系统以及应用程序能够正确显示并处理中文字符,包括文件名、文本文件内容等,并且可以输入中文。
  2. 全面性中文要求,要求中文界面。
    在一般性要求之外,还要求操作系统以及应用程序的菜单、选项、以及消息等均尽可能以中文进行显示。

以上2种情况,分别对应了2种典型的locale 环境变量设置。

一般性中文要求

很多软件开发者,或者在国外的中文用户,会采用这种方案,好处是:

  • 有助于测试软件
  • 避免术语翻译不当或者语言习惯所带来的困扰
  • 在不影响中文处理能力的前提下,最大化英文的使用范围

推荐的环境变量配置:

export LANG=en_US
export LC_CTYPE=zh_CN
全面性中文要求

大部分普通用户会采用这种方案,对应的环境变量配置:

export LANG=zh_CN
export LC_ALL=zh_CN

这份指南中说明了所有LC_* 和LANG 变量的作用与关系,额外设置LANG,也是为了对个别不支持LC_ALL 的应用程序保持兼容性。

建议将上述变量设置在日常用户的profile 当中,比如:/home/user/.bash_profile,不建议设置在系统级别,对于Gentoo 这个文件是:/etc/env.d/02locale

G_BROKEN_FILENAMES

G_BROKEN_FILENAMES 是一个与Glib 有关的环境变量,把它作为小标题是因为它十分关键,曾因为它带来了很多困扰。

我们周围几乎所有的Windows 系统都设定为使用GB 编码中文文件名,而不是Unicode,任何Unicode 的编码的中文文件名在这些Windows下都会显示为乱码。因此我们与这样的Windows 系统交换包含中文文件名的文件,最好的方案就是也同样使用GB 编码文件名,这样就不会带来显而易见的麻烦。

通过以上的locale 设定,已经可以看出,我们的确在设定一个GB 编码的中文Gentoo ,而不是Unicode Gentoo,但总有一些事情出乎我们的意料。Gnome 以及几乎所有应用程序(已知除Gnome Terminal 以外)会无视以上的locale 设定,仍然使用UTF-8 编码中文文件名,以Nautilus 为代表,虽然他们可以同时正确的显示与处理GB 与UTF-8 编码的文件名,但另外的一些应用程序会说不,比如Gnome Terminal, Krusader 等等,其他Windows 用户或者FTP 用户也会抱怨。

要解决这个问题,就需要设置:

export G_BROKEN_FILENAMES=1 

 或者

export G_BROKEN_FILENAMES=yes 

设置这个变量后,需要重新启动系统才能生效,或者至少logout 之后重新启动X Window,比如kill 掉X 后回到命令提示符,logout 之后重新login,再执行一个startx。

有关这个变量作用的更多信息,请参考Display Name of Filename in Glib

中文输入法 Scim

Linux 下的中文输入法有很多,Xsim, Scim, Chinput, Xcin, Fcitx等等,我现在使用Scim ,其功能类似Windows下的紫光输入法,可以整句输入,也会动态加入新的词组并调整词频,但其智能性与现今Windows 平台的搜狗或者Google 输入法还有差距。

Scim for Gentoo 安装过程比较简单,我使用gnome 环境,没有安装kde,但安装了几个特别需要的kde 应用程序,因此,我的系统上也有qt3,qt4 以及kde 应用所必需的包。

For gnome 

首先,要让Scim 在gnome 环境工作,需要以下步骤:

  • 在make.conf 的USE 变量中加入 nls cjk unicode,如果它们还不在的话。
  • 为了安全起见,执行以下命令来检查是否有软件包会被这些新的USE 变量影响,如果有的话,那么就继续执行,否则退出即可。
# emerge -av --newuse world
  • 执行以下命令安装Scim
# emerge -av scim scim-pinyin
  • 设置以下环境变量(对于gnome 环境未设置也没有发现问题):
export XMODIFIERS=@im=SCIM    #case matters for this variable!
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim

重启系统,即可以在gnome 应用中使用ctrl+space 调出Scim 使用。

For kde 

为了能在kde 应用程序中调用Scim,需要继续完成以下步骤,如果不打算使用kde 应用程序,也可以跳过。

  • 在make.conf 的USE 变量中加入immqt-bc
  • 执行以下命令,确保qt3 使用immqt-bc USE flag 编译,否则,接下来的步骤会出错。
# emerge -av =qt-3*
[ebuild   R   ] x11-libs/qt-3.3.8-r4  USE="cups gif immqt-bc* mysql opengl xinerama -debug -doc -examples -firebird -immqt -ipv6 -nas -nis -odbc -postgres -sqlite" 135 kB 
  • 接下来安装qt 环境中用于支持im-module 的软件包(gnome 的gtk 内建im-module 支持) 以及skim:
# emerge -av scim-qtimm skim

安装完成后,就可以在kde 应用程序中使用scim 了。

在gnome 与kde 中scim 有2套不同的配置界面与输入条,具体使用哪一个,可以在选项中的General Scim 的Other 标签页中设置,当然,也可以不去关心它。

在kde 中配置Scim,花费了我不少时间,以下几篇是我参考的Scim 官方资源:安装简介for Gentoo,更详细的安装指南for Gentoo,针对一般Linux 发布的安装指南,但也有一定的参考价值。

非必须步骤 

以下步骤在安装指南 中有所提及,但经试验并非必须。

  • 安装scim-tables: 
$ emerge app-i18n/scim-tables

访问其它非Linux 分区

通常,移动硬盘、U盘、存储卡、MP3、Thinkpad 的第二块硬盘等移动设备,以及双启动的系统中会包含非Linux 分区,一般来说,它们会采用与Windows 兼容的FAT 分区,个别也可能是NTFS 分区。为了能在这些设备上正确显示和处理中文文件名,需要在mount 选项中指定字符集。

mount 是Linux 中一个基本的命令,可以将包括本地文件系统在内的多种文件系统映射为一个本地路径, 由于不同文件系统的特性差别,mount 针对不同的文件系统均支持一组不同的选项,这里需要用到iocharset。

对于FAT 或者NTFS 类型的分区,我们需要在mount 选项中包含:

iocharset=gb2312 

迄今为止,我们还不能在这里指定其它更完整的GB字符集:gbk 与gb18030 。对于NTFS 分区,新增一个选项nls,与原有iocharset 意义相同,仅仅是为了替换它,旧的选项也保留着。nls 在其它分区类型却没有提供,因此如果喜欢使用新的选项nls 那么需要注意其仅仅针对NTFS 分区有效。

针对不同的设备,我的fstab 如下:

# 双启动Windows分区
/dev/sda3               /mnt/w          vfat            noauto,noatime,user,ro,codepage=936,iocharset=gb2312    0 0
# 第二块硬盘 
#/dev/sdb2              /mnt/m          ntfs            noauto,noatime,user,iocharset=gb2312    0 0                                                                        
# usb 设备
/dev/sdc1               /mnt/u1         auto            noauto,noatime,user,iocharset=gb2312    0 0
/dev/sdc2               /mnt/u2         auto            noauto,noatime,user,iocharset=gb2312    0 0
/dev/sdc3               /mnt/u3         auto            noauto,noatime,user,iocharset=gb2312    0 0
/dev/sdc4               /mnt/u4         auto            noauto,noatime,user,iocharset=gb2312    0 0
/dev/sdc5               /mnt/u5         auto            noauto,noatime,user,iocharset=gb2312    0 0
# 光驱
/dev/sr0                /mnt/dvd        auto            noauto,noatime,user,ro,iocharset=gb2312    0 0

说明:

  1. 针对vfat 分区,为了安全起见,额外指定了codepage 选项,依据文档,似乎与8.3 短文件名转换有关,但我还不知道其具体会在什么情况下起作用。
  2. 对于usb 设备,分区类型指定auto,而不限制在vfat,以增加灵活性。
  3. 同样,光驱设备也没有限制为iso9660,指定了auto,原因同上。

如果不打算定义在fstab 中,只在命令行临时mount,或者为了测试,使用以下格式:

# mount -t vfat -o codepage=936,iocharset=gb2312 /dev/sda3 /mnt/w
# mount -t auto -o iocharset=gb2312 /dev/sdc1 /mnt/u1 

延展阅读

( 未完)

Posted by Alex at 3:05 AM | Comments (0) | Edit | Taged: chinese (2), gentoo (21), linux (38), locale (1), T43 (14), Thinkpad (21), 中文 (1)

Gentoo Linux on T43 (5) 配置内核(kernel)

以下的内容,适合于正在按照Gentoo手册安装Gentoo Linux 系统,并且已经进行到:第7部分 配置内核 的人。此外,也适合那些已经安装了Gentoo 系统,打算调整内核配置或者需要升级内核的人。 内核版本:gentoo-sources-2.6.23  不同的内核 在网络上,我们经常会看到很多命名不同的Linux kernel 以及它们所对应的patchs,比如: git-sources, mm-sources 等等,它们分别代表了不同的含义,vanilla-sources 是官方...

以下的内容,适合于正在按照Gentoo手册安装Gentoo Linux 系统,并且已经进行到:第7部分 配置内核 的人。此外,也适合那些已经安装了Gentoo 系统,打算调整内核配置或者需要升级内核的人。

内核版本:gentoo-sources-2.6.23 

不同的内核

在网络上,我们经常会看到很多命名不同的Linux kernel 以及它们所对应的patchs,比如: git-sources, mm-sources 等等,它们分别代表了不同的含义,vanilla-sources 是官方 的定期发布版本,未经过任何修改与patch,而git-sources 则每天更新,是vanilla-sources 的开发快照。其它的,诸如mm-sources 是一个增加了补丁集合的版本,由Andrew Morton 进行维护。

这些kernel 也包含在Gentoo 的官方Package 列表里面,可以使用emerge 命令进行安装(虽然Gentoo 并不推荐),Gentoo 也为它们提供了一个概要的描述

在Gentoo手册中要求安装的gentoo-sources 也与它们类似,属于Gentoo Team 维护的一个经过patch 的版本。我们接下来的讨论都是基于此内核。

T43 有关的内核配置

这一节讨论与硬件有关的内核配置选项,以下的内容源于我在网上查找的资料以及自己的经验,有出处的的方我尽量附上链接。对于内核中配置的选择,我尽量摒除无用的选项,以减小内核文件的体积和生成的Modules 规模,但由于我的知识所限,以及个人喜好,仍然会有很多有争议的的方,如果您认为是一个错误,欢迎指正。

T43 不同型号的配置可能会有差别, 以下每一项设备后面,都标出了可能配备的硬件型号,这些硬件信息来源于ThinkWiki ,在开始之前,多花些时间,了解您的Thinkpad 含有哪些硬件,是值得的。

CPU

Intel Pentium M (Dothan) 1.6, 1.73, 1.86, 2.0, 2.13 or 2.26 GHz CPU

CONFIG_X86_PC=y
CONFIG_MPENTIUMM=y
CONFIG_X86_GENERIC=y
主板南桥 

Intel 82801FBM ICH6-M southbridge

CONFIG_I2C_I801=m 
电源管理
CONFIG_PM=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_UP_POSSIBLE=y
CONFIG_SUSPEND=y
CONFIG_HIBERNATION_UP_POSSIBLE=y
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_DOCK=m
CONFIG_ACPI_BAY=m
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_DEBUG_FUNC_TRACE=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CPU 频率调节
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_X86_ACPI_CPUFREQ=m
Fn + Keys
CONFIG_THINKPAD_ACPI=m
CONFIG_THINKPAD_ACPI_BAY=y
硬盘/光驱
  • 40, 60 or 80GB PATA HDD1
  • UltraBay Slim with one of the following:
    • DVD-ROM
    • DVD-ROM/CD-RW Combo
    • DVD±RW

有关PATA ,其实就是传统的、使用扁线缆的ATA 硬盘,是对应新的SATA 硬盘而提出的名称。T43 使用PATA 硬盘,但控制器是SATA 的。

前面文章中,提到了硬盘/光驱设备名称的问题 ,以下的设置会决定设备使用哪一种驱动程序,也决定了设备名使用sd* ,还是hd*。

如果打开CONFIG_IDE 选项,那么设备将会识别为hd* ,即使同时打开了scsi 的有关选项。因此,应该关闭CONFIG_IDE 及其以下的所有选项,无论它看起来多么正确,或者你仅仅为了保持兼容性,它都会强制使用落后的驱动程序,硬盘传输速度将遭受明显损失,CPU 占用率也明显提高。方案来源:Desktop Lags under Heavy IO

# CONFIG_IDE is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=m
CONFIG_ATA=y
CONFIG_ATA_ACPI=y
CONFIG_ATA_PIIX=y
CONFIG_PATA_MPIIX=m
CONFIG_MD=y
CONFIG_BLK_DEV_DM=y
CONFIG_DM_CRYPT=y
显卡

ATI X300 有2种驱动方案,一种是开源驱动,一种是ATI 官方的闭源驱动(已经加入Gentoo Package 列表),闭源驱动对3D 加速支持的更好一些,不过最近开源社区的R300 项目已经可以支持X300 显卡的3D 加速功能了。对于内核配置之外的内容,将来讨论。

以下内核选项对显卡系统起到支持作用,确保已经配置(来源于Gentoo ATI Radeon FAQ: 2.1 - Which kernel options are important for the ATI drivers?

CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_KMOD=y
CONFIG_PCI=y
CONFIG_MTRR=y
CONFIG_TMPFS=y

下面讨论与显卡直接相关的内核选项。

使用开源驱动程序,仅仅需要配置以下2项即可。

CONFIG_DRM=m
CONFIG_DRM_RADEON=m

CONFIG_DRM 与CONFIG_DRM_RADEON 编译为module 会分别对应为drm 与radeon 。

如果使用官方驱动,仅配置以下选项即可

CONFIG_DRM=m

另外一种选择,可以在内核disable CONFIG_DRM 选项,然后在外面emerge x11-base/x11-drm 软件包。

有很多人在论坛上问,X300 是否需要配置CONFIG_AGP(对应agpgart module),X300是 PCIe 接口,经过测试,不需要配置CONFIG_AGP ,无论是内建,还是Module,虽然加入AGP 支持可能不会产生错误,但也不会带来任何性能提升。以下FAQ 也可以作为参考: 2.1 - Which kernel options are important for the ATI drivers? 

NOTE 2: if you have a PCIe card, the AGP settings should be irrelevant. If you encounter problems, make sure you're using a recent kernel and the latest driver version. Some people have also reported that they had to enable AGP for their PCIe cards to work.

...
If you're using a PCIe card, then as noted above, it shouldn't be necessary to enable AGP, but it may be worth trying if you have problems. 

网卡

Broadcom 10/100/1000 Ethernet

CONFIG_TIGON3=m  
无线网卡

Intel 2200/2915 芯片可以使用内置驱动程序

CONFIG_IPW2200=m 
Bluetooth/Modem
声卡 

AD1981B AC'97 Audio controller

内核支持很多种类的声卡驱动,主要包括2种:ALSA 与OSS,如下。几年前在Linux 下装声卡驱动程序,都是用OSS,不过现在有了更好的ALSA

<*> Sound card support
Advanced Linux Sound Architecture  ---> 
Open Sound System  ---> 

对于T43,我们可以使用内核中的ALSA 驱动程序,选项CONFIG_SND_INTEL8X0 为此提供支持,CONFIG_SND_INTEL8X0M是对Modem 的支持,也要选择上。

以下是在我的系统中设定的所有与声卡有关的内核选项:

CONFIG_SOUND=y
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_MPU401_UART=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_MPU401=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_AC97_BUS=m 

另外还有一种方案,即使用外面的ALSA 驱动程序,可以直接在alsa 项目 的主页下载 alsa-driver。

有关内核以外的配置,后面单独讨论。

PCMCIA *2

CardBus slot (Type 2) (未测试)

ExpressCard/54 slot (未测试)

HDAPS 硬盘动态保护系统

IBM Active Protection System(使用第三方驱动)

Fingerprint Reader 指纹识别

Integrated Fingerprint Reader(使用第三方驱动)

嵌入式加密

IBM Embedded Security Subsystem 2.0 (未测试)

键盘、指点杆、触摸板、usb鼠标

UltraNav (TrackPoint / Touchpad combo) (整理中)

内核选项如下:

CONFIG_INPUT=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1400
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1050
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y

 

非T43 相关特性的内核配置

这些配置不再一一列举,请见配置文件:config-2.6.23

Tips

查看当前运行系统的内核配置

$ zcat /proc/config.gz |grep -i drm  

延展阅读

(未完)

Posted by Alex at 12:44 AM | Comments (0) | Edit | Taged: driver (2), gentoo (21), kernel configuration (1), linux (38), T43 (14), Thinkpad (21)

Gentoo Linux on T43 (4) 驱动无线网卡

识别无线网卡型号 T43 内置的无线网卡有多种型号,为以下之一: IBM 11a/b/g Wireless LAN Mini PCI Adapter II Intel PRO/Wireless 2200BG Mini-PCI Adapter...

识别无线网卡型号

T43 内置的无线网卡有多种型号,为以下之一:

它们使用了不同的芯片,也需要使用不同的驱动程序。因此,在着手驱动无线网卡之前,要弄清楚网卡的型号。

我的IBM 11a/b/g Wireless LAN Mini PCI Adapter II 使用了Atheros 的AR5212 系列芯片,可以使用以下命令确认:

# lspci |grep Ethernet
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express (rev 11)
0b:02.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

安装驱动程序

2200/2915 芯片 

对于Intel 2200/2915芯片的无线网卡,Linux 内核内置了驱动程序,如下图,如果你的网卡在此列,那么在配置内核时需要选中,如果标记为<M>,那么在编译内核后,需要将其加入文件:/etc/modules.autoload.d/kernel-2.6,在下次启动系统时,这个Module 就会自动装载。

usr-src-linux.gif

AR5212 芯片 

对于AR5212 系列芯片,必须安装第三方驱动程序。幸运的是,Gentoo 的Package  列表已经加入了madwifi 为其编写的驱动程序与工具:net-wireless/madwifi-ng 与 net-wireless/madwifi-ng-tools,使用以下命令即可以安装:

# emerge -av madwifi-ng
# emerge -av madwifi-ng-tools

安装完成之后,会编译出一个新的Module: ath_pci,将其加入文件:/etc/modules.autoload.d/kernel-2.6。

# echo ath_pci >> /etc/modules.autoload.d/kernel-2.6 

可以通过以下命令查看当前装载的Modules:

$ lsmod 

如果希望手工卸载或者装载一个Module ,用以下命令实现:

# modprobe -r <Module_Name>
# modprobe <Module_Name>

若Modules 之间存在依赖关系(可以在lsmod 的输出中查看),则需要一层一层的卸载,但有些依赖不会显示出来,导致无法卸载,这时可以使用以下命令强制卸载:

# rmmod --force <Module_Name> 

待确认所需Module 已经加载,执行ifconfig 命令,应该可以看到新的网络接口,一般会是ath0。接下来可以使用iwlist  来查找附近的无线接入点:

# iwlist ath0 scan 
ath0      Scan completed :
Cell 01 - Address: 00:07:40:ED:87:02
ESSID:"alexzhangsatgmaildotcom"
Mode:Master
Frequency:2.462 GHz (Channel 11)
Quality=17/70  Signal level=-78 dBm  Noise level=-95 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:bcn_int=100

找到后,使用iwconfig 配置连接信息:

# iwconfig ath0 essid alexzhangsatgmaildotcom 
# iwconfig ath0 key XXXXXX

第二步为加密的连接指定密钥,若无线AP 上Encryption key 没有启用,则省略第二步。对于使用WEP 静态密钥加密的无限AP 测试成功,其它加密方式未经测试。密钥要求是十六进制格式,如果是ASCII 格式,使用这样的格式:s:XXXXXX

最后,使用dhcp 向AP 请求IP 地址:(假定你使用dhcpcd 客户端)

 # dhcpcd ath0

若dhcpcd 成功获取了IP 地址,那么无线网络连接建立成功。

NOTE

  • 给出的命令如果前面带有#,那么默认需要root 权限执行。
  • 如果在执行lspci, lsusb, lsmod 等命令时遇到找不到命令的错误,那么需要安装以下对应的包:
# emerge -av sys-apps/pciutils sys-apps/usbutils sys-apps/module-init-tools
  • 我不太清楚iwconfig 可以识别多少种加密连接,对于更多样的加密连接,需要安装net-wireless/wpa_supplicant。

Troubleshooting

升级内核 从2.6.20-r8 到2.6.23 ,madwifi 无线网卡不工作

Module ath_pci load 失败。

这是一个bug ,需要安装一个补丁patch-madwifi-r2630-2.6.23-build-fix.diff ,然后重新emerge madwifi-ng。否则re-emerge madwifi-ng会有file_operations错误。

因为内核升级,sandbox 也会引起问题, 在emerge madwifi-ng过程中会有"access violation summary" 错误。

临时方案:-sandbox

# FEATURES=-sandbox emerge madwifi-ng 

解决方案: 升级 sandbox 从 1.2.18.1 到1.2.18.1-r1或者更新版本

# emerge --sync && emerge sandbox-1.2.18.1-r1 

重新emerge madwifi-ng 成功后,ath_pci 可以load 成功。

(未完)

Posted by Alex at 7:28 PM | Comments (315) | Edit | Taged: gentoo (21), linux (38), T43 (14), Thinkpad (21), wireless (2)

Gentoo Linux on T43 (3) 安装指南的指南

指南  我并不打算重新写一篇Gentoo手册 ,这既远远的超出了我的能力范围,又显得毫无意义。果已经打算开始安装Gentoo Linux,那么请详细阅读官方手册,并按步实施,这篇文档会额外介绍一些笔者在安装过程中遇到的一些问题,以及心得,并附上一些有用的链接。其中大部分内容与Thinkpad T43 有关,另外一部分会涉及到有关IBM 的一些应用环境,一并介绍(更新:这部分将单独写一份文档)(2008-3-12: 因为涉及一些受限访问的资源,很难整理区分,不打算发布了,有兴趣的朋友可以来信交流)。 为了顺利的安装Linux,相对于Windows 我们需要更多的关注硬件信息,这有助于选择合适的驱动程序,或者在网络上寻求正确的帮助。ThinkWiki 包含了非常丰富的各型号Thinkpad 硬件特性,以及在多种Linux 发布下所获得的支持,虽然,由于Linux 发布的区别,部分内容不能直接在Gentoo 下应用,但这大概是目前这方面最好的资源了。 此外,这里有一份Windows...

指南 

我并不打算重新写一篇Gentoo手册 ,这既远远的超出了我的能力范围,又显得毫无意义。果已经打算开始安装Gentoo Linux,那么请详细阅读官方手册,并按步实施,这篇文档会额外介绍一些笔者在安装过程中遇到的一些问题,以及心得,并附上一些有用的链接。其中大部分内容与Thinkpad T43 有关,另外一部分会涉及到有关IBM 的一些应用环境,一并介绍(更新:这部分将单独写一份文档(2008-3-12: 因为涉及一些受限访问的资源,很难整理区分,不打算发布了,有兴趣的朋友可以来信交流)。

为了顺利的安装Linux,相对于Windows 我们需要更多的关注硬件信息,这有助于选择合适的驱动程序,或者在网络上寻求正确的帮助。ThinkWiki 包含了非常丰富的各型号Thinkpad 硬件特性,以及在多种Linux 发布下所获得的支持,虽然,由于Linux 发布的区别,部分内容不能直接在Gentoo 下应用,但这大概是目前这方面最好的资源了。

此外,这里有一份Windows 软件类似替代列表 , 有人负责维护更新,但中文版本更新很慢,网络上广泛转载的版本也是出于此。

提纲 

下面的目录,包含了整个系列内容的链接。

  1. 为什么使用Gentoo
  2. 安装之前
  3. 安装指南的指南(You are here!)
  4. 驱动无线网卡
  5. 配置内核(kernel)
  6. 中文环境
  7. 中文字体
  8. X300 显卡的驱动以及3D 加速
  9. HDAPS 硬盘动态保护系统
  10. Fingerprint Reader 指纹认证
  11. CPU 频率自动控制(ToDo)
  12. Java 环境
  13. 应用程序中字体的纠正
  14. 内存虚拟盘加速系统
  15. Fn + Keys
  16. 蓝牙传输文件
  17. VGA输出
  18. 声卡驱动(ToDo)
  19. 总结(ToDo)

在我今天回来整理这个文档的时候,我才发现Gentoo手册已经多出了一个中文版本 ,与最新的英文版 同步,这也看出Gentoo中文社区发展的迅速。

参考信息

(未完) 

Posted by Alex at 1:50 PM | Comments (0) | Edit | Taged: gentoo (21), linux (38), T43 (14), Thinkpad (21)

Gentoo Linux on T43 (2) 安装之前

在安装之前,需要做一些简单的决定,以为将来节省一些时间,涉及以下几个方面: 安装所在物理硬盘 T43 可以通过硬盘托架安装第二块内置硬盘,并获得与第一块硬盘相同的性能,虽然占用了光驱位置,但也是一种扩展存储或者实现快速备份的方案。如果仅仅使用第一块硬盘,可以跳过这一小节。 如果打算安装在第二块硬盘,那么有一点需要注意,即对第二块硬盘的设备名称的引用。 正常情况下,第一块硬盘会被设别为/dev/hda 或者/dev/sda (具体为哪一个,依赖于在配置内核参数时所选择的驱动程序,后面会具体讲到),而第二块硬盘会被识别为/dev/hdb 或者/dev/sdb。 但当在启动时,使用F12 改变启动顺序,更改到第二块硬盘启动,则情况刚好反过来,第二块硬盘会识别为hda/sda ,第一块硬盘变为hdb/sdb。因此,需要决定平时以哪一种方式来启动第二块硬盘上的Linux 系统,以决定如何编写/boot/grub.conf 以及/etc/fstab 文件。...

在安装之前,需要做一些简单的决定,以为将来节省一些时间,涉及以下几个方面:

安装所在物理硬盘

T43 可以通过硬盘托架安装第二块内置硬盘,并获得与第一块硬盘相同的性能,虽然占用了光驱位置,但也是一种扩展存储或者实现快速备份的方案。如果仅仅使用第一块硬盘,可以跳过这一小节。

如果打算安装在第二块硬盘,那么有一点需要注意,即对第二块硬盘的设备名称的引用。

正常情况下,第一块硬盘会被设别为/dev/hda 或者/dev/sda (具体为哪一个,依赖于在配置内核参数时所选择的驱动程序,后面会具体讲到),而第二块硬盘会被识别为/dev/hdb 或者/dev/sdb。

但当在启动时,使用F12 改变启动顺序,更改到第二块硬盘启动,则情况刚好反过来,第二块硬盘会识别为hda/sda ,第一块硬盘变为hdb/sdb。因此,需要决定平时以哪一种方式来启动第二块硬盘上的Linux 系统,以决定如何编写/boot/grub.conf 以及/etc/fstab 文件。

说到这里给一点小小的建议,我使用了第二块硬盘托架,最初希望在第一块硬盘上运行Windows 来作为日常工作系统,在第二块硬盘安装Linux 作为个人系统。但最终,我把它放在了第一块硬盘,并且在工作和个人时间都使用它,第二块硬盘仅仅作为备份使用。我的建议是,如果打算把Linux 作为一个主要的系统来使用,那么装在托架内是不大方便的。

安装媒介

安装过程需要使用光驱引导安装光盘上的系统,如果安装在第二块硬盘,则无法使用内置光驱,那么需要额外准备一个USB 或者PCMCIA 接口的光驱。

是否还需要Windows

我想大多数人是需要的,尽管Linux 已经拥有了众多功能丰富的应用以及Windows 方案的替代,但以下几项仍会成为我偶尔启动Windows 的理由:

  • 部分网上购物的支付过程
  • 使用网上银行系统
  • 证券交易系统

其它几乎我的所有工作以及个人需求,都能在Linux 下得到很好的满足,极少部分应用可能需要使用Wine 模拟Windows 环境进行运行,但速度以及稳定性感觉不到任何差别,有关应用后面会专门介绍。

另外有一个方案,可以给极少需要使用Windows 系统但仍不可或缺的人,即在Linux 系统运行一个virtualbox 虚拟机,并安装一个Windows 系统,这样可以在不重启Linux 的情况下访问Windows 应用。

多系统共存与引导

Gentoo Linux 使用grub 作为引导程序,grub 提供了强大的命令行支持,可以在启动失败时重新修改启动参数,查看启动环境,甚至访问分区上的文件。

我习惯于将grub 安装于主硬盘的MBR,然后在grub.conf 中配置对不同操作系统的访问条目。在为不同的系统分配分区时,有一个需要注意的地方,最好将包含有每一个系统引导文件的分区,放在硬盘的1024扇区(约8.4G)以内,对于Linux 是存放内核文件的Boot 分区,对于Windows 是存放ntldr 文件的分区,否则可能会在启动时引起麻烦。有兴趣可以参考 Windows XP 与Linux多系统引导的进一步探讨中的第7小节。

另外,同一块硬盘只允许有4个主分区(由于历史以及MBR 空间的限制),其它分区必须作为逻辑分区存在于扩展分区(注意:扩展分区也占用一个主分区的位置),我习惯于以下的划分方法:

主分区: 

sda1:    Linux 启动分区
sda2:    Linux 交换分区
sda3:    Windows系统分区
sda4:    扩展分区

逻辑分区: 

sda5:    Linux 根分区
sda6:    其它分区
...

(未完)

Posted by Alex at 12:53 AM | Comments (0) | Edit | Taged: gentoo (21), linux (38), T43 (14), Thinkpad (21)

Gentoo Linux on T43 (1) 为什么使用Gentoo

吸引你的特色  Gentoo Linux 是众多Linux 系统发布版本中的一种,具有2个主要特色: 自动化的软件包获取与安装过程 软件尽可能以源码形式分发 Gentoo 拥有一个自动化的软件包分发与安装机制,称为Portage,是从FreeBSD 借鉴而来。简而言之,就是人们只需关心需要什么软件,而无需关心如何获取安装文件、如何进行安装,甚至对于安装所依存的软件包也无需关注,软件的版本升级也变得很简单,这一切都由Portage 系统来照顾。 此外,Gentoo Portage 系统中的软件包大部分是以源码形式分发,除少量版权允许的闭源软件是以二进制形式分发以外,大部分需要编译,不过整个过程包括编译前的配置是自动进行的,对于没有编译经验的人也可以顺利完成大部分软件的安装。 由此,Gentoo Linux是一个配置性非常强的系统,经过优化的二进制代码包更节省系统资源,十分适于作为一台开发工作站的桌面系统。...

吸引你的特色 

Gentoo Linux 是众多Linux 系统发布版本中的一种,具有2个主要特色:

  1. 自动化的软件包获取与安装过程
  2. 软件尽可能以源码形式分发

Gentoo 拥有一个自动化的软件包分发与安装机制,称为Portage,是从FreeBSD 借鉴而来。简而言之,就是人们只需关心需要什么软件,而无需关心如何获取安装文件、如何进行安装,甚至对于安装所依存的软件包也无需关注,软件的版本升级也变得很简单,这一切都由Portage 系统来照顾。

此外,Gentoo Portage 系统中的软件包大部分是以源码形式分发,除少量版权允许的闭源软件是以二进制形式分发以外,大部分需要编译,不过整个过程包括编译前的配置是自动进行的,对于没有编译经验的人也可以顺利完成大部分软件的安装。

由此,Gentoo Linux是一个配置性非常强的系统,经过优化的二进制代码包更节省系统资源,十分适于作为一台开发工作站的桌面系统。

有关特色,可以到这里阅读更多的内容

可能放弃的理由 

一些其它Linux 发布默认提供了非常丰富的软件包,Linux 系统安装完成之后,这些软件也都可以使用了,而Gentoo 的安装大体上就要分为几个阶段:(1)通过光盘启动系统并配置网络,(2)安装系统基本文件以及Portage 系统,(3)配置并编译内核,(4)必需的基本系统设置, (5)至此才开时安装额外所需的系统与应用软件。

这些软件需要使用者自己做出选择,有时安装过程也会遇到各种各样的问题,要考验使用者的动手能力,尤其对于中文用户,有关locale、字体、文件名编码以及输入法等,还有更多工作要做。有一些Linux 发布在第一次安装时,甚至就不需要查看安装手册,而我在第二次安装Gentoo 时,却依然需要分步查阅这个内容丰富的在线安装指南。因此,相对于一般的其它的Linux 发布,Gentoo 可能会耗费你更多,甚至是成倍的时间,来获取一些不知所谓的好处,或者是乐趣什么的东西。

有关选择的一个小建议 

某些时候,面对如此之多的选择,会无所适从,其它的Linux 发布我了解很少,只用过Redhat,所以,这里也不做比较,在了解了一个系统的优点和缺点之后,如果还无法决定,那就亲自试试,毕竟,在这里阅读文字也会浪费时间,结果无非两个,或许会陶醉其中,或是浅尝辄止回来继续你的美好生活。

另外一个选择,如果你相信“占卜”,也可以把你的选择权交给 Linux Distribution Chooser

更新 2008-03-21

今天碰巧看到一篇文章,我為什麼採用 Gentoo 當作我的系統. 后面列举了一些缺点,1..7 ,但对已经成文Gentoo 用户的人来说,是一些不错的Tips。

(未完)

延展阅读

Posted by Alex at 1:35 PM | Comments (0) | Edit | Taged: gentoo (21), linux (38), T43 (14), Thinkpad (21)

别让PDA 拖了后腿

去年买了一部PDA,型号是O2 XDA III,与台湾的多普达D700 无头版硬件配置相同,使用已近一年。记得刚购置回来折腾了月余,尝试了几个版本的OS,来来回回刷了十几遍,试装过很多应用软件,最后终于稳定下来。前些日子因为一些无法容忍的问题,决定升级一下环境,不过这次折腾得更理智一些,把一些经验分享一下。 旧环境  最后稳定下来使用的主要环境如下: Helmei WM 5.0 AKU 3.2 XLKJ Chinese:简体中文区域补丁包 汉王马兰花2006 手写输入...

去年买了一部PDA,型号是O2 XDA III,与台湾的多普达D700 无头版硬件配置相同,使用已近一年。记得刚购置回来折腾了月余,尝试了几个版本的OS,来来回回刷了十几遍,试装过很多应用软件,最后终于稳定下来。前些日子因为一些无法容忍的问题,决定升级一下环境,不过这次折腾得更理智一些,把一些经验分享一下。

旧环境 

最后稳定下来使用的主要环境如下:

  • Helmei WM 5.0 AKU 3.2
  • XLKJ Chinese:简体中文区域补丁包
  • 汉王马兰花2006 手写输入
  • TranCreative Remote  Keyborad:共享PC的键盘、鼠标与剪贴板
  • Resco Explorer:更强大的资源管理器,注册表编辑器,FTP 客户端
  • Yonsm.NET  CeleDial:联系人拼音首字母选择拨号
  • MagicButton:多任务图标显示
  • Spb Backup:方便的整机备份与恢复
  • Breeze:桌面增强
  • 其它还有一大堆辅助应用程序

缺点 

系统功能还算强大,但一直有几点不足:

  • 不规律死机:死机后,拨进来电话有回铃音,发进来短信也认为发送成功,但重启后不会留下任何痕迹
  • 蓝牙同步:经常无法连接
  • USB 同步:必须接上电缆后重启PDA才能连接成功
  • 蓝牙耳机:PDA长期开着蓝牙电池耗费过快
  • 手写切换:经常由于运行程序太多导致无法切换到手写输入,有时重启后马上切换也无法成功
  • 有时发生蓝牙或者无线网卡无法开启的问题

以上几点最头痛的是第一条,因为这已经影响了最基本的手机功能,这也是我开始第二次“折腾”的主要原因。

新环境

首先决定升级到最新的稳定OS 版本。回到BlueAngel 开发社区,比较了一下,决定还是选用Helmi 的版本,现在最新的稳定版本是 Helmi_BA_WM2k5_AKU3.5_v1.4.CF2

系统安装好后,开始选择应用程序,本着一切从简的原则,如果不切实需要,再好的应用也不安装。以下是最后的应用安装列表:

  • XLKJ Chinese
  • Yonsm.NET CeleDial
  • 汉王马兰花2006 手写输入
  • Resco Explorer (Explorer &Registry)
  • SaveContactToSIM
  • TranCreative Remote  Keyborad
  • Efficasoft Smartphone GPRS Traffic Monitor
  • Pocket MSN
  • STOCK :同花顺股票看盘
  • Spb Backup
  • PHM Device Manager
以下是绿色非安装软件:
  • 讯飞语音电子书
    中文文本朗读软件,节奏不错,就是英文发音有些惨不忍睹,很常用的有声读物转化工具。
  • 掌心万年历
    用来查农历。
  • mailAccountRepair
    一个补丁程序,后面会有介绍。
  • AltTab
    用来一键切换任务,类似于PC 的Alt+Tab

其间,还曾经安装过以下软件,虽然都是优秀应用,最后仍然被清理出门,后面会写出原因。

  • Spb Mobile Shell
    功能十分实用的软件,尤其喜欢它内置的天气预报与炫丽的时钟待机。此软件开机运行,有桌面插件,会占用相当可观的内存,因为天气预报有短信服务可以代替,因此最终卸载。
  • MagicButtom
    可以在任务栏显示多任务图标,并可以真正关闭窗口。使用AltTab 替代了任务切换的功能,通过“运行任务列表”清理窗口与内存,因此最终卸载。
  • OAC (Odyssey Access Client)
    无线协议增强与连接管理,是非常优秀的付费软件,据我了解某些情况下甚至是唯一的选择。公司的无线网络使用802.1x EAP Cisco(LEAP) 认证协议,此版本WM5.0 系统并不提供此协议的支持,安装OAC 之后连接成功,OAC 还提供其它多种协议的支持。此外OAC 还是个不错的连接管理软件,类似ThinkPad 中的Access Connection。,OAC 4.5 for WM5.0, Crack for 4.5, [讨论]。
    最后因为与ThinkPad的同步恢复正常,可以共享上网,已没有使用LEAP协议进行无线连接的必要,因此卸载。
  • ozBT [讨论]
    ozBT 也是一个很有趣的小软件,它允许你根据特定应用程序的行为自动开启与关闭无线网卡或蓝牙。比如可以将OAC 与无线连接开启关联,将ActiveSync 与蓝牙开启关联。不过最终发现其消耗过多的资源,并且自动关闭的关联行为很难琢磨,遂放弃。

成果 

经过精简,系统启动运行的程序很少,这样减少了常规内存消耗,汉王切换更顺畅,如果遇到无法切换的情况,就可以进入“运行程序列表”,停止所有程序,然后在下面切换,都可以成功。另外,最重要的,从此没有再死机,再也不用没事拿起来测试一下它是否还“活着”。

自定义mail 帐号丢失

自从AKU3.2 起,在更换电池后都需要重启一次PDA,否则电话模块无法打开。此次系统升级后,带来新的问题,更换电池后,如果不理解捅reset 孔重启,一旦进入系统,自定义的mail 帐号就会丢失,如果尝试使用相同名称重新创建,也会告知此帐号名称已存在。经搜索,找到一篇讨论:disappearing mail accounts,我使用了方案之一并成功解决 mailAccountRepair ,另外还有一种解决方案 。 

ActiveSync 同步无法连接

此前一直存在ActiveSync 同步问题,蓝牙同步经常连接失败,USB 同步则需要重启PDA,尝试了很多方案都没有解决,比如升级ActiveSync 版本到4.5,重装MS Outlook 2003,升级Thinkpad 蓝牙驱动等。

但是这次系统环境更新之后,问题得到了彻底的解决,虽然不清楚根本的原因,但至少上述的系统环境与应用环境没有影响到同步。

目前可以通过蓝牙、USB、甚至红外进行同步,并且不需要重启任何一端设备,随时可以同步。这里简单列出几个关键设置步骤。

  • Thinkpad上升级最新的蓝牙驱动程序。我的蓝牙设备(ThinkPad Intergrated Bluetooth IV)驱动版本是Broadcom 5.1.0.2900,蓝牙通信端口 (COM6) 的驱动版本是Broadcom 5.1.0.2400
  • 安装MS Outlook 2003
  • 安装ActiveSync 4.5
  • 进行蓝牙配置,在“本地服务”的标签页“添加串行服务”, 服务名称默认是“Bluetooth 串行端口”,COM 端口对于我的设备是6,选择“自动启动”与“安全连接”。
  • 配置ActiveSync,如果“Allow connections to one of the following:” 一项选中COM6,那么蓝牙同步可以连接成功。如果选中“Infrared Port (IR)”,那么红外线端口同步则可以连接成功,这两者是互斥的。而任何一种设置下都可以进行USB同步。
  • 如果使用USB 同步,插上线缆后不需要任何操作,会自动进行连接,连接成功后会询问一些同步的选项,设置好后即可,同步会自动开始。
  • 如果使用蓝牙或红外同步,则需要在PDA 上运行ActiveSync,并在菜单中手动选择“Connect via Bluetooth”或者“Connect via IR”,否则连接不会开始。如果是蓝牙同步,还需要进行配对认证,这里不详述了。

在Gmail 与PDA 之间同步?

在ActiveSync 不工作的日子,我尝试去寻找一些其它的方案,这里包含一个更多选择的列表,不过在我还没来得及尝试可能的选择之前,ActiveSync 就恢复正常了。不过下面这个服务 着实让我惊喜了一阵子,不再需要安装ActiveSync,不再需要安装Outlook,不再需要桌面应用,只需要网络连接,就可以同步Gmail 帐户的联系人和邮件,甚至Google Calendar…… 这一切听起来很美妙,不过提交邮件过程却出错了,希望这不是一个胎死的项目。

一些技巧

  1. 尽量保持桌面(Today)简洁,功能丰富的插件的确让桌面看起来很专业,也很强大,不过他们真的满足了你真正的需求吗?缺点:占用过多的系统资源。
  2. 安装过多的应用程序。我安装系统回收了隐藏的存储区域,现在拥有60.30MB 的内建“硬盘” ,77.11MB 的“内存”,31.96MB 的RamDisk,这里不讨论存储卡(电量降低到一定幅度,存储卡会自动关闭,所以我只是将它作为“移动硬盘”使用)。
    所有安装的程序对我来说都是重要的,如果某个应用你一个月也不会访问一次,大概可以把它卸载了。尤其对于启动加载的应用,更需要谨慎的选择是否安装,实践证明,这是解决我的PDA 不规律死机的一剂良药。
  3. 我没有安装键盘汉字输入法,仅仅依靠手写输入,有些人可能有不同的看法,我读过一片文章:G99汉王手写使用的提速心得,这非常有助于提高手写录入速度。
  4. 我尽量减少在PDA 上进行录入,TranCreative Remote  Keyborad 是一个非常优秀的软件(大名鼎鼎的Magic Button 与其同出一门 ),它以一个输入法的形式在PDA 上出现,PC端有一个小巧的绿色程序,连接后,我可以在PC上copy 一大段文字,然后在PDA 上进行粘贴,也可以使用PC 上的键盘(包括汉字输入)在PDA 上进行快速录入,你甚至可以使用鼠标来代替触控笔。
    对于一个新的联系人,如果可能的话,我会在Outlook 中进行记录,然后同步到PDA。
  5. WM5.0 中屏幕右上角的关闭按钮,只是相当于最小化窗口,任务栏也无法显示正在运行的任务列表,唯一的途径就是进入“运行任务列表”来查看、切换或者关闭。我找到了一个小巧的程序(AltTab)来实现任务切换,并且不长期占用内存,任务关闭则依然采用进入“运行任务列表”的方式。
    把AltTab 程序文件copy 到\Program Files\ 目录,然后进入按键设定,把其中的一个按键与AltTab 进行关联,我选择了Button 3,也就是“开始菜单”按钮。这样每次按下“开始菜单”按钮就会在多个任务间进行切换。
  6. 把一切感兴趣的内容变成有声读物。每日下班前我在PC 上浏览一些感兴趣的网站,把有价值的文章作为文本文件保存在与PDA 同步的文件夹,等我在路上的时候,就可以使用耳机聆听这些文本,与真正的有声读物没有太大区别。这通过讯飞语音电子书来实现,其语音库文件只有5MB 左右,但朗读中文的语气和节奏听起来还是很舒服的。
  7. 浏览在线内容。曾一度在PDA上,这是个噩梦般的经历。庞大的页面尺寸,复杂的页面控制,充斥着垃圾无用的信息,这一切在PDA 上就是惨不忍睹的页面排版,超长的装载时间,却只为了读取一小块内容,而专门的WAP 网站却几乎找不到我们感兴趣的内容。现在应用RSS,一切都变得很美好,摒弃了一切与内容无关的因素,我想看的内容就是feed 提供的全部。
    我一直使用Firefox 的Live Bookmark 来订阅喜欢网站的rss,在PDA 上当然不行,我尝试了Google Reader ,界面很简洁,速度也很快。唯一的遗憾就是,目前无法在PDA 上添加新的rss,只能在PC 上管理,大概是Google 有意简化PDA 版本的操作。
  8. 最后有一篇文章分享给大家:现在开始
(有新的想法我会继续补充)

延展阅读 

Posted by Alex at 7:40 AM | Comments (0) | Edit | Taged: ActiveSync (1), D700 (1), PDA (4), PPC (1), XDA III (1), 多普达 (1)

自己动手清理Thinkpad 键盘与散热风扇

此文适用于T43 系列,其它系列未作验证仅供参考。  这几天Thinkpad 键盘个别键有失灵的情况,按几下又好了,以前有过类似的情况,可能是进去了比较大的异物,影响了机构下压。前段时间也发觉风扇声音有些大,估计灰尘不少,于是拆开清理一下。 关机断开电源,拆下电池,用合适的十字起子拧开背面的几个键盘固定螺丝(螺丝旁均有键盘图案标记), 然后使用平起子在正面键盘两个CTRL 键下方轻轻撬一下,键盘即可整体取出。 摘取键帽 没有书面文字指导如何安全的摘取键帽,经过实践,正确的方法应该是从键帽上沿开始撬,先把按键完全按下并保持住,上部锁扣在按键按下状态会自动打开,然后抠起键帽上沿,上方脱离后,松开键帽,继续抬起,稍一加力,下方的锁扣也会脱开。按此方法,上方的锁扣都不会遇到问题,但有的键帽下方锁扣较紧,若打不开,可尝试从下沿抠起。 注意:有7个按键是例外的,它们是[F] [G] [H] [J] 键,以及[左箭头] [右箭头]...

Thinkpad 键盘

此文适用于T43 系列,其它系列未作验证仅供参考。 

这几天Thinkpad 键盘个别键有失灵的情况,按几下又好了,以前有过类似的情况,可能是进去了比较大的异物,影响了机构下压。前段时间也发觉风扇声音有些大,估计灰尘不少,于是拆开清理一下。

关机断开电源,拆下电池,用合适的十字起子拧开背面的几个键盘固定螺丝(螺丝旁均有键盘图案标记), 然后使用平起子在正面键盘两个CTRL 键下方轻轻撬一下,键盘即可整体取出。

摘取键帽

没有书面文字指导如何安全的摘取键帽,经过实践,正确的方法应该是从键帽上沿开始撬,先把按键完全按下并保持住,上部锁扣在按键按下状态会自动打开,然后抠起键帽上沿,上方脱离后,松开键帽,继续抬起,稍一加力,下方的锁扣也会脱开。按此方法,上方的锁扣都不会遇到问题,但有的键帽下方锁扣较紧,若打不开,可尝试从下沿抠起。

注意:有7个按键是例外的,它们是[F] [G] [H] [J] 键,以及[左箭头] [右箭头] [下箭头],这7个按键的锁扣方向是相反的,所以需要把以上的方法倒过来用。参考下图:

[F] [G] [H] [J] 键

F G H J 锁扣是相反的

[左箭头] [右箭头] [下箭头]

[左箭头] [右箭头] [下箭头] 锁扣是相反的

清理风扇

键盘拆下来后就可以看到风扇,一年多的使用,灰尘已经十分可观。

积满灰尘的风扇

使用酒精棉签擦干净,也可以使用吸尘器,但需要十分小心。 

清理完全之后全部装好,已经和新的一样。

清理后的键盘

Posted by Alex at 4:42 PM | Comments (0) | Edit | Taged: Thinkpad (21), 清理键盘 (1), 清理风扇 (1)

一次误拆装导致DM-20 录音失效的故障

DM-20 数码录音笔录音功能失效,操作录音笔上的录音按钮无法录音,只能使用遥控器上的按钮和麦克风进行录音,并且遥控器的部分功能键也工作不正常,其它操作均正常。录音笔已经过了保修期,于是自己拆开先看看。一共有5个螺丝,还有卡口,小心翼翼拆开,并记好螺丝的位置。 查看外表的所有接头、焊点,以及按键开关,没有明显异常,于是通电进行测试,令我兴奋的是,所有功能竟然恢复了,故障不翼而飞。 于是再次确认各连接部分之后,重新组装好,未上螺丝之前,又加电测试,一切正常。待全部装好故障又重复出现,于是怀疑与螺丝有关,拆开仔细检查与每个螺丝有关的部分,最后发现,两粒螺丝装错了位置,长短稍有差异,但影响了电气连接,导致故障。 这时我才想起,从前因为其它小问题曾经试图拆过机身,不过发现卡扣比较紧,就放弃了,一定是当时不小心把这两粒螺丝装错,也一直没有发现故障。  ...

DM-20

DM-20 数码录音笔录音功能失效,操作录音笔上的录音按钮无法录音,只能使用遥控器上的按钮和麦克风进行录音,并且遥控器的部分功能键也工作不正常,其它操作均正常。录音笔已经过了保修期,于是自己拆开先看看。一共有5个螺丝,还有卡口,小心翼翼拆开,并记好螺丝的位置。

IMGP1835.jpg

IMGP1840.jpg

查看外表的所有接头、焊点,以及按键开关,没有明显异常,于是通电进行测试,令我兴奋的是,所有功能竟然恢复了,故障不翼而飞。

IMGP1851.jpg

于是再次确认各连接部分之后,重新组装好,未上螺丝之前,又加电测试,一切正常。待全部装好故障又重复出现,于是怀疑与螺丝有关,拆开仔细检查与每个螺丝有关的部分,最后发现,两粒螺丝装错了位置,长短稍有差异,但影响了电气连接,导致故障。 这时我才想起,从前因为其它小问题曾经试图拆过机身,不过发现卡扣比较紧,就放弃了,一定是当时不小心把这两粒螺丝装错,也一直没有发现故障。

IMGP1828.jpg

 

Posted by Alex at 12:09 PM | Comments (0) | Edit | Taged: 录音笔 (1)

理性选购照片打印机 HP2368

周六去中关村,把已经选好型号的打印机HP 2368买了回来。不带票,300元,带小容量体验四色墨盒一套,共两个,817三色,816黑色,喷头与墨盒一体。有可选的照片专用58墨盒,三色,可用来替换掉816黑色墨盒,与817组成6色打印。 这 是一台低端的家用彩喷,购买之前,我曾徘徊在几款中低端照片打印机之间,包括Epson, HP的几个6色喷墨打印机型号(A4),以及三星的2020热升华照片打印机(A6),价格在500-1200元之间,但在了解打印耗材成本之后,我决定 还是使用数码冲印店的服务,购买一台性价比最高的低端型号应付日常需求。 目前的中低端打印机价格都比较便宜,但在墨盒上,厂家却有非常大的利润空间。中关村的一位技术人员介绍,打印机送的体验墨盒容量都很小(2-3ml),直接在上面改装连供系统,容易出现供墨不连续的问题,如果购买已包括墨盒的连供,成本又很高(很多型号打印机的一套墨盒价格高于打印机本身)。 HP的墨盒有个特点,揭开上面的纸贴,下面有一个现成的小孔,里面有海绵垫过滤,可以直接进行注墨使用。我的打印量不大,因此我决定购买国产质量较好的墨水,在墨盒用完后,注墨使用。佳能和爱普生打印机墨盒需要钻孔注墨或者改装连供。  打 印机安装好后,系统提示需要进行墨盒校准,这个必须作,不怎么费墨,否则无法继续打印。我买了A4照片打印纸,80克的那种,裁成四等份,每份与6寸 (A6)照片大小相同,打印时选择最高质量,效果还可以,但与冲洗肯定有差距,颜色连续变化比较平滑的照片效果差的多些,对比度高,颜色数量较少的照片效 果差的少些。 但使用A6尺寸打印总发生无法对齐的问题,后来找到一种办法,使用HP带的软件HP Photosmart Essenctial,选中4图片一起打印,并选择一页4张,使用A4尺寸,它会自动安排在一页打印。然后使用裁纸刀裁开,既快捷,又整齐,很有冲洗店的感觉。...

周六去中关村,把已经选好型号的打印机HP 2368买了回来。不带票,300元,带小容量体验四色墨盒一套,共两个,817三色,816黑色,喷头与墨盒一体。有可选的照片专用58墨盒,三色,可用来替换掉816黑色墨盒,与817组成6色打印。

这 是一台低端的家用彩喷,购买之前,我曾徘徊在几款中低端照片打印机之间,包括Epson, HP的几个6色喷墨打印机型号(A4),以及三星的2020热升华照片打印机(A6),价格在500-1200元之间,但在了解打印耗材成本之后,我决定 还是使用数码冲印店的服务,购买一台性价比最高的低端型号应付日常需求。

目前的中低端打印机价格都比较便宜,但在墨盒上,厂家却有非常大的利润空间。中关村的一位技术人员介绍,打印机送的体验墨盒容量都很小(2-3ml),直接在上面改装连供系统,容易出现供墨不连续的问题,如果购买已包括墨盒的连供,成本又很高(很多型号打印机的一套墨盒价格高于打印机本身)。

HP的墨盒有个特点,揭开上面的纸贴,下面有一个现成的小孔,里面有海绵垫过滤,可以直接进行注墨使用。我的打印量不大,因此我决定购买国产质量较好的墨水,在墨盒用完后,注墨使用。佳能和爱普生打印机墨盒需要钻孔注墨或者改装连供。 

打 印机安装好后,系统提示需要进行墨盒校准,这个必须作,不怎么费墨,否则无法继续打印。我买了A4照片打印纸,80克的那种,裁成四等份,每份与6寸 (A6)照片大小相同,打印时选择最高质量,效果还可以,但与冲洗肯定有差距,颜色连续变化比较平滑的照片效果差的多些,对比度高,颜色数量较少的照片效 果差的少些。

但使用A6尺寸打印总发生无法对齐的问题,后来找到一种办法,使用HP带的软件HP Photosmart Essenctial,选中4图片一起打印,并选择一页4张,使用A4尺寸,它会自动安排在一页打印。然后使用裁纸刀裁开,既快捷,又整齐,很有冲洗店的感觉。

2007-03-15  更新

打印19张A6彩色照片(6寸大小)之后,打印机警告更换墨盒,之后又正常打印了4张,不知道还能用多久。可见随机体验墨盒容量之小,有人拆解过,发现墨盒体积虽大,但是就像礼品盒一样,最里面实际盛墨水的空间小得可怜。一套新墨盒的价格已接近一台全新打印机的价格,而标准墨盒与体验墨盒的主要区别是墨水的容量,成本很接近,可见墨盒利润之丰。即使号称“买的起,用的起 ”的Epson MII 打印机,其墨盒价格虽相对便宜,并可单独更换一种颜色的墨盒,减少浪费,但其容量也是打了折扣,实际可打印张数大大减少,还不如说是“减量+减价”。

准备买质量较好的国产四色墨水注墨使用,成本大概在三四十元左右,这里有注墨指南 。 

2007-03-20 更新

说起来好笑,3.15 刚过,Epson的墨盒就被央视拿来开刀,因残墨最高达到58%而被消费者起诉并曝光 ,国内目前对这类产品还没有相应的标准,希望这可以尽快催生其出台。

我在中关村的一家墨盒批发处购买了两盒(一黑一彩)天威4色墨水,65元,成本相当于N套墨盒。 

Posted by Alex at 11:59 PM | Comments (0) | Edit | Taged: 喷墨打印机 (1)

Buffalo MCR-5A makes cpu workload 100%

I bought a PCMCIA card reader for reading SD memory cards within my thinkpad.After a try,...

I bought a PCMCIA card reader for reading SD memory cards within my thinkpad.

After a try, I found MCR-5A will take cpu to 100% load when writing or reading for the SD card within it. 

Made a search on Internet, there's simular problem from others . Also refered to the spec on website of Buffalo . MCR-5A and MCR-16A are both don't support the sd card greater than 1GB and both are 16 bits card.

I use 2GB sd card and am not happy with 100 cpu load, seems have to try others. 

Posted by Alex at 5:51 PM | Comments (0) | Edit | Taged: pcmcia (1)

Synchronize XDA III and Thinkpad

When I use WM 2003, the sync feature via USB was all right(cant by BT), but...

When I use WM 2003, the sync feature via USB was all right(cant by BT), but for current WM 5.0 OS, continue to failed for sync via USB.

I found a link below, it really helpful.

I remove my BT device in my Device Management. and then update drivers by Internet. the new drivers come and with a new applet in control panel.

follows the article, all problems settle down, get successfully on sync via bluetooth.

Reference 

  • http://www.geekzone.co.nz/content.asp?ContentId=3163

Posted by Alex at 7:12 PM | Comments (0) | Edit | Taged: bluetooth (2), PDA (4), synchronize (1)

Choose OS for my Pocket PC

Original OS with machine: WM 2003 1.40.06 CHT + 简体中文环境Flashed to:Helmei WM 5.0 AKU 3.2 + 简体中文区域...
Original OS with machine: 
  • WM 2003 1.40.06 CHT + 简体中文环境
Flashed to:
  • Helmei WM 5.0 AKU 3.2 + 简体中文区域 + 汉王马兰花2006
Not stable, and prefer the original Chinese handwrite so changed to: 
  • WM 2003 1.40.06 CHT + 简体中文区域
Can write SC&TC output TC(but not SC) with original HW. and also path problem, prefer to use:
  • WM 2003 1.42.01 WWE + 简体中文区域 + 汉王马兰花2006
Can't use Bluetooth with the expire problem for all 2003 OS version. And unconveinent on chat window swtich in msn. have to change to WM 5.0, so try this lower version, more stable than AKU 3.2:
  • Helmei WM 5.0 AKU 2.6 + 简体中文区域
Seems don't support Chinese speak out in VoiceCommander. try back to finally:
  • Helmei WM 5.0 AKU 3.2 + 简体中文区域 + 汉王马兰花2006

After Tried lots of OS versions more than above and applications, I prefer a clearer system and app env which should be easily recovery after a hard reset. I'm planning my own ExtROM version. It should have at least following:

  • DelDetect.exe
  • Chinese Support - pp
  • HWPenCE 2006 (no register requested) - pp
  • Profiles
  • Shutdown
  • MagicButton
  • MMS Enable - pp
  • China GPRS and MMS settings - pp
  • SaveToSIM
  • Resco Explorer
  • Resco FTP
  • Resco Register
  • Resco Today Plugin
  • RAR
  • ExtROM version
  • ExtRom visible
  • MFC Runtime
  • Spb Backup

Optional:

  • ACE DDI Driver
  • DDI D3D Driver
  • Flash
  • VoiceCommander
  • PDF reader
  • CHM reader
  • Dictionary
  • Winamp
  • Realplayer
  • Lyrics plugin for MPlayer
  • QQ
  • HandCalendar
  • Handcn
  • Chinese Chess
  • 五子棋

Other steps taken:

  • Adjust Datatime
  • Settings > System > About > Set Device ID as XDA-Alex
  • Auto run ExtROM
  • Run ExtROM_Addons mauanlly
  • Setup BlueTooth headset
  • Setup WIFI authorization
  • Setting HWPenCE
  • Plug into data cable to sync information with Thinkpad.
  • Import Breeze cfg file.

When you run a .exe file to install Pocket PC application from desktop PC, the .cab files will be extract into following folder in the descktop PC.

C:\Program Files\Microsoft ActiveSync\

You could get these files and copy to PDA manually and then install manually if you have any need.

 

Posted by Alex at 1:28 PM | Comments (0) | Edit | Taged: PDA (4)

New pocket PC phone O2 Xda III

Model Story I got a new pocket pc with phone, O2 Xda III for myself to replace...

Model Story 

I got a new pocket pc with phone, O2 Xda III for myself to replace Seimens 6688i.

It's by HTC, and belongs to BlueAngel seriers. This seriers is rebadged and sold under many names. O2 is one of them from Europe.

O2 is a large mobile service vendor in Europe, Xda is a series for pocket PC [phone] and smart phone. Xda III is meaning Xda 3, there's also a model called Xda IIi(Xda 2i). They are not the same model.

There's a model called Xda IIs is very simular with Xda III. I have no idea what's the difference between them except the model name. 

In China market, it's called Dopod D700, they are the same in specs. In fact, Dopod D700 is never put into China market at all because the WIFI argument between China goverment and WIFI standard organization.

Most of pocket PC of O2 are produced in Taiwan.

My Pocket PC Information 

I bought this from a guy of taobao.com who owns a counter (4357) at E-Digital Building in Zhongguancun.

The standard original accessories:

Pocket PC, 1490mAh Battery x 1, docking station x 1, AC adapter x 1, charge convertor x 1, Case x 1, manual books x 2.

The additional accessories:

iPad USB data cable x 1, 3200mAh battery x 1.

2550 RMB.

This Xda III is reflashed as WM 2003 TC with SC patch, but there're some problem such as TC characters and bad looking code in Help and some menus.

Current Device info:

版本 

ROM版本:    1.40.06 CHT
ROM日期:      03/10/05
无线版本:      1.10.00
协议版本:      1337.391
ExtROM版本:

硬件

处理器:		Intel(R) PXA263
速率: 400 MHz
内存大小: 128 MB
Flash大小: 32 MB
Flash芯片类型: 28F128K3
数据总线: 32 bits
存储空间大小: 43.26 MB
液晶显示: 240 x 320 TFT
颜色: 65535

特性 

模块号:			PH20B1
平台: PocketPC
国际移动设备识别号: 353030003434230

Reference

 

Posted by Alex at 11:04 PM | Comments (0) | Edit | Taged: PDA (4)

2nd hdd with password lost after re-plugin

The 2nd hdd with hdd password set in BIOS will be not availible when you remove...

The 2nd hdd with hdd password set in BIOS will be not availible when you remove it and then re-plug it back in. Once get in this case, you must reboot your Thinkpad with this 2nd hdd pluged in. Then the driver letter in the 2nd hdd come back.

Searched web, didn't get any solution or discussion about it. 

Posted by Alex at 5:38 PM | Comments (0) | Edit | Taged: hdd (7), Thinkpad (21), Ultra Slim (4)

why does Wireless Lan Adapter driver come with Access Connection software

Usually, the wireless LAN adapter drivers is delivered with Access Connection software together. for example:Access Connection   ...

Usually, the wireless LAN adapter drivers is delivered with Access Connection software together. for example:

Access Connection    --    Wireless LAN Adapter Driver

3.71    --    4.0.100.140
3.81   --   4.1.102.133
 If you run Access Connection 3.81 with Wireless LAN Adapter Driver 4.0.100.140 together, it does Not work. I suppose it'll be the same if there's an overturn for above.

Posted by Alex at 10:30 AM | Comments (0) | Edit | Taged: wireless (2)

Update all ibm drivers and apps automatically by Software Installer

I ran the  Thinkpad Software Installer, but it seems only checks the local path for the...
I ran the  Thinkpad Software Installer, but it seems only checks the local path for the available updated softwares. the default local path are:

C:\DRIVERS
C:\IBMTOOLS

I made a check for my thinkpad. 

check result for my thinkpad

 

The current version is 2.52.0501 

I didn't run either IBM Update Connector nor Thinkpad Software Installer successfully before. I'm not sure what the difference is between these 2 applications. 

However, I found an article at ibm.com which describs a new version(3.21.0601) of Thinkpad Software Installer.

I downloaded it and installed. The new feature of checking update on Internet is available now.

new feature

I ran it and got following update list. the new version(1.40) of APS software is included.

get update info on Internet

I got in following state after an automatical update.

updated state
updated state

Posted by Alex at 10:24 AM | Comments (0) | Edit | Taged: driver (2), software (2), Thinkpad (21), update (2)

IBM Update Connector dosen't work

Since I found that there're some upgrade for Access IBM software, I begin to run Update...

Since I found that there're some upgrade for Access IBM software, I begin to run Update Connector to try to update mine.

but it report following error as I click "Check for Updates".

An error occurred connecting with the IBM HelpCenter. 

The current version is 6.10.

Posted by Alex at 4:57 PM | Comments (0) | Edit | Taged: software (2), Thinkpad (21), update (2)

does APS feature supports 2nd hdd on Ultra Slim

The answer is it's possible. the APS(Active Protection System) feature of 2nd hdd on Ultra Slim...

The answer is it's possible.

the APS(Active Protection System) feature of 2nd hdd on Ultra Slim is supported in the newer version of APS software. It requires version 1.30b or newer.

My Thinkpad uses version 1.30a now, I need an update.

Posted by Alex at 4:19 PM | Comments (0) | Edit | Taged: APS (1), hdd (7), Thinkpad (21), Ultra Slim (4)

the benchmark for UDMA5 and PIO

Test result while 1st hdd works on PIO mode.  1st time 2nd time Average Transfer Size(Kb) Time(second) Speed(Kbps)  Size(Kb) Time(second) Speed(Kbps) Speed(Kbps) 1st -> 2nd 105,888 48 107,187 45 2,206 2,382 2,294 2nd -> 1st 115,384 45 112,337 42 2,564 2,675 2,620 1st ->...

Test result while 1st hdd works on PIO mode.

  1st time
 2nd time

 Average

 Transfer
 Size(Kb) Time(second) Speed(Kbps)  Size(Kb) Time(second) Speed(Kbps) Speed(Kbps)
 1st -> 2nd 105,888

 48

 107,187
 45
 2,206
 2,382
 2,294
 2nd -> 1st 115,384
 45
 112,337
 42
 2,564
 2,675
 2,620
 1st -> usb 417,620 200 150,530 87 2,088 1,730 1,909
 usb -> 1st 105,888 41 234689 105 2,353 2,235 2,294
 2nd -> usb
 301,000 15 526,691 22 20,067 23,941 22,004
 usb -> 2nd
 661,312 25 259789 11 26,452 23,617 25,035
 1st -> 1st 28,313
 22
 23,042

 18

 1,287
 1,280
 1,284
 2nd -> 2nd 526,691
 53
 97,143 5 9,983
 19,428 14,705
 usb -> usb 38,449 5 219,961 32 7,690 6,874 7,282

Test result while 1st hdd works on UDMA 5 mode.

  1st time
 2nd time

 Average

 Transfer
 Size(Kb) Time(second) Speed(Kbps)  Size(Kb) Time(second) Speed(Kbps) Speed(Kbps)
 1st -> 2nd 375,720

 15

 156,176
 6
 25,048
 26,029
 25,539
 2nd -> 1st 113,080
 4
 232,976
 9
 28,270
 25,886
 27,078
 1st -> 1st 410,220
 29
 105,888

 7

 14,146
 15,127
 14,637

Posted by Alex at 2:44 AM | Comments (0) | Edit | Taged: hdd (7), PIO (2), UDMA5 (1)

running Linux on my thinkpad

I don't find following drivers for Linux version.Wireless LAN Adapter SoftwareFingerprint softwareClient Security SoftwareBluetooth deviceActive Protection...

I don't find following drivers for Linux version.

  • Wireless LAN Adapter Software
  • Fingerprint software
  • Client Security Software
  • Bluetooth device
  • Active Protection System software

There're also some important IBM applications I can't found a linux version.

  • Access Connection
  • Software Installer
  • Power Manager
Refference

Posted by Alex at 9:47 AM | Comments (0) | Edit | Taged: linux (38), Thinkpad (21)

install linux on 2nd hdd in my thinkpad

Install Red Hat Enterprise Linux 3 on 2nd hdd in my thinkpad with usb dvd-rom.Choose Grub...

Install Red Hat Enterprise Linux 3 on 2nd hdd in my thinkpad with usb dvd-rom.

Choose Grub as boot selector and install grub on the first sector of 2nd hdd without lba support. Reboot, hit F12, choose 2nd hdd to boot up, during booting, screen showed GRUB 4 characters, then stop there. Grub can't continue to load boot menu.

Boot using linux cd in rescue mode, reinstall grub with on the first sector of 2nd hdd:

$ grub-install /dev/hdc

Reboot, hit F12, choose 2nd hdd, during boot, can't see the boot menu, but grub continues to load and get following error message:

  • Cannot mount selected partition
  • This error is returned if the partition requested exists, but the filesystem type cannot be recognized by GRUB.
See current setting files.
$ cat /boot/grub/device.map
fd0  /dev/fda
hd0  /dev/hda
hd1  /dev/hdc
$ cat /boot/grub/grub.conf 
title Linux
root (hd1,0)
kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/
initrd /initrd-2.4.21-4.EL.img

title Windows
root (hd0,0)
chainload (+1)

Finally, I caught the point. When choosing 2nd hdd as first boot device by F12 during booting, BIOS will see it as hda, and the ist native hdd will change from hda to hdc.

During the grub installing, grub will guess the boot devices list, and generate a device.map file and grub.conf with the detected settings. that time, grub is right, but when booting from 2nd hdd, the thing changes.

I had it working with following settings.

$ cat /boot/grub/device.map
fd0  /dev/fda
hd0  /dev/hda
hd1  /dev/hdc
$ cat /boot/grub/grub.conf 
title Linux
root (hd0,0)
kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/
initrd /initrd-2.4.21-4.EL.img

title Windows
root (hd1,0)
chainload (+1)

But i am still wondering why linux could keep recognize /dev/hdc but grub not? needs answer.

refer to:

Posted by Alex at 2:10 AM | Comments (0) | Edit | Taged: hdd (7), linux (38), Thinkpad (21), Ultra Slim (4)

My native hdd is working on PIO mode

I check my System Events, there's following error continually detected. Event Type:    ErrorEvent Source:    atapiEvent Category:    NoneEvent...

I check my System Events, there's following error continually detected. 

Event Type:    Error
Event Source:    atapi
Event Category:    None
Event ID:    9
Date:        1/20/2006
Time:        11:05:39 AM
User:        N/A
Computer:    IBM-ALEX
Description:
The device, \Device\Ide\IdePort0, did not respond within the timeout period.

 

Accounding to the artical in refference, I found the related entry in my registry:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0004 

I deleted this dword value, then reboot.

MasterIdDataCheckSum

The tools Everest and Sandra Lite say the 1st hdd is working on UDMA 5, but the windows device manager still says PIO mode, I made a test of copying file, the speed is slow as before.

I checked the the dword value MasterDeviceTimingModeAllowed, it's less 0xFFFFFFFF, so I set it back to 0xFFFFFFFF, and deleted MasterIdDataCheckSum again, then reboot.

It works, this time the 3rd part tools and windows device manager both say it's on UDMA 5 mode.

I re-tested 1st hdd by copying files, it's as fast as 2nd hdd now. 

refer to: 

The dvd-rw comes with my thinkpad has the maximum UDMA 2, and it's using UDMA 2 mode now.

The native hdd still keeps reducing to PIO mode after a few days.

I found this topic which descibe why this mess happens again and again.

The hotfix has been included in winxp sp2 which I have patched.
The step in the MORE INFORMATION section seems will help me. I take this step.

Add a new DWORD value, use 1 as the Data.

ResetErrorCountersOnSuccess

at following each Registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0004
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0005

then reboot. 

The last solution seems worked, I don't meet the problem of reverting to PIO mode for a week. there're also a few atapi timeout errors, but the chksum should be reset on next success.

Posted by Alex at 10:02 PM | Comments (0) | Edit | Taged: dma (1), hdd (7), PIO (2)

install 2nd HDD for my thinkpad

I got a new 2.5" HDD and a HDD adapter for my thinkpad. Hitachi HTS541080G9AT00, 80G,...

I got a new 2.5" HDD and a HDD adapter for my thinkpad.

  • Hitachi HTS541080G9AT00, 80G, 8M cache, 5400 RPM, UDMA 5
  • Thinkpad 2nd HDD adapter for Ultrabay Slim 

the 2nd hdd on thinkpad needs the hdd adapter using Ultrabay Slim interface.

it's very easy to fix and plug in, but there's a little gappy between the hdd and adapter.

windows xp is able to install driver for the new hardware automatically, the 2nd hdd appears as a new ATA device on Secondary IDE Channel and works on UDMA 5(ATA-100) mode.

By copying files, the 2nd hdd is faster than the native one. I found my Primary IDE Channel is working on PIO mode, that's a problem.

I have fixed the problem above, now the native one works on UDMA 5. 

I query the warranty info at:

  • http://www.hitachigst.com/warranty/jsp/arma71.jsp

I don't find China in regions list, so choose Hong Kong instead, enter serial number: XBGDN7DE

Result: 

Quick warranty check results
Serial number Expiration date
(YYYY-MM-DD)
Sold to GEO
XBGDN7DE 2009-01-25 AP

While the warranty Quick Check may show this hard drive has a valid warranty, NOT ALL WARRANTIES ARE TRANSFERABLE, therefore this Quick Check is not a guarantee of warranty entitlement.

 

Posted by Alex at 7:54 PM | Comments (0) | Edit | Taged: hdd (7), Thinkpad (21), Ultra Slim (4)

smbusdh.sys causes windows Blue screen error

the file smbusdh.sys is provided by IBM CSS software.if you are using IBM CSS version 5.41...

the file smbusdh.sys is provided by IBM CSS software.

if you are using IBM CSS version 5.41 or less, the windows Blue screen error may be causing.

the solution is download the new version of smbusdh.sys and replace the old one, refer to

Updated SMB Device Hub controller driver to correct Windows blue screen error
http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-61451 

Posted by Alex at 2:47 PM | Comments (0) | Edit | Taged: blue screen (1), crash (1), css (3)

目前的主流笔记本硬盘

Toshiba 东芝 MK2016GAP    1M    20G    ATA-66    4200 RPMMK4026GAX    16M       699    40G     ATA-100   5400 RPMMK6026GAX    16M  ...

Toshiba 东芝 

  • MK2016GAP    1M    20G    ATA-66    4200 RPM
  • MK4026GAX    16M       699    40G     ATA-100   5400 RPM
  • MK6026GAX    16M       899    60G   ATA-100   5400 RPM
  • MK8032GAX    8M        999    80G   ATA-100   5400 RPM
  • MK8026GAX    16M        1299    80G   ATA-100   5400 RPM

My thinkpad is using MK8032GAX.

My Sony SR/9K is using Toshiba MK2016GAP.

Hitachi 日立

  • HTS424040M9AT00    2M    40G   ATA-100   5400 RPM
  • HTS541040G9AT00    8M    40G   ATA-100   5400 RPM
  • HTS541080G9AT00    8M    880    80G   ATA-100    5400 RPM
  • HTS541010G9AT00    8M    100G   ATA-100   5400 RPM

日立命名规则 

  • H - Hitachi
  • T - TravellStar, D - DeskStar
  • S - Standard
  • 54 - 5400 RPM
  • 10 - ?
  • 80 - 80G
  • G9 - ?
  • AT00 - ATA-100

the rule refer to:

http://www.dnys.cn/blogview.asp?logID=185

Posted by Alex at 5:51 PM | Comments (0) | Edit | Taged: hdd (7), 东芝 (1), 日立 (1)

Optimize winxp on my thankpad

Refer to the article at link: http://www.flyiky.com/viewthread.php?tid=11753&extra=page%3D1 The steps that have been taken: 1th: 1,...

Refer to the article at link:
http://www.flyiky.com/viewthread.php?tid=11753&extra=page%3D1

The steps that have been taken:

1th: 1, 2, 3, 4(d:, e:), 6, 7
2th: 2, 3, 5(lpt1, com1, modem, floppy controller)
3th: no taken

Below article talks about winxp system services: (I'd like to review this later)
http://www.flyiky.com/viewthread.php?tid=11755&extra=page%3D2

Created a visual disk by RAM as G: R:, size is 256M 128M, for creating it, download the tool RamDisk at:
http://www.greendown.cn/Software.asp?id=530

I attend that my hdd works on UDMA 0 mode, that makes much slow. it's a problem. I'm applying this document on my thinkpad.

http://www.flyiky.com/viewthread.php?tid=3526&fpage=1&highlight=udma  

Posted by Alex at 1:43 AM | Edit | Taged: optimize (1), Thinkpad (21), winxp (4)

在Windows XP 中使用Active Directory(活动目录)

Windows XP 默认安装不支持Active Directory(活动目录)管理,需要安装额外的管理工具包adminpak.msi ,有两个版本的可供选择: Windows .NET Server 版 Windows Server 2003 若安装Windows 2003 版本的adminpak.msi ,需要XP...

Windows XP 默认安装不支持Active Directory(活动目录)管理,需要安装额外的管理工具包adminpak.msi ,有两个版本的可供选择:

  • Windows .NET Server 版
  • Windows Server 2003

若安装Windows 2003 版本的adminpak.msi ,需要XP 具有sp1 ,原因在此,或者单独下载这个补丁解决问题。

adminpak.msi 可以在Windows .NET Server 或 Windows Server 2003 安装光盘的 /I386 目录找到,也可以在这里下载Window Server 2003 版本的adminpak.msi ,有关这个版本安装包的详细信息

安装请参考安装指南

注意:以上版本的adminpak.msi 并不适用于Windows 2000

Posted by Alex at 11:29 AM | Comments (0) | Edit | Taged: Active Directory (1), winxp (4), 活动目录 (1)

Windows XP 上USB 2.0 不工作故障解决

故障描述电脑为IBM R51 笔记本,安装Windows XP Professional 操作系统,Windows Updates 到SP1 。笔记本电脑本身支持USB 2.0 (High-Speed) 接口,不过插入USB 2.0 (High-Speed) 的移动硬盘,屏幕右下角提示:a high...

故障描述

电脑为IBM R51 笔记本,安装Windows XP Professional 操作系统,Windows Updates 到SP1 。

笔记本电脑本身支持USB 2.0 (High-Speed) 接口,不过插入USB 2.0 (High-Speed) 的移动硬盘,屏幕右下角提示:

a high speed device plugged into a non-high speed Usb hub

故障原因

USB 2.0 (High-Speed) 驱动程序仅包含在XP SP1 更新中,在安装操作系统时并未安装,Windows Updates 虽然升级到了SP1 ,但没有自动更新USB 控制器的驱动程序,因此这个硬件没有得到真正利用。

解决方案

手动更新USB 控制器的驱动程序。进入控制面板,打开设备管理器,选择Universal Serial Bus Controllers 分支,找到如下设备:

Intel(r) 82801DB/DBM USB2 Enhanced Host Controller - 24CD

显示其属性,发现这个设备没有安装任何驱动程序,但没有标记黄色警告,手动为其安装驱动程序,通过如下路径(英文系统):

Driver tab -> Update Driver -> next

Windows 自己会找到驱动程序,并自动安装,安装后设备名称变为:

Intel(r) 82801DB/DBM USB 2.0 Enhanced Host Controller - 24CD

再次插入移动硬盘,一切正常,实测了一下速率,从移动硬盘向笔记本硬盘copy 一个697Mb 的文件,用时35秒,19Mbps,虽然与USB 2.0 的最高速率480Mbps 差得很远,但以前USB 1.1 的实测速率也远远达不到标称的12Mbps,只有2Mbps 左右。相对以前快了近10倍。

参考信息

一些解决问题过程中找到的资源,对于解决由其它原因导致的此类问题会有帮助。

一个同类问题的讨论:Windows USB 2.0 drivers w/out SP2,讨论中有些观点是错误的,不过包含了一些有益链接。

一篇非常有用的文章:How to check USB version

Comment from StealthMullet 
Date: 03/08/2004 09:46AM PST
Comment

Access Device Manager, click the + next to Uinversal Serial Bus 
controllers, if there is USB 2.0 Enhanced Open Host Controller
there then you have USB 2.0.

一条来自微软的支持信息:Universal Serial Bus 2.0 Support in Windows XP,由此可以确认:在XP 中,USB 2.0 (High-Speed) 驱动程序被包含在SP1 更新中,不需要安装SP2 。

一个第三方的USB 2.0 驱动程序,可以用于Win 98 系统和Win 2000 系统:http://www.perfectdrivers.com/howto/usb20drivers.html

这个驱动程序也提供了针对VIA 芯片的XP 版本,不过作者说明,对于XP 用户最好的方法是升级到SP1 ,那里包含了USB 2.0 驱动程序。

The third folder is the USB 2.0 drivers for Windows XP. A better way
to get these drivers for XP is to do the Windows updates. Service Pack
1 (sp1) contains the USB 2.0 drivers for XP.

一则有关USB 2.0 的详细介绍(来自微软):

USB 2.0 Support in Windows XP: High Speed at Last

Posted by Alex at 2:09 AM | Comments (0) | Edit | Taged: usb2.0 (1), winxp (4)

Alex's picture

my email address in picture

搜索|Search

订阅更新|Subscribe to Feed

按月归档|By Month

2009
07
2008
11
10
07
05
04
03
02
01
2007
12
10
07
06
05
04
03
02
01
2006
12
11
10
09
08
07
06
05
04
03
02
01
2005
11
10
09
08
07
04
03
2004
12
11
10
09
08
07
06
05
04
03
02
01
2003
12
10
09
08
06
2002
09
08
04
03
02
2001
12
09
07
06
05

我读|My Books

db2

我的链接|My Links

我的朋友|My Friends

Movable Type 4 Logo
Creative Commons License
This blog is licensed under a Creative Commons License.