LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1953|回复: 6

Debian + IBM-R40(迅驰)

[复制链接]
发表于 2006-1-6 11:04:02 | 显示全部楼层 |阅读模式
本文打造(一个滥俗的词,哈哈)笔记本下的完美Linux。
很简单,抄袭的。
1.内核,建议自己弄一下。因为象IBM/ACER等牌子的本本有很多特殊的按钮或者组合键,内核里有他们的驱动,也许其它笔记本的驱动可以单独下载吧,谁知道。
ACPI,CPUFreq(如果支持)等模块必选啊!

2.acpid
这个守护进程专门从事监听ACPI事件,并根据配置执行相应的操作。
在我的IBM笔记本上,如果没有弄ibm_acpi的曾强内核补丁则只有几个组合能产生acpi事件。如果加上的话,就基本全了(而且还多了两个!!哈哈)。所以内核一定要自己弄。

用“acpi_listen”这个小程序可以先看一下,本本键盘上的特殊按钮是否能够产生acpi事件,以确定驱动安装成功。
然后就可以配置acpid啦!
我的配置是:
Fn+F3 --->未定义事件(本来应该是关闭屏幕,认为无用,就让它响一声)
Fn+F4 --->立刻进入休眠状态
Fn+F5 --->打开/关闭 无线网卡的切换
Fn+F7 --->未定义事件 (本应是在CRT/DVI/LCD之间的转换,认为无用,就让它响一声)
Fn+F9/F8/F12 --->为定义事件 (F12本应该是挂起到硬盘,因为我的内核没有实现,所以就让它响一声;F8/F9键盘上没有标注什么,但是也能产生acpi信号,暂时也让它响一下吧,以后用)
具体配置文件如下:
root@loveIBM:/etc/acpi# ls
events  instWiFi.sh  powerbtn.sh  tosleep.sh  
root@loveIBM:/etc/acpi# cat undefine.sh
#!/bin/sh
echo 12 > /proc/acpi/ibm/beepundefine.sh

root@loveIBM:/etc/acpi# cat powerbtn.sh
#!/bin/sh
if ps -Af | grep -q '[k]desktop' && test -f /usr/bin/dcop
then
    dcop --all-sessions --all-users ksmserver ksmserver logout 0 2 0 && exit 0
else
    /sbin/shutdown -h now "ower button pressed"
fi

root@loveIBM:/etc/acpi# cat tosleep.sh
#!/bin/sh
#echo "See you later..."

echo eject > /proc/acpi/ibm/bay
echo mem > /sys/power/state

root@loveIBM:/etc/acpi# cat instWiFi.sh
#!/bin/sh
#echo Feel Freedom,using WiFi!
if lsmod |grep -q 'ipw2100'
   then rmmod ipw2100 ieee80211 ieee80211_crypt
else modprobe ipw2100
fi

/etc/acpi/下有几个脚本,这些脚本是对与事件的,事件的定义在/etc/acpi/event下,看看我的:
root@loveIBM:/etc/acpi/events# ls
fn3  fn7  fn8  fn9  fnstoragetodisk  powerbtn  softsleepbtn  turnoffbtn  wifikey

比如wifikey这个文件
root@loveIBM:/etc/acpi/events# cat wifikey
event=ibm/hotkey.HKEY.00000080.00001005
action=/etc/acpi/instWiFi.sh
里面的第一行,写的是对应的事件名称(用acpi_listen可以看见)
第二行就是当发现这个脚本时,应该执行的脚本。


3.cpufreqd
笔记本最强的是什么?省电!
怎么省?!
守护京城cpufreqd,根据内核里的cpufreq驱动,调整CPU的工作频率。我的机器可以在600MHz到1300MHz之间改变。
LOOK!
/etc/cpufreqd.conf
这个配置文件分3个部分
[General]和[Profile]和[Rule]
通用配置只能有一个,策略和规则可以有多个。
×通用配置用来配置cpufreqd本身。
×策略规定CPU的工作频率范围和监听方法
×规则确定在什么时候调用什么策略
这个配置好了,绝对比windows下的能源管理程序好100倍!
我给出我的。
[General]
poll_interval=5
pm_type=acpi
verbosity=3


[Profile]
name=fullFreq
minfreq=600000
maxfreq=1300000
policy=ondemand

[Profile]
name=highUP
minfreq=800000
maxfreq=1300000
policy=ondemand

[Profile]
name=lowDOWN
minfreq=600000
maxfreq=1000000
policy=conservative


[Rule]
name=normal-ac
ac=on
cpu_interval=1-100
profile=fullFreq

[Rule]
name=normal-bat
ac=off
battery_interval=10-100
profile=lowDOWN

[Rule]
name=when-compiling-ac
ac=on
programs=gcc,g++,make
cpu_interval=20-100
profile=highUP

[Rule]
name=when-compileing-bat
ac=off
programs=gcc,g++,make
cpu_interval=30-100
battery_interval=30-100
profile=highUP

完啦!完美笔记本出来啦!
发表于 2006-1-6 11:25:39 | 显示全部楼层
这也能叫完美?看你STR的脚本就知道有多粗糙
回复 支持 反对

使用道具 举报

发表于 2006-1-6 11:39:51 | 显示全部楼层
root@loveIBM:/etc/acpi# cat tosleep.sh
#!/bin/sh
#echo "See you later..."

echo eject > /proc/acpi/ibm/bay
echo mem > /sys/power/state

我不相信你这个能用
不是 scsi 设备,你直接 eject, kernel 会发疯一样寻找你的 hdc 的。
应该用 hotswap 来 unregister hdc 这个设备。然后在 eject
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-6 12:46:23 | 显示全部楼层
哈哈,见笑啦!
二楼的朋友,STR是什么意思啊?
糙是糙了点儿,但是所有西西工作正常啊!  ^_^

三楼的朋友:
echo eject > /proc/acpi/ibm/bay
echo mem > /sys/power/state
我每次合上笔记本屏幕,计算机就自动执行啊。
这个是ibm-acpi的接口文件,没有问题的。
这个笔记本的光驱是可以“温拔插”的。
回复 支持 反对

使用道具 举报

发表于 2006-1-6 14:32:31 | 显示全部楼层
上 thinkwiki 查了一下,原来 R40 的是 ultrabay plus。
和我的 ultrabay slim 还不一样。
  1. UltraBay Plus devices should be handled by the USB subsystem, but if the devices are not known.
复制代码
怪不得直接 eject 没有问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-6 17:13:05 | 显示全部楼层
so much kind of 'bay' !!!
^_^
回复 支持 反对

使用道具 举报

发表于 2008-1-15 02:15:23 | 显示全部楼层
内核那块要怎么整啊?新手,麻烦楼主写下详细步骤啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表