笔记本电脑上常用的几个内核模块

May 22nd, 2007

标题:笔记本电脑上常用的几个内核模块
作者:windrose
来源:http://www.linuxsir.org/bbs/showthread.php?t=194374

笔记本电脑由于节省电力的需要,在设计上对于电源管理非常重视。以前常用的apm是通过bios进行电源管理,而新式的acpi作为apm的后继者,把电源管理的任务交给了操作系统。

以往大家常常会认为笔记本电脑的节能功能在linux中不如在windows中的,但我最近在dell inspiron 700m上安装linux之后,发现其实linux对于acpi的支持已经非常完善了,对于intel处理器的speedstep模式的支持也很好,能做到动态调整cpu的频率。这里介绍一下在2.6.10内核中,我用到的与电源管理和显示系统状态有关的几个内核模块:

  1. AC
    用法: /sbin/modprobe ac
    用途:这个模块很简单,就是显示外接交流电源连接的状态。加载这个模块后,在 /proc/acpi/中会新建 ac_adapter/ADPx/目录,其中的state文件内容即是电源连接状态。
  2. BATTERY
    用法: /sbin/modprobe battery
    用途:监视电池充放电状态、当前容量等。加载模块后,在/proc/acpi/中建立 battery/BATx/目录,其中的文件内容记录了电池的信息(info文件)、状态(state文件)等。
  3. THERMAL
    用法: /sbin/modprobe thermal
    用途: 监视CPU和主板等的温度。加载后,/proc/acpi/目录中建立thermal_zone/THRx/目录,其中的temperature文件中记录了温度值,还有其他的文件定义了在某个温度值系统应该采取的行动等信息。
  4. BUTTON
    用法: /sbin/modprobe button
    用途:定义不同按钮对应的系统行为,例如,可以设置按电源键系统关机、合上屏幕系统休眠等。可以指定在这些键的状态发生变化时执行相应的系统命令,具体内容可以参照 /etc/acpi/目录中的脚本,这里就不展开讲了。
  5. PROCESSOR
    用法: /sbin/modprobe processor
    用途:显示CPU的信息、状态,并能设置对CPU限速(throttling)。在/proc/acpi/processor/CPUx/目录中的文件有cpu 的信息,也定义了在不同电源供应情况下对应的cpu状态以及对cpu限速的规则。假如cpu支持频率调节,则可以通过一些软件利用有关文件实现这一功能。
  6. cpufreq
    用法: 在 /lib/modules/`uname -r`/kernel/arch/i386/kernel/cpu/cpufreq/目录中有许多针对不同移动CPU进行频率调节的模块,需要根据你的 CPU进行选择,有针对intel的speedstep的,也有针对amd的powernow的,还有针对transmeta的longrun的。我的是迅驰dothan 1.6G,所以我加载 speedstep-centrino 模块: /sbin/modprobe speedstep-centrino,加载之后 /sys/devices/system/cpu/cpu0/cpufreq/里面的文件就是与频率调节有关的。

加载了上述模块之后要通过一些软件才能更方便地监视系统状态和使用模块提供的功能,gkrellm有很多有关的插件,windowmaker也有很多dockapps实现同样的功能。我就是用的dockapps。

.bash_profile及.bashrc

November 19th, 2006

不像其他发行版本,本来slackware下面的bash配置文件很简单:shell启动时只认.bash_profile文件。可是我的slackware,不管是.bash_profile还是.bashrc都不生效。

怀疑是此前修改~/权限时的后遗症,ls -l ~/\.bash*查看没有x权限,于是chmod u+x ~/\.bash*、退出后满怀欣喜地查看,依然不奏效。

无奈,只好霸王硬上弓,在/etc/profile里source了一遍:

#Get the aliases and function
   if [ -f ~/.bash_profile ];then
    . ~/.bash_profile
  fi
#User specific environment and startup programs

以防万一,把.bashrc的也加上去了。btw, 感觉linux实在是个好东东,特意添加了黄嘴企鹅分类。

备忘:mount windows分区

November 12th, 2006

换了台电脑,换了个操作系统,连fstab文件都得重新写一遍。

sudo cp /etc/fstab /etc/fstab.bak
sudo vim /etc/fstab

# /etc/fstab: static file system information.
#
#

proc /proc proc defaults 0 0
/dev/sda9 / ext3 defaults,errors=remount-ro 0 1
/dev/sda12 /home ext3 defaults 0 2
/dev/sda10 /usr ext3 defaults 0 2
/dev/sda11 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sda1 /mnt/win_c ntfs ro,uid=1000,iocharset=utf8 0 0
/dev/sda5 /mnt/win_d ntfs ro,uid=1000,iocharset=utf8 0 0
/dev/sda6 /mnt/win_e ntfs ro,uid=1000,iocharset=utf8 0 0
/dev/sda7 /mnt/win_f ntfs ro,uid=1000,iocharset=utf8 0 0
/dev/sda8 /mnt/win_g vfat ro,uid=1000,iocharset=utf8 0 0保存,退出。

sudo mount -a

删除\tcolor开头的行

September 8th, 2006

color.css文件如下:

\tcolor: #ccc;
\tcolor: #ffffff;
\tcolor: red;
\tbackground-color: #000;
\tborder-color: #fff;

为了集中管理颜色,欲将所有color开头的行删除。这似乎不是awk/sed的特长,于是在vim里使用正则匹配替换:
%s/\scolor.*$//g

但是留下空白的行,很不是完美。

干脆使用grep:
grep -v '\tcolor:.*$' color_background.css > color.new.css
不知为何,没有任何匹配。

最后,还是输入tab的控制符解决的问题
grep -v ' color:.*$’ color_background.css > color.new.css

注意:终端下按Ctrl V后,方可输入相应的控制符。

update:
vim中%g/\tcolor.*$/d也可以解决。

mplayer playlist

September 3rd, 2006

拜读了一个老外的文章,我才恍然大悟,原来困扰依旧的linux下的听歌问题可以解决了:

目录下的所有mp3文件:
find /mnt/win_h/Music/ -type f|grep mp3 > ~/music/all.txt

使用mplayer播放:
mplayer -playlist ~/music/all.txt

当然,如果想随机播放的话只需要再添加一个参数-shuffle。

到底谁更懂中文?

August 18th, 2006
Google的搜索结果:
google'
Baidu的搜索结果:
baidu'
对比之后,chenxa同学的总结:
骂了隔壁的? :)

linux命令行中横线(-)前缀的特殊文件

August 3rd, 2006

今天才发现linux中有些命令的参数带横线(-),而有的就没有,比如ps aux,而且还不能通过rm 直接删除-name文件。请教阿官并man rm方得知,可以这样删除:

rm — -name
rm ./-name

而文件无关的命令得参数则可以省略横线,手册上讲,ps aps -a是一样的。

一整天碰到的一些问题

August 3rd, 2006
ol里的li列表元素怎么也显示不出来默认的123效果
原因:li元素被设置成了display: block,应该是display:list-item
发生严重的系统错误,请联系管理员
作为和用户交互的一部分,良好的信息提示应该具备一下特点:1.指明详细信息 2.告诉用户发生错误后能做什么,必要时可以给用户代劳,刷新一下页面 3.语言得体,尽量避免使用“严重”、“系统错误”等字眼,这样会打击用户的积极性
棘手的IE/QQ 页面里rutime错误竟然和css里一个class的名称有关?!
先是怀疑页面中的Flash和qq冲突,进而怀疑javascript,就是没有想到会是css中某个特定class名称的缘故。看来,使用二分法从头到尾排查错误,有时候真的会事半功倍。
一个几条记录的表数据被无意清空后,折腾了半天
总结:1.避免使用小表,杀鸡焉用宰牛刀 2.备份,备份,再备份
经验是最好的老师,google也是最好的老师

大望路 - 京通快速沿线租房小结

July 29th, 2006

得知老韩最近打算租房,我决定把这次和上次租房的经验总结一下。

由于工作地点在大望路(八王坟)附近,打算在京通沿线寻找安身之地,所以可选择的地方并不是很多。以下主要从租金和交通状况方面考虑。

名称 方位 交通 车程 租金 备注
四惠东 东四环外 公交/地铁 20-30′ / < 10 ' 一号线与八通线的交汇处,临界点 多辆公交,一般走京通辅道,朝阳路上只有一条公交
双桥/管庄 东五环外 公交/八通线 30分钟左右/20分钟左右 比较便宜 1.没有在这里住过,仅仅是道听途说/看 2.公交车不上高速 3.管庄地区是朝阳和通州的临界点
通州北苑 通州区 多条公交/城铁八通线 15′(快速) / >40′(辅路) / 30′ 一般 交通枢纽,去通州的公交车90%经过此处
通州八里桥市场/263医院 通州区通惠北路 一条930及2/3条小公交 20′ - 30′ 比较便宜 1.大部分时候有座儿 2.购物十分方便 3.环境不是很好(KTV 一条街 + 最近在修路)
通州梨园 通州区梨园镇 多条公交/城铁八通线 50′(938) / 60′(647) / 40′(bt) 相当便宜 1.在车上花费的时间太长(以上还没考虑步行及等车时间呢) 2.购物不方便 3.公交/城铁经常没座儿(938除外)

总体而言,距离越远交通越不方便租金越便宜,每天花费三个小时在交通上,感觉真的是在拿时间换金钱,实际上这样很不划算呢。最后,声明一下俺的看法:不推荐双桥/管庄梨园,推荐四惠东、北苑及西门附近的八里桥市场/263医院。

Windows XP Professional的默认环境变量

July 11th, 2006

昨天费了半天口舌才表达清楚C:\Documents and Settings\沙漠之周\Application Data这个路径,后来才发现一个%appdata%就可以搞定。

以下是Windows XP Professional的默认环境变量:

变量名 说明
ALLUSERSPROFILE 返回所有用户配置文件位置的本地变量。
APPDATA 返回应用程序在默认情况下存储数据的位置的本地变量。
CD 返回当前目录字符串的本地变量。
CMDCMDLINE 返回用于启动当前 Cmd.exe 程序的确切命令行的本地变量。
CMDEXTVERSION 返回当前命令处理器扩展的版本号的系统变量。
COMPUTERNAME 返回计算机名称的系统变量。
COMSPEC 将精确路径返回给命令外壳可执行文件的系统变量。
DATE 返回当前日期的系统变量。该变量与 date /t 命令使用相同的格式。Cmd.exe 程序生成此变量。有关详细信息,请参阅 Date 命令。
ERRORLEVEL 返回最近使用命令的错误代码的系统变量。非零值通常表示错误。
HOMEDRIVE 返回用户主目录的本地工作站驱动器号的系统变量。此变量是基于在组中为“本地用户”和“组”指定的主目录值设置的。
HOMEPATH 返回用户主目录的完整路径的系统变量。此变量是基于在组中为“本地用户”和“组”指定的主目录值设置的。
HOMESHARE 返回用户共享主目录的网络路径的系统变量。此变量是基于在组中为“本地用户”和“组”指定的主目录值设置的。
LOGONSEVER 本地变量,返回验证当前登录会话的域控制器的名称。
NUMBER_OF_PROCESSORS 指定计算机上安装的处理器数目的系统变量。
OS 返回操作系统名称的系统变量。Windows XP Professional 将操作系统显示为 Microsoft Windows NT。
PATH 指定可执行文件的搜索路径的系统变量。
PATHEXT 系统变量,返回操作系统将其视为可执行文件的文件扩展名的列表。
PROCESSOR_ARCHITECTURE 返回处理器芯片结构的系统变量。值:x86、IA64。
PROCESSOR_IDENTFIER 返回处理器描述的系统变量。
PROCESSOR_LEVEL 返回计算机处理器型号的系统变量。
ROCESSOR_REVISION 返回处理器修订号的系统变量。
PROMPT 返回当前解释程序的命令提示设置的本地变量。由 Cmd.exe 生成。
RANDOM 返回 0 到 32767 之间的随机十进制数的系统变量,由 Cmd.exe 程序生成。
SYSTEMDRIVE 返回包含 Windows 根目录(例如,系统根目录)的驱动器的系统变量。
SYSTEMROOT 返回 Windows 根目录位置的系统变量。
TEMP 或 TMP 系统和用户变量,返回当前登录的用户可以使用的应用程序的默认临时目录。某些应用程序需要使用 TEMP,而其他应用程序需要使用 TMP。
TIME 返回当前时间的系统变量。该变量与 time /t 命令使用相同的格式,并由 Cmd.exe 生成。有关详细信息,请参阅 Time 命令。
USERDOMAIN 返回包含用户帐户的域的名称的本地变量。
USERNAME 返回当前登录用户名的本地变量。
USERPROFILE 返回当前用户配置文件位置的本地变量。
WINDIR 返回操作系统目录位置的系统变量。

See: