让ThinkPad X200在opensuse下更完美!
发布时间:2009-11-04 14:15:49来源:红联作者:lic
这里发帖真有点麻烦,拷贝有几个连接掉了,大家先看文字,连接可以从原文找!
原文:http://pcdigger.cn/blog/?p=2586
看了这个帖子: 让你的Thinkpad在suse下工作得更好更完美,心又痒痒了。其中有些尝试是冒险的,所以只添加了启动 win键、电池保护和重力感应几个功能,这些很保险。方法如下(有些我作了修改!):
1. 启用win key!
win key在windows下可以唤出开始菜单, 在linux很多发行版上一般也可以唤出gnome/kde panel menu,但为什么opensuse上不行呢,gnome keyboard shortcut里面也设置不了. 先google一下,很快找到提示,原来win key默认已经被映射成叫作Super_L的键,在gconf-editor(我是直接从命令行输入该命令)里面可以设置metacity的 keybinding,所以我打开 gconf-editor -> app -> metacity -> global_keybindings -> panel_main_menu,直接输入Super_L.退出,试一下,成功了~~
2. 电池保护(害怕电池充放电太多)
thinkpad在windows下支持的电池充放电上下限管理是一大特色, 据说有效地保护电池延长寿命呢…
根据thinkwiki的介绍
http://www.thinkwiki.org/wiki/Tp_smapi
我需要的是tp_smapi,去下载tp_smapi的源代码包.有很多版本,我在2.6.16版本内核上最高只可以使用0.31把本, 在 2.6.27版本上可以用0.40版本,我的2.6.27-29用0.40编译不过,不过0.39版本可以 . 大家可以根据自己的内核版本多试试不同的版本,在解压后的目录下运行(root):
make load HDAPS=1
一切和顺利,接着
make install HDAPS=1
好了,已经安装好,但系统不会自动加载,要做到这点,在yast2 -> /etc/sysconfig editor -> system -> kernel -> modules_loaded_on_boot中加入hdaps tp_smapi.
保存,重启电脑后, 运行 dmesg > a, 打开a文件,搜索hdaps, tp_smapi,看到没有报错信息就ok了.
更简单的方法是直接从opensuse软件搜索下载0.40版本的rpm包(从pcdigger下载)。
~~现在执行
echo 15 > /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes
echo 20 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 100 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
好了,电池设置好了, start_charge_thresh是开始充电的阈值, stop_charge_thresh是停止充电的阈值,运行一次后设置就保存了,只要不拆下电池设置就不会丢失.
3. 重力感应(监视电脑震动)
thinkpad X/T系列都带有3D硬盘保护功能, 就是检测电脑的移动保护硬盘. linux kernel已经把监视移动的功能集成进去了,就是前面提到的hdaps模块.在前面已经可以成功加载hdaps后,就可以用程序实时监视了.
首先根据thinkwiki上的连接下载到hdaps-gl-0.0.5(从pcdigger下载),编译,中途报错缺少GL/glut.h,google一下原来是opengl相 干的东西, 就去安装opengl相关的devel包,yast中搜索opengl, 把freeglut的devel包装好(很讨厌,会依赖一大堆devel的包), 搞掂。我这里有已经编译好的,从pcdigger下 载!
编译成功后,cp hdaps-gl /usr/bin, 运行hdaps-gl, 移动电脑,成功了~~
不过我发现,这样直接编译的hdaps-gl在显示中把x-y方向弄反了,在我的编译版本中对此作了修正。
后来发现把x-y方向弄反是hdaps设置的问题,需要设置invert的值,x200的应该是7。在/etc/modprobe.conf中添加:
#Hdaps Orientation
options hdaps invert=7
options hdaps_ec invert=7
重启电脑就OK了!
最近发现照片管理器F-Spot是支持方向感应的,挺好玩的!!
还可以把监视集成在gnome/kde panel里面,分别是tilt-0.0.2(从pcdigger下载)和plasmoid-hdaps-monitor-0.3-1.22(opensuse官网上有),其中 tilt不能自动添加到gnome panel里面,所以把它在session里做成一个autostartup,运行后会出现一个坐标值,参照附件图片. 不过tilt的编译我没有成功,有上面的hdaps-gl已经满足了。
4. 屏幕自动旋转
这个比较好玩,根据方位感应对显示作相应调整以适应方位。具体步骤如下:
下载perl-Proc-ProcessTable-0.45-1.1.x86_64.rpm (To install Perl module Proc::Process Table)
Download…
orientation tool: orient
orientation daemon: orientd
rotatetablet script: rotatetablet
The instructions to do this are as such:
1. Place the attached scripts (’orient’ and ‘orientd’) in /usr/local/bin and make them executable
2. Substitute /etc/acpi/x41tsup.sh and /etc/acpi/x41sdown.sh with these new versions and make sure that they’re executable.
/etc/acpi/x41tsdown.sh (with chmod +x)
#!/bin/sh
#/etc/acpi/x41tsdown.sh
#echo 'Rotating Tablet...'
#/usr/local/bin/rotatetablet right
echo 'Starting orientd...'
/usr/local/bin/orientd start
/etc/acpi/x41tsup.sh (with chmod +x)
#!/bin/sh
#/etc/acpi/x41tsup.sh
echo 'Stopping orientd...'
/usr/local/bin/orientd stop
echo 'Unrotating Tablet...'
/usr/local/bin/rotatetablet normal
3. Put the following line in /etc/rc.d/boot.local:
/usr/local/bin/orient reorient
…and that should do it.
不过上述下载文件中的orient需要作简单修改,否则屏幕调整是反的。
找到sub get_appropriate_rotate_mode {
将其中return的值作如下切换:
0 -> 2
2 -> 0
1 -> 3
3 -> 1
5. 添加屏幕键盘输入
在GDM登录和屏保输入密码时显示屏幕键盘,通过鼠标点击输入密码。效果图如下:
x41keyb_t.jpg
安装l cellwriter
对于GDM:
In /etc/gdm/Init/Default, before exit 0, add:
/usr/bin/cellwriter --keyboard-only --read-only --window-y=600 --window-x=200 &
In /etc/gdm/PostLogin/Default, add:
killall -u root cellwriter &
In /etc/gdm/PostSession/Default, before exit 0, add:
sudo killall -u $USER cellwriter
对于SCREEN LOCK:
Edit Gnome Registry with gconf-editor. In apps/gnome-screensaver
embedded_keyboard_command cellwriter --keyboard-only --xid
embedded_keyboard_enabled [TRUE]
注:本文中的软件均可从http://soft.pcdigger.cn网 站下载!!