LinuxSir.cn,穿越时空的Linuxsir!

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

slackware current on x61

[复制链接]
发表于 2007-11-16 12:10:53 | 显示全部楼层 |阅读模式
我为什么要写X61 Slackware文章
作者: forever steel(zhoun)
原发: http://guo9310.blog.163.com/
今天发现我的几篇关于x61 slackware的文章有转贴了, 呵呵
我写这几篇文章的原意是, 把slackware能够在x61上完全配置好, 能够满足日常的工作和生活使用的需要, 把配置过程记录下来, 当作一个备忘录.

说实话, 用不习惯vista, 不喜欢花哨的界面, 即使我用xp, 用的也是windows经典主题, 把所有的特效都关闭.
而winxp 在x61上的体验并不好, 虽然网上有专门的文章, 介绍如何在x61/t61上安装xp, 但是每次重装, 都是一番考验和折磨.
1. 安装xp
2. 安装驱动和thinkpad的各种软件, 要按照指南文章, 一步一步做, 一个地方没有做好, 就是无限的麻烦
3. 安装补丁, 虽然装的是sp2集成版, 但是每次升级还是要87个补丁
4. 安装Office等办公软件, 和office的sp3补丁
5. 安装防火墙和杀毒软件, 微软的防火墙是个摆设
6. 安装java, eclipse等工作软件......
7. 安装foobar, K-Lite Mega codec pack等影音软件
8. 其他各种软件......

所有的这些步骤伴随着无数次的重启和等待, 所以我用acronis true image做了几个增量备份, 免得再次的折磨.

微软的东西就是这样, 易用性方便性是它的制胜法宝, 但是出问题的话, 很少人知道是为什么,
我这次重装系统的原因, 就是因为我的网络连接空白, 丢失了, 怎么也找不回来.
还有lenovo的电源管理软件, 也有问题.
以前的ibm R51的电源管理, 开机之后, 登录之前已经按照预先设定的电源方案设置好了, LCD屏幕亮度也设置好了;
现在的X61 电源管理软件, 是开机之后, 在登录窗口最亮, 登录之后, 电源方案才起作用, LCD屏幕亮度才降下来.
而且必须选择在任务栏显示电源图标, 否则预定电源方案还是不起作用. 感觉很不爽, 要是很久不登录呢? 还是一直最亮!

做技术的是不是都是这样: 希望自己尽量了解系统机制, 有什么问题可以很快解决, 所以我还是选择用Linux.

再说说Linux. Linux版本很多, 从98年开始, 我用过其中的slackware, redhat, debian, ubuntu, 还有freebsd等BSD.
我知道每种发行版都有自己的fans, 都有自己独特和好的地方,
比如redhat, 就是现在的fedora(8.0刚发布), 是原来人气最高的;
debian, apt包管理机制很好;
ubuntu(最新7.10 gutsy), 起源自debian, 易用性做的很好, 很多东西装上都可以用, 不用多配置, 论坛人气也很高, 免费送光盘
(以上纯属个人意见, 大家不要骂我).

不过我还是最喜欢slackware, 跟unix比较像, 简单, 干净, 直接, 不过因为一度没有很好的包管理机制(现在有很多了), 这是最让人诟病的地方, 也是他最独特的地方, 需要什么就自己动手, 所以对系统的理解比较充分一些, 出现什么问题就google或到论坛找解决方案, 自己动手,丰衣足食.
从网上抄来的:
KISS(Keep it simple,stupid──保持简单)是Slackware一贯的原则,尽量保持系统的简洁,从而实现稳定、高效和安全。

所以我打算每天写一些东西, 关于配置和使用slackware的日常的点点滴滴, 能够充分了解这个系统, 能够把系统调整到高效, 干净, 稳定, 方便易用
因为工作还是要用windows(因为现有的项目使用烂vss), 所以我一般是下班回家之后, 鼓捣Slackware, 所以每天可能进展比较小, 可能就是几个小trick而已, 不过天天进步的感觉也不错, 希望老婆不要说我又不理她了;)

前几篇文章, 已经在有些Linux网站看到转贴了, 欢迎大家转贴, 为大家使用Linux提供一些帮助和分享一些经验, 是我的荣幸.
请大家保留文章开头的作者信息, 谢谢
 楼主| 发表于 2007-11-16 12:12:08 | 显示全部楼层

周末装XP和Slackware

X61 安装Xp和Slackware双启动

买了两个月的X61 7675-4KU,  水货本本,  随机装的是英文版的Vista Business,  拿回来之后自己装了xpsp2,  感觉还不错.原来的本本是R51, 连包5KG, 背了两年多, 换一个轻便点的.

周六早上, 开机一看, 网上邻居右键点开属性, 原来的网络连接图标全部不见了(包括1394、本地连接、无线连接), 重启也不管用.在网上搜索了一下, 这种情况还挺多的, 看来我不是第一个遇到这种问题的人.试了一下网上提供的修复方法, 还是不管用, 怎么办呢, 重装吧.

想重装还有一个原因, 我从98年开始用Slackware, 毕业之后也一直用Freebsd和RedHat做服务器, 最近看到有人在笔记本上用Slackware也不错, 桌面特效等也很酷, 自己反正工作是用Java, 无所谓操作系统, 所以想在笔记本上试试Slackware和Xp双启动.

1. 原有三个区, cde, 这三个分区都是primary(一个硬盘最多4个Primary, 所以要先加一个extend, 然后再extend里面分了logical), 需要先给Slackware腾地方, 用pqmagic, 把e盘缩小, 分出12G做一个扩展分区, 再分两个逻辑分区, 2G是swap, 10G是ext2.

2. 用usb光驱启动, 安装xp sp2, 把C盘设置为fat32, 具体安装方法可以在网上搜索

3. 硬盘安装Slackware, 最新的Release版本是12.0, 看了一下在12.0发布之后好像更新挺多的, 所以我想直接安装slackware current.

4. 自己下载了slackware-current整个目录(可以只要slackware目录, kernels和isolinux目录下面的两个文件), 放在移动硬盘上, 移动硬盘有两个ntfs分区, slackware-current放在第一个分区上.

5. 下载grub4dos, 放在c:\boot目录;把grub.exe和grldr放到c:根目录;还有slackware-current/kernels/hugesmp.s/bzImage, 和slackware-current/isolinux/initrd.img也复制到boot目录.

5. 修改boot.ini文件, 加入一行c:\grldr="Grub", 重启之后有两个选项: windows xp和Grub, 选择Grub, 进入Grub命令行, 敲命令
kernel (hd0, 0)/boot/bzImage 回车
initrd (hd0, 0)/boot/initrd.img 回车
boot 回车
解释一下, 这里是告诉grub, kernel和initrd分别在硬盘的什么位置(第一个硬盘, 第一个分区), grub命令行还是很好用的, 支持命令行补全, 用Tab键, 很容易找到这两个文件的位置.

6. 启动slackware, 用root登录, 先mount 移动硬盘:mkdir /mnt/usbhd; mount -t ntfs /dev/sdb1 /mnt/usbhd

7. 然后用fdisk /dev/sda, 查看一下现在的分区列表
/dev/sda1 fat32
/dev/sda2 ntfs
/dev/sda3 ntfs
/dev/sda5 ext2
/dev/sda6 swap
/dev/sdb1 ntfs
/dev/sdb2 ntfs
其中sda5是linux分区, sda6是swap
现在只有sda1是可启动, 记得把sda5也同样设置成可启动(非常重要, 我忘记设置了, 导致后来折腾了好久)

8. #setup 进入安装, 按照顺序:选择swap, 启用swap, 选择安装分区, 选择安装文件的时候, 要选择“从预先加载的目录”:选择/dev/sdb1分区, 选择slackware-current/slackware目录

9. 安装Slackware, 选择安装的package, 我选择了全部, 硬盘足够大

10. 装完之后, 要设置lilo, slackware默认是使用lilo启动, 我也比较熟悉, 所以还是选择用lilo启动.把Linux和winxp启动选项都加入, 然后装在root(没有装在MBR, 用xp的Load启动lilo)

11.dd if=/dev/sda5 of=slack.lnx bs=512 count=1
这样就生成了一个slack.lnx文件, 把这个文件放到xp的c盘根目录下面
mkdir /mnt/c;mount -t vfat /dev/sda1 /mnt/c; mv slack.lnx /mnt/c

12. 修改/mnt/c/boot.ini, 加入一行
c:\slack.lnx="Slackware"

13. 重启, 看到有三个选项了:
Windows xp
Grub
Slackware
选择Slackware就显示Lilo的启动画面:
Linux
winxp
如果选择winxp就跳回上个菜单了(死循环?)

14. 安装成功, 如果不想要grub选项, 把对应的grub文件删掉, 把boot.ini中的grub选项去掉

15. 把c盘转换成ntfs格式: convert c: /fs:ntfs

关于slackware的配置等问题, 要等等了......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-16 12:14:59 | 显示全部楼层

X61 Slackware的配置1

我现在就是在KDE下面, 用Firefox上网, 用fcitx输入法, 写博客.
今天对系统的配置包括: 安装中文字体, 安装中文输入法fcitx, 配置声卡, 小红点
1. 安装中文字体
主要是参考了这篇文章:
http://www.linuxsir.cn/bbs/thread310089.html
跟这个文章不同的是, 我把所有的字体都设置为微软雅黑, 感觉不错.
如下图


2. 安装中文输入法fcitx
没有什么特别的, 从fcitx的官方网站下载最新版, 然后安装.
然后.profile文件中添加一行
export XMODIFIERS="@im=fcitx"
不过有一些问题, 如果把fcitx加入到开机启动, kde就不能关闭了, 感觉是fcitx阻止了kde关闭窗口的弹出.
所以现在是startx之后, 手工运行一下程序, 就没有问题了, 不知道谁有更好的解决办法

3.声卡
thinkpad x61的声卡是集成的, lspci中关于声卡的
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controlle
r (rev 03)
a. 运行alsaconf, 选择hda-intel (Intel Corporation 82801H (ICH8 Family) HD Audio Controller
b. 运行alsamixer, 或者在KDE运行kmix, kmix相当于windows的任务栏右下角的喇叭, 调整音量
c. 运行alsactl store保存设置

注意: 我的声卡刚开始一直没有声音, 插上耳机试了一下, 耳机有声音, 内置音箱就是不响, 太奇怪了.
最后发现原因是: kmix有一个Tab: 开关 , 里面有两个按钮, 分别对应耳机和音箱, 两个按钮是分别控制的, 而不是互斥的, 就是说两个可以同时打开, 而不是象windows下面, 耳机插上, 音箱就不响了

4. 小红点设置
默认安装, 小红点和USB外接鼠标都可以使用, 但是鼠标中键不管用, 不能用滚轮
需要修改/etc/X11/xorg.conf, 在鼠标配置部分:
Section "InputDevice"
    Identifier  "Mouse1"
    Driver      "mouse"
    Option "rotocol"    "ExplorerPS/2"
    Option "Device"      "/dev/input/mice"
    Option "CorePointer"
    Option "ZAxisMapping" "4 5"
EndSection

重启xwindow, 就好了, 可以用鼠标中键了

5. 给FireFox添加鼠标手势插件, Tools菜单->Add-ons->Get Extention
查找mouse gesture, 找到All-In-One Gestures, 装好之后, 重启firefox,再配置一下gustures, 就可以使用和Windows下面的世界之窗一样的鼠标手势了

KDE的易用性也不错, 感觉很好
感觉KDE中几个不错的软件:
1. KGet, 相当于KDE的FlashGet
2. Klipper, 剪切板工具
3. KOrganizer, 日程管理工具
4. Amarok, mp3工具, 按停止键的时候, 声音是渐渐变小的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-16 12:15:47 | 显示全部楼层

X61 Slackware的配置2

上班中午休息一会儿, 继续配置网卡等信息.

1. 改网卡MAC地址
    因为公司绑定了网卡地址, 没有绑定的网卡可以获取IP,但是无法上网. 因为换了laptop, 懒得再去绑定, 跟网络部那帮人打交道太麻烦, 又慢, 还是自己动手, 丰衣足食. 我在Windows下面是把网卡地址改成老laptop的网卡地址, 所以在Slackware下面需要同样这么做一下.
    看/etc/rc.d/rc.inet1.conf, 网卡的配置参数都在这里, 注释也很清楚, 只要加一行参数就可以
        HWADDR[0]="00:0D:38:7C:27:46"
重启计算机就好了,  自动获取到IP地址, 可以上网了.

2. ntfs-3g, 支持ntfs分区的读写
    参考http://www.linuxsir.cn/main/?q=node/281
    a. 从http://www.linuxpackages.net/下载fuse和ntfs-3g的最新包,
          installpkg fuse-2.7.1-i486-1McD.tgz
          installpkg ntfs-3g-1.1104-i486-1McD.tgz
    b. 在/etc/rc.d/rc.modules.local, 加入一行:
          /sbin/modprobe fuse
如果没有这个文件, 可以自己创建一个, 但是, 如果有这个local文件, 原有的rc.modules文件就被忽略了, 所以需要在local里面调用一下先
#!/bin/sh
# call rc.modules
if [ -x /etc/rc.d/rc.modules ]; then
  . /etc/rc.d/rc.modules
fi
    c. 修改/etc/fstab, 把原来ntfs的分区, 改成
/dev/sda1        /mnt/c           ntfs-3g     silent,umask=0,locale=zh_CN.gbk      0   0
/dev/sda2        /mnt/d           ntfs-3g     silent,umask=0,locale=zh_CN.gbk      0   0
/dev/sda3        /mnt/e           ntfs-3g     silent,umask=0,locale=zh_CN.gbk      0   0
重启就好了, 或者手工执行一下命令, 也可以直接mount上用了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-16 12:16:49 | 显示全部楼层

X61 Slackware的配置3

作者: forever steel(zhoun)
原发: http://guo9310.blog.163.com/

1. 还是fcitx的配置
终于找到适合放fcitx启动脚本的地方了
echo fcitx \&>~/.kde/Autostart/fcitx.sh; chmod u+x ~/.kde/Autostart/fcitx.sh


2.无线网卡配置
主要参考:http://www.linuxsense.org/viewthread-467

x61自带的是Intel的无线网卡, 参数如下:
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
需要4个包
其中一个从这个地址下载: http://ieee80211.sf.net/
另外三个在slackware-current/extra/intel-wlan-ipw3945,这里已经有了

1) 安装ieee80211
在这个步骤中, 是把kernel中的ieee80211模块替换成这个包自带的, 难道kernel中的这个模块有问题?
最新版本是1.2.18
# tar zxvf ieee80211-1.2.18.tgz
# cd ieee80211-1.2.18
# make
# make install

2) 安装kernel module
# cd intel-wlan-ipw3945/kernel-module
# tar zxvf ipw3945-1.2.1.tar.gz
# cd ipw3945-1.2.1
# make EE80211_IGNORE_DUPLICATE=y
# cp ipw3945.ko /lib/modules/`uname -r`
# depmod -a
编译的时候加了一个参数, EE80211_IGNORE_DUPLICATE=y
因为报错了, 说是kernel的ieee80211模块被替换了, 建议不要直接替换, 而是重新编译kernel, 不管这个, 指定这个参数来强制编译(不知道是不是最新的2.6.23.1kernel是否已经是最新的, 不需要替换了? 如果重新编译kernel的时候, 可以试试不用第一步行不行)

3)安装microcode
# cd ../../microcode
# tar zxvf ipw3945-ucode-1.14.2.tgz
# cp ipw3945-ucode-1.14.2/ipw3945.ucode /lib/firmware/

4) 安装regulatory-daemon
# cd ../regulatory-daemon
# tar zxvf ipw3945d-1.7.22.tgz
# cp ipw3945d-1.7.22/x86/ipw3945d /sbin

5) 创建文件/etc/modprobe.d/ipw3945
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945

6) 在rc.modules.local最后加入一行
/sbin/ipw3945d --quiet
如果第5步起作用的话,  这一步是不需要的, 但是不知道为什么这个文件在slackware不管用, 所以还是要手工把ipw3945d这个daemon启动

7.) 修改/etc/rc.d/rc.inet1.conf
把eth1改成自动获取ip: USE_DHCP[1]="yes"

8) 修改/etc/rc.d/rc.wireless.conf
把最前面的*一段改成
*)
    INFO="GK home"
    ESSID="GK"
    CHANNEL="6"
    MODE=""
    RATE="auto"
    KEY="1234-1111-34 open"
    ;;
注释很清楚,要注意看啊(强烈建议先仔细看看注释, 我就是因为没有仔细看, 多花了很多时间处理这个文件, 还以为是驱动的问题呢, 无线灯狂闪, 闪的晕, 配置好就不会那么闪了)
要注意其中的key字段, 我的无线路由器密码是open共享, 10位数字, 我开始一直以为密码是s:1234111134, 仔细看注释发现这是错误用法......
其实可以用iwlist scan, 先看看能够扫描到什么无线信号, 看输出的详细描述改这个conf文件

12点多了, 终于搞定无线了

注意:

我又仔细查了一下相关文档, ieee80211这个包确实是不需要的, 见http://ieee80211.sourceforge.net/,
Jul 12 2007 Changes in 1.2.18

status: The same as mainline 2.6.22 with trival compatibility patches for kernels since 2.6.9

意思是说ieee80211的1.2.18这个版本, 和最新的kernel >=2.6.22中包含的版本是一样的,

2.6.9 <= kernel version< 2.6.22的用户需要

没办法啊, 很多文档都比较老, 跟不上形势了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-16 12:17:47 | 显示全部楼层

X61 Slackware的配置4

作者: forever steel(zhoun)
原发: http://guo9310.blog.163.com/

Thinkpad非常好用, 它随机带的很多软件, 包括硬盘保护软件, 可以保证硬盘在跌落的时候, 不会受到破坏.
我的X61的硬盘是SATA 120G  5400转, SATA硬盘的性能还是不错的,
1. 看看在Linux下面有没有打开DMA模式
# hdparm -i /dev/sda
DMA modes:  mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
其中标记*号的, 是现在的模式, DMA应该是打开了, 更为详细的信息, 可以执行
# hdparm -I /dev/sda

2. 测试一下硬盘
# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads:  112 MB in  3.02 seconds =  37.13 MB/sec
# hdparm -T /dev/sda
/dev/sda:
Timing cached reads:   7282 MB in  1.98 seconds = 3669.88 MB/sec

3. Thinkpad的Active Protect System(APS), 在Windows下面有随机软件, Linux下面也可以通过一些配置获得
参考:
http://www.slackwiki.org/ThinkPad_X61s
http://www.thinkwiki.org/wiki/HDAPS
http://www.thinkwiki.org/wiki/Tp_smapi
其中Tp_smapi除了有电池控制功能之外, 还包括了HDAPS的一个改进版, 所以直接用Tp_smapi包含的hdaps就可以了
需要的包:
a) kernel patch for HDAPS (disk_protect_2.6.23-rc9-1.patch  from http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1077)
b) tp_smapi (tp_smapi_0.32.tgz from
http://sourceforge.net/project/s ... p;package_id=171579)
c) hdapsd (http://files.fredemmott.co.uk/X61s/hdapsd-20070524.c)
d) KHDAPSMonitor (http://www.slackware.com/~alien/ ... psmonitor/pkg/12.0/)

开始安装:
1) 先给kernel打补丁 disk_protect_2.6.23-rc9-1.patch
   # mv disk_protect_2.6.23-rc9-1.patch /usr/src/linux
   # patch -p1 < disk_protect_2.6.23-rc9-1.patch
   然后重新编译内核, 安装, 安装modules, 重启使用新kernel
   (参考文档中的其他几个补丁不需要了, 2.6.23.1中已经包括了这些补丁了)
2) tar zxvf tp_smapi_0.32.tgz
   cd tp_smapi_0.32; make install HDAPS=1
   把tp_smapi和hdaps编译成模块
3) 在rc.modules.local里面加入两行
   /sbin/modprobe hdpas
   /sbin/modprobe tp_smapi
4) 编译hdapsd
  #gcc -o /usr/local/sbin/hdapsd hdapsd-20070524.c
  在/etc/rc.d/rc.local里面加入一行
  /usr/local/sbin/hdapsd -d sda -s 30 -b
5) 安装KHDAPSMonitor
  # installpkg khdapsmonitor-0.1-i486-1.tgz

然后重启系统后, 启动KDE, 运行khdapsmonitor, 右下角出现了熟悉的硬盘保护软件的图标

注:
因为昨天装无线网卡驱动的时候, 使用了ieee80211的安装包, 替换了kernel中的版本, 其实不需要的(见配置3最后标注).
但是这个ieee80211的安装包, 把kernel源代码中的所有ieee80211的相关源代码都删除了, 编译kernel的时候报错, 还要下载一个新kernel source, 把其中被删除的代码补上, 才可以.......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-16 12:18:27 | 显示全部楼层

X61 Slackware的配置5

作者: forever steel(zhoun)
原发: http://guo9310.blog.163.com/


X61的显卡是集成的intel 965GM, Slackware装起来之后, X直接就是24位的1024x768的分辨率, 驱动用的是vesa, 能用就行. 今天看到slackware-current有更新, 包括xorg-server, mesa, xf86-video-intel, 太好了, 装intel最新显卡的包都齐了.

可以到这里 (http://www.intellinuxgraphics.org/install.html) 看看intel显卡的安装说明.

需要4个模块支持:

a) 内核中要有Agpgart, drm, i915支持

b)要装libdrm

c)要有intel显卡驱动xf86-video-intel

d)要有Mesa驱动linux-dri

a昨天编译内核的时候已经选了, b是slackware自带的, c和d是今天刚更新的包, 齐了

1. 下载slackware-current的今天的更新

x/mesa-7.0.2-i486-1.tgz
x/xf86-video-ati-6.7.196-i486-1.tgz
x/xf86-video-intel-2.1.99-i486-1.tgz
x/xorg-server-1.4-i486-3.tgz
x/xorg-server-xdmx-1.4-i486-2.tgz
x/xorg-server-xnest-1.4-i486-3.tgz
x/xorg-server-xvfb-1.4-i486-3.tgz
x/xf86-input-evdev-1.2.0-i486-1.tgz
x/xf86-input-joystick-1.3.0-i486-1.tgz

2. 升级

# upgradepkg *.tgz

3. 安装intel网站的说明, 修改xorg.conf

Section "Device"

               Identifier "name"

               Driver     "intel"

               Entries...

               ...

EndSection

Section "Module"

    # ...

    Load "glx"

    Load "dri"

    # ...

EndSection

Section "DRI"

    Mode 0666

EndSection

4. 在/etc/rc.d/rc.modules.local里面加入2行

/sbin/modprobe drm
       /sbin/modprobe i915

其实还需要agpgart和intel_agp, 不过系统已经自动装载了这两个module

5. 重启Xwindow,  可以了

6. 不过亮度变成最亮了, 用xbacklight -set 40, 设置成40%的亮度, OK了

  

note:

一定要安装x/xf86-input-evdev-1.2.0-i486-1.tgz和x/xf86-input-joystick-1.3.0-i486-1.tgz 这两个包, 否则Xwindow启动不了. 呵呵, 这两个包是隔了几个小时才发布的, 估计老大发现问题才更新的.

我刚开始一直启动不了KDE, 后来发现提示是evdev这个包邮问题, 才到处去找( 因为刚发布不久, 很多镜像站点都没有同步, 在公司只能用http......)

有空再试试显卡特效......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-16 12:19:09 | 显示全部楼层

X61 Slackware的配置6

作者: forever steel(zhoun)
原发: http://guo9310.blog.163.com/


Slackware安装之后, 启动速度比XP还是快一些, 不过还是想进一步优化一下.

原来使用的huge-smp-2.6.23.1的内核, 比较大, vmlinuz有4619608字节, 也就是4M多, Modules目录57M多,昨天重新编译内核的时候, 去掉了很多不需要的选项(X61大部分硬件都是Intel相关, 很多其他公司芯片的驱动都可以去掉), 现在的vmlinuz-x61有2237528字节, 2M多一点, Modules目录15M, 小了很多(有时间的话再看怎么再小一些), 启动也快了不少.
系统启动到字符界面, 一段时间系统反应很慢, 用top看了一下, 是fc-cache这个命令占用资源很多, 这个主要是安装字体之后, 刷新字体缓存的, 不需要每次启动都刷新一次. 在/etc/rc.d下面, grep fc-cache rc.*, 找到对应的行, 注释掉.

观察启动过程, rc.pcmcia这个文件启动比较慢, 这个主要是启动跟PCMCIA卡相关的驱动, 很少用, 准备注释掉. 到/etc/rc.d目录, grep rc.pcmcia rc.*, 看到rc.0, rc.6, rc.M这三个文件里面都有调用这个rc.pcmcia文件.其中rc.0, rc.6是关机的时候关闭相关服务, rc.M是启动的时候, 编辑rc.M文件, 找到对应的行
       if [ -x /etc/rc.d/rc.pcmcia ]; then
      . /etc/rc.d/rc.pcmcia start
      # The cards might need a little extra time here to initialize.
      sleep 5
      echo "comment pc.pcmcia in rc.M"
      fi
       原来还要暂停5秒, 反正平时很少用, 把这几行注释掉, 要用PCMCIA卡的时候, 直接执行一下这个rc.pcmcia文件就行了. 再启动系统, 大概二十几秒的样子, 进入字符界面, 如果启动KDE, 还需要大概几秒(不超过10秒钟), 足够了

昨天到现在编译了好几次内核, lilo这点不好, 每次编译内核都要重新执行一下lilo命令, 重新写一下启动扇区. 据说Grub是趋势, 修改内核之类的也不用重新install, 所以准备试试, 与时俱进
1. 下载slackware-current/extra/grub目录
2. 到grub目录, installpkg grub-0.97-i486-3.tgz
3. 创建目录 /boot/grub, 把grub相关文件复制到此目录. cp /usr/lib/grub/i386-pc/* /boot/grub, 然后在/boot/grub目录下面创建一个menu.lst文件, 这个配置就很多参考文档了, 搜索一下, 写配置如下:
default=0
timeout=5
color black/cyan yellow/cyan
title x61
        root (hd0,4)
        kernel /boot/vmlinuz ro root=LABEL=/ vga=773
        initrd /boot/initrd.gz
title old-smp
        root (hd0,4)
        kernel /boot/vmlinuz-huge-smp-2.6.23.1-smp
title winxp
        rootnoverify (hd0,0)
        chainloader +1
4. 运行grub, 把grub写入sda5, 而不是MBR
    grub>root (hd0,4)
    grub>setup (hd0,4)
    grub>quit
5. dd if=/dev/sda5 of=slack.lnx ; mv slack.lnx /mnt/c
6. 重启, 发现经过windows启动菜单, 选择slackware, 就进入了grub的菜单项了

注意:
1. grub的分区表示方式和linux的不一致, linux的root分区是/dev/sda5, 但是在grub是(hd0,4), 序号是从0开始的
2. 加了vga=773, 用了framebuffer, 否则是标准字符界面
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-18 15:05:18 | 显示全部楼层

X61 Slackware的配置7

作者: forever steel(zhoun)
原发: http://guo9310.blog.163.com/

这两天没有写博客, 一是没有时间写, 二是查阅了很多资料, 包括thinkwiki,kernel 文档等, 终于搞定了休眠,待机和部分thinkpad的快捷键.

1.先说说最近吵的比较厉害的关于硬盘Load_Cycle_Count的问题. 有人说这是一个严重的bug, 硬盘设计的寿命是60万次;有人说这个是笔记本硬盘自身的高级电源管理参数的默认设置太过严格,Linux只是用了这个默认设置而已; 有人说要问问硬盘厂商才知道这到底是不是个bug;有人说对于笔记本硬盘, 最主要的是对硬盘的震动保护, 这个参数无关紧要......

我的X61买了两个多月了, 其中winxp用了两个月, Load_Cycle_Count到了13000多, winxp和slackware一起用10天, Load_Cycle_Count到了17000多, 其实用winxp的时候, Load_Cycle_Count也同样比较多.

我觉得这个应该是个平衡的问题: 用hdparm -B num /dev/sda 把硬盘的高级电源管理参数设置的高一些, 降低磁头复位的频率, 会使硬盘温度比较高; 设置的低一些, 硬盘省电, 温度低, 磁头复位频道高一些. 而且硬盘现在比较便宜, 坏了换一个好了, 不用太过担心. 如果实在是比较关心, 可以设置的高一些, 最高254, 255则会关闭高级电源管理功能.
    # hpparm -B 250 /dev/sda


2. 电池充电设置
   上次已经安装了tp_smapi模块, 这个模块主要是电池相关功能的设置
# echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
# echo 70 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
# cat /sys/devices/platform/smapi/BAT0/*_charge_thresh

可以把头两行加入/etc/rc.d/rc.local中, 开机就设置一下.
tp_smapi说明, 因为锂电池的电量在非常高和非常低的时候, 电量流失的非常快
电池的其他功能设置, 请看tp_smapi的README


3. LCD字体的设置
http://www.linuxsir.cn/bbs/showthread.php?t=266659
http://www.linuxsir.cn/bbs/showthread.php?t=269312
可以参考上面两篇文章, 写的很清楚,
我这里再设置启用圆整字体边角, 效果已经很好了


4. Fn快捷键, 休眠, 待机
Thinkpad的快捷键功能, 也是thinkpad吸引人注意力的一个原因.
kernel中已经内置了对thinkpad_acpi的支持, 在编译内核的时候启用.

2.6.23.1中内置的thinkpad_acpi 0.16版本, 到thinkpad_acpi的主页(http://sourceforge.net/project/showfiles.php?group_id=117042) 去下载一下最新版的0.18 patch for 2.6.23.1

强烈建议先去看一下/usr/src/linux/Documentation/thinkpad-acpi.txt, 这个文档对thinkpad的快捷键等功能说的很清楚

1)先打patch: patch -p0 < patchfile
2)重新编译和使用新的内核
3)在/etc/rc.modules.local加入一行
   /sbin/modprobe thinkpad_acpi brightness_enable=1,brightness_mode=3
   这里是启用设置LCD亮度控制功能, 亮度模式为EC和CMOS
4) 在启动的时候, 内核加参数(lilo.conf或者menu.lst):
   acpi_sleep=s3_bios,s3_mode resume=/dev/sda6, 而且不能用framebuffer(vga=xxx), 否则休眠后屏幕不能唤醒
5) 在BIOS里面, 把屏幕亮度设置, 从Normal(用电池的时候降低屏幕亮度)改为High, 看文档说明是这个设置导致内核禁用了修改屏幕亮度功能(/proc/acpi/ibm目录下面没有brightness文件)
6) 在/etc/rc.d/rc.local加入两行, 设置acpid监控的hotkey mask
#cat /sys/devices/platform/thinkpad_acpi/hotkey_recommended_mask >/sys/devices/platform/thinkpad_acpi/hotkey_mask
#cat /sys/devices/platform/thinkpad_acpi/hotkey_recommended_mask > /proc/acpi/ibm/hotkey

7) 重启, 使用新的内核, acpid这个daemon会监控快捷键, 如果监控到有hotkey发生, 会根据/etc/acpi/events/default这个文件的设置.调用/etc/acpi/acpi_handler.sh这个脚本, 然后这个脚本调用相关action来处理. 可以自己监控一下
# tail -f /var/log/acpid
点击热键, 日志记录会出现相关的热键事件

注:
我是自己编写和修改了几个脚本, 来实现几个热键功能, 见附件下载
1.我这几个文件只是简单实现了Fn+F4, Fn+F12, 休眠, 待机, Fn+Home, Fn+End等几个热键, 如果想要实现其他热键, 可以在此基础上修改.
2. 如果打开framebuffer, 休眠后屏幕无显示, 其他正常, 可以远程登录重启
3. 在标准字符界面, 没有任何问题
4. 在X窗口, 待机和休眠后无法唤醒, 我测试了几次,发现可以插拔鼠标唤醒, 呵呵
5. 在X窗口, 快捷键调节亮度功能无法使用, 我查了一下文档, 发现是xbacklight实现功能并不是直接读写/proc下面的文件, 而是另外一种机制(直接控制硬件?), 所以在X窗口, 只能用xbacklight来调节亮度
6. 因为脚本中有一些操作需要root权限, 所以是用sudo, 确信你的普通用户有sudo权限(/etc/sudoers)
7. 看thinkpad-acpi.txt, 作者说acpi现在正在进行比较大的修改, 接口还没有稳定下来, 主要有两个接口,/proc/acpi/ibm和/sys/devices/platform/thinkpad_acpi.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-19 23:42:48 | 显示全部楼层

X61 Slackware的配置8

作者: forever steel(zhoun)
原发: http://guo9310.blog.163.com/

主要参考: http://www.thinkwiki.org/wiki/AC ... t_optimized_for_R51

thinkpad在, Windows下面, 如果按了快捷键, 屏幕会有显示, 比如音量, 亮度等,
Linux下面也有相关软件实现同样的功能.
需要的模块:
1) tpb, xosd (http://www.slackware.com/~alien/slackbuilds)
2) radeontool (http://fdd.com/software/radeon/)
3) tuxonice的hibernate脚本(http://www.tuxonice.net/)
4) xset, xbacklight, 默认已经安装了

1.安装tpb, xosd
  # installpkg tpb*.tgz xosd*.tgz

2. 安装radeontool
  # make; mv radeontool /usr/local/sbin/radeontool

3. 安装hibernate脚本
  # ./install.sh

4. 修改/etc/tpbrc, 内容如下:
  CALLBACK /etc/acpi/tpb/tpb.sh
  MIXER ON
  XEVENTS OFF

5. 在/etc/rc.d/rc.local加入一行
  /usr/bin/tpb -d

6. 下载这个脚本(http://www.thinkwiki.org/wiki/AC ... t_optimized_for_R51)
  保存到/etc/acpi/acpi_handler.sh, 并修改其中对应的部分
  如: USER, OSD_DISABLE_FILE等等, 改为你的环境的对应参数

7. 这个脚本没有控制屏幕亮度功能, 我改了一下, 加入了此功能

8. mkdir /etc/acpi/tpb; ln -s /etc/acpi/acpi_handler.sh /etc/acpi/tpb/tpb.sh

ok, 现在这个脚本比较完美了

附 acpi_handler.sh

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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