LinuxSir.cn,穿越时空的Linuxsir!

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

笔记本上使用Archlinux

[复制链接]
发表于 2006-8-2 17:27:03 | 显示全部楼层 |阅读模式
转自http://arithboy.org/wiki/Laptop.html那里的排版可能会好些~



近日购得二手笔记本一台,在其上运行linux的一些设置记录如下:
型号为 ThinkPad T30

网络环境的配置
近日购得二手笔记本一台,在其上运行linux的一些设置记录如下:
型号为 ThinkPad T30

laptop-mode的配置
设置笔记本的待机
cpu自动降频
监测硬盘,cpu,电池等
thinkpad笔记本的热键设置
DPMS的使用

[size=+2] 网络环境的配置
首先添加udev规则,解决两个网卡的顺序问题.
编辑/etc/udev/rules.d/10-network.rules

  1. SUBSYSTEM=="net", SYSFS{address}=="00:02:8a:47:f4:a5", NAME="wlan0"
  2. SUBSYSTEM=="net", SYSFS{address}=="00:09:6b:06:a5:b4", NAME="lan0"
复制代码


笔记本上经常移动,需要多套网络的配置.
编辑rc.conf

  1. ...
  2. HOSTNAME="localhost"
  3. lo="lo 127.0.0.1"
  4. INTERFACES=(lo)
  5. NET_PROFILES=(menu)
  6. ...      
复制代码

将NET_PROFILES=(menu)打开,在/etc/network-profiles/中添加配置文件.


例如文件/etc/network-profiles/20-home

  1. DESCRIPTION="home"
  2. INTERFACE=lan0
  3. HOSTNAME=localhost
  4. IFOPTS="219.242.113.92 netmask 255.255.255.0 broadcast 219.242.113.255 hw ether 00132051A785"
  5. GATEWAY=219.242.113.1
  6. DNS1=202.112.144.30         
复制代码

使用sudo /etc/rc.d/network restart则可更改网络设置,/etc/resolv.conf的值会被更新.
当有多个配置时,文件名以字典序排列,数字开头则比较方便,数字最小的为默认网络配置.

[size=+2] laptop-mode的配置

安装 laptop-mode-tools 软件包.


编辑文件/etc/laptop-mode/laptop-mode.conf
默认设置已经能够满足需要了,只要把CONTROL_开头的打开即可,
里面包含了硬盘,cpu等多方面的设置,能极大延长电池的使用时间, 推荐使用.


[size=+2]  设置笔记本的待机

安装acpid,机器待机时,背光仍然打开,主要是使用radeon的显卡可能会有这个问题.
详细的描述见[1],使用radeontool(PKGBUILD附后)解决该问题,脚本[2]如下:


  1. #!/bin/sh

  2. # if launched through a lid event and lid is open, do nothing
  3. echo "$1" | grep "button/lid" && grep -q open /proc/acpi/button/lid/LID/state && exit 0

  4. # remove USB 1.1 driver
  5. rmmod uhci_hcd

  6. # sync filesystem and clock
  7. sync
  8. /sbin/hwclock --systohc

  9. # switch to console
  10. FGCONSOLE=`fgconsole`
  11. chvt 6
  12. /usr/sbin/radeontool light off

  13. # go to sleep
  14. sleep 5 && echo -n "mem" > /sys/power/state

  15. # readjust the clock (it might be off a bit after suspend)
  16. /sbin/hwclock --adjust
  17. /sbin/hwclock --hctosys

  18. # reload USB 1.1 driver
  19. modprobe uhci_hcd

  20. # turn on the backlight and switch back to X
  21. radeontool light on
  22. chvt $FGCONSOLE
复制代码

将脚本保存在/etc/acpi/actions/sleep.sh,并chmod +x sleep.sh

修改/etc/acpi/handler.sh
按下sleep按键时(我这里是Fn+F4)执行sleep.sh,进入待机

  1. ...
  2.         button/sleep)
  3.                 case "$2" in
  4.                         SLPB) #echo -n mem >/sys/power/state ;;
  5.                                 /etc/acpi/actions/sleep.sh;;#注释掉上句,添加这句
  6. ...
复制代码

合上屏幕时,待机

  1. ...
  2.         button/lid)
  3.                 #echo "LID switched!">/dev/tty5
  4.                 /etc/acpi/actions/sleep.sh #添加这句
  5.                 ;;
  6. ...
复制代码

修改脚本以后,重起服务即可生效.

  1. /etc/rc.d/acpid restart
复制代码


有个问题就是待机时usb口仍然供电,在windows下则无此现象.

[size=+2] cpu自动降频
查找所需要的模块

  1. modprobe -l |grep cpufreq
  2. /lib/modules/2.6.17-ARCH/kernel/drivers/cpufreq/cpufreq_powersave.ko
  3. /lib/modules/2.6.17-ARCH/kernel/drivers/cpufreq/cpufreq_stats.ko
  4. /lib/modules/2.6.17-ARCH/kernel/drivers/cpufreq/cpufreq_userspace.ko
  5. /lib/modules/2.6.17-ARCH/kernel/drivers/cpufreq/cpufreq_ondemand.ko
  6. /lib/modules/2.6.17-ARCH/kernel/drivers/cpufreq/cpufreq_conservative.ko
  7. /lib/modules/2.6.17-ARCH/kernel/drivers/cpufreq/freq_table.ko
  8. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/longrun.ko
  9. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/powernow-k8.ko
  10. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/powernow-k7.ko
  11. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/powernow-k6.ko
  12. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-smi.ko
  13. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-lib.ko
  14. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-ich.ko
  15. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.ko
  16. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/p4-clockmod.ko
  17. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/cpufreq-nforce2.ko
  18. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/gx-suspmod.ko
  19. /lib/modules/2.6.17-ARCH/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.ko
复制代码

我的cpu是P4M1.6GHZ,选择speedstep-ich.ko,同时需要cpufreq governors:
我这里显示有5个可以选择 userspace, powersave, ondemand, conservative, perform
ance.

cpu降频的软件包有cpufreqd和cpufrequtils,后来发现laptop-mode-tools里面直接可以控制cpu频率和throttling.推荐使用这个.

需要在rc.conf中添加speedstep-ich和ondemand


[size=+2] 监测硬盘,cpu,电池等
arch中监测支持smart硬盘温度软件有smartmontools和hddtemp,第一个监测的功能很多,我们使用第二个,

  1. [arch@localhost proc]$ sudo hddtemp -n /dev/hda
  2. 51
复制代码



监测cpu频率,温度,电池等.
这些信息都在/proc/acpi中,一般窗口管理器里面自带脚本/插件都可以监测,若没用的话,使用某个脚本语言,用正则表达式抓取数据也是很容易的.
conky可以将数据输出到桌面.


[size=+2]  thinkpad笔记本的热键设置
主要使用ibm_acpi模块,其它品牌笔记本不适用.
添加ibm_acpi到rc.conf中的MODULES,在/etc/modprobe.conf
添加

  1. options ibm_acpi hotkey=enable,0xffff experimental=1
复制代码

指定加载模块时的参数,hotkey=enable,0xffff指明使用尽可能多的快捷键,experimental=1打开一些在测试中的功能,如控制cpu风扇等,启用hotkey功能后,Fn+F4组合键将不产生sleep的acpi的事件,而是ibm/hotkey事件.


这样运行 acpi_listen后,可以监测Fn+F1-F12中那些组合产生acpi的事件,我这里是
F3,F4,F7,F8,F12.我将F3设置为开关屏幕,F4为待机,F7为切换显示器,F8为关闭bay(用来热拔插光驱或第2块电池),F12设置为关机.


我们使用radeontool来切换,它没有监测lcd状态的功能,可以使用脚本来简单判断lcd的状态.


/etc/acpi/actions/lcd_switch.sh

  1. #!/bin/sh

  2. flag=/tmp/thinkpad_lcd_off

  3. if [ -e $flag ]; then
  4.         /usr/sbin/radeontool light on
  5.         rm -f $flag
  6. else
  7.         /usr/sbin/radeontool light off
  8.         > $flag
  9. fi

复制代码

注意要chmod +x lcd_switch.sh

切换显示器使用

  1. echo video_switch > /proc/acpi/ibm/video
复制代码

关闭bay使用

  1. echo eject > /proc/acpi/ibm/bay
复制代码


修改handler.sh

  1. ...
  2.         ibm/hotkey)
  3.                   case "$2" in
  4.                           HKEY)
  5.                             case "$4" in                                       
  6.                                  00001003)       #echo "f3" >/dev/tty5      
  7.                                        /etc/acpi/actions/lcd_switch.sh            
  8.                                         ;;
  9.                                  00001004)       #echo "f4" >/dev/tty5      
  10.                                         /etc/acpi/actions/sleep.sh
  11.                                          ;;
  12.                                  00001007)       #echo "f7" >/dev/tty5      
  13.                                          echo video_switch > /proc/acpi/ibm/video
  14.                                         ;;                                         
  15.                                  00001008)       #echo "f8" >/dev/tty5      
  16.                                          echo eject > /proc/acpi/ibm/bay           
  17.                                         ;;                                         
  18.                                  0000100c)       #echo "f12" >/dev/tty5      
  19.                                         /sbin/halt                        
  20.                                         ;;                                       
  21.                                 esac                                               
  22.                                 ;;                                                
  23.                         *) logger "ibm_acpi undefined:$2";;                       
  24.                  esac                                                              
  25.                  ;;
  26. ...                                    
复制代码

使用tpb可以在屏幕上显示音量等信息,还可以设置thinkpad等热键.



[size=+2] DPMS的使用

修改xorg.conf在Section "Monitor" 中添加 Option "DPMS",在 Section "ServerLayout" 中添加

  1. Option "StandbyTime"    "20"    # Turn off screen in 20 minutes            
  2. Option "SuspendTime"    "30"    # Full hibernation in 30 minutes            
  3. Option "OffTime"        "40"    # Turn off DPMS monitor      
复制代码

使用xset dpms force standby可以立即查看效果.


我这里dpms一直无法使用,将驱动从"versa"换为"radeon"(软件包为 xf86-video-ati)后dpms正常,但是它与/proc/acpi/ibm/video冲突.具体就是不能使用上面Fn+F7来切换显示器.后发现使用laptop-mode-tools 可以控制dpms,驱动还是使用"vesa"较方便.


#radeontool
radeontool的PKGBUILD

  1. pkgname=radeontool
  2. pkgver=1.5
  3. pkgrel=2
  4. pkgdesc=
  5. url="http://fdd.com/software/radeon/"
  6. license=GPL
  7. depends=('pciutils')
  8. makedepends=()
  9. backup=()
  10. source=( http://fdd.com/software/radeon/$pkgname-$pkgver.tar.gz)
  11. md5sums=(8065eebe5a2b163e43b40461bfe49a56)

  12. build() {
  13.         cd $startdir/src/$pkgname-$pkgver
  14.         make || return 1
  15.         mkdir -p $startdir/pkg/usr/sbin
  16.         cp $pkgname $startdir/pkg/usr/sbin
  17. }

复制代码


[1]  http://www.thinkwiki.org/wiki/How_to_configure_acpid
[2]  http://www.thinkwiki.org/wiki/Ho ... acpid#Action_Script
发表于 2006-8-2 17:36:51 | 显示全部楼层
哇。太好了。我正在T23上用ARCH。。受益。呵呵
回复 支持 反对

使用道具 举报

发表于 2006-8-2 17:42:04 | 显示全部楼层
相当好的教程,早点看到就好了 ^_^
回复 支持 反对

使用道具 举报

发表于 2006-8-2 20:32:10 | 显示全部楼层
可惜俺的杂牌机快捷键不能用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-2 20:56:29 | 显示全部楼层
Post by cocozsdo
可惜俺的杂牌机快捷键不能用。

xmodmap能认出来的话,使用窗口管理器来响应,然后运行程序,也不错~
回复 支持 反对

使用道具 举报

发表于 2006-8-2 22:16:10 | 显示全部楼层
写得很好,很详细。精华!

By the way. 我的本本是Asus Z91517VC,运行Arch,一切正常。用beyond内核工作良好。

我的配置是 PM1.73GHz,intel915芯片,60G硬盘(日立),X700显卡,Intel2200BG的mini-pci无线网卡,768M内存,combo光驱,15"显示器(液晶显示器参数设置麻烦些)。除了红外接口没有试过之外,其余硬件均能正常工作。要买本本的兄弟姐妹可以参考一下。
回复 支持 反对

使用道具 举报

发表于 2006-8-2 22:26:22 | 显示全部楼层
em...偶用xbindkeys,也很好用的
回复 支持 反对

使用道具 举报

发表于 2006-8-3 03:46:56 | 显示全部楼层
问一下,那个降频,台式机器能用么?我在南方,夏天cpu容易因为温度过高而导致自动关机。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-3 08:00:35 | 显示全部楼层
Post by fluke
问一下,那个降频,台式机器能用么?我在南方,夏天cpu容易因为温度过高而导致自动关机。


这个降频的cpufrequtils挺好用的,不知道你的台式机cpu支持不?
配置文件在/etc/conf.d/cpufreq
回复 支持 反对

使用道具 举报

发表于 2006-8-3 17:25:00 | 显示全部楼层
回家试试
回复 支持 反对

使用道具 举报

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

本版积分规则

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