将系统的内核升级到了前几天刚发布的
linux-2.6.30
, 也解决了笔记本CPU温度总是比较高的毛病. 这文章主要是用于做备份, 毕竟用了这么长时间的Linux, 这回才是第一次手工编译升级内核. 囧主要的参考资料:
How to: Linux delete or remove kernel
How to: Compile Linux kernel 2.6
3.3. CPUfreq Governor Types
更为详细全面的资料(不过我没有研究, 实在是太详细了, 应该是写给系统管理员的, 也是写给那些想要对Linux做系统裁剪的同学的):
Linux Kernel Configuration - Linux Kernel in a Nutshell
下面是总结的摘要.
---------------------------------
安装内核
Installation: #1 Download the source-code from linux-kernel site. linux-2.6.30.tar.bz2 #2 Unzip it to /usr/src/. $ tar -xjf linux-2.6.30.tar.bz2 -C /usr/src/ $ cd /usr/src/linux-2.6.30/ #3 **** Configure the kernel **** $ sudo make menuconfig #4 Make and install. $ sudo make -j4 $ su root$ make modules_install root$ make install root$ cd /boot root$ mkinitranfs -o initrd.img-2.6.30 2.6.30 root$ exit #5 Update the "grub file" menu.lst. $ sudo update-grub #6 Reboot. $ sudo reboot---------------------------------
在安装过程中, 需要注意配置声卡和电源管理选项.
电源管理
CPU Frequency Scaling:
对于
CPUFreq governor
选项的含义, 可以参考 Redhat 的文档. 简单点说, 就是 cpufreq_performance
注重将CPU的能力发挥到极限, 总是以最高频率运行; cpufreq_powersave
将节能摆在优先位置, 总是以最低可能的频率运行; cpufreq_userspace
允许用户代码自动调节处理器频率; cpufreq_ondemand
允许内核根据当前CPU使用情况自动调节运行频率; cpufreq_conservative
和 cpufreq_ondemand
差不多, 只是调节方式更加趋于保守.默认的选项是
cpufreq_performance
, 对于笔记本而言, 这是绝对错误的选择(当然, 如果处理器不支持动态调频, 那么这个选择也就无可厚非了). 对于使用Intel处理器的笔记本, 使用 cpufreq_ondemand
比 cpufreq_conservative
更加合适, 尽管看上去后者更加适合. 具体的原因参考这两条邮件列表中的信息(来自一款Intel开源实验室开发的PowerTop工具):Ondemand vs. conservative governor
Ondemand vs. conservative governor
另外, 如果你希望拥有休眠 Hibernation 和挂起 Suspend 的功能, 也要注意在配置中加以设置.
这里有一组命令, 是在某个页面上直接摘过来的, 可以用于查看硬件配置, 可以参考一下:
lspci ( lists pci device) lsusb ( lists usb device) lsscsi ( lists scsi device) systool fdisk -l ( lists hard drive) dmidecode ( lists hardware model, serial number, cpu, memory. This command was handy when i needed to find serial number without a visit to data center) cat /proc/cpuinfo ( more on cpu) cat /proc/meminfo ( more on memory)一般来讲, 使用
sudo lshw
和 dmidecode
以及 lspci |grep xxx
就足够了.声卡配置
这一点我开始忽视了, 导致内核编译安装后缺乏相应的声卡驱动模块, 结果配置了半天ALSA, 翻阅了无数BBS和maillist查找bug-report也没有搞定, 过了几个小时才恍然大悟可能是内核编译中缺乏声卡模块. -_-
这里有两个选项, 一般来讲选择第一个,
Advanced Linux Sound Architecture
, 也就是ALSA, 但是如果ALSA搞不定你的声卡, 你可以选择 Open Sound System
, 也就是俗称的OSS, 来碰碰运气.为了最小化驱动(要知道内核中最占空间的就是这一坨一坨的驱动), 我们要进入ALSA的自选项卡, 选择自己的声卡:
譬如我的就是
Intel HD Audio
, 你可以运行 lspci |grep Audio
来得知自己的声卡类型.---------------------------------
另外, 如果不是这次手工配置内核, 还真是没有感觉到传说中 Linux 强大的网络协议支持能力 囧:
---------------------------------
内核卸载
如果内核编译安装后, 发生了一些bug, 抑或是你感觉没有配置成功, 可以重新再
menuconfig -> compile -> install
一遍, 但是前提是你要先将安装好的内核卸载!和一般的软件
make uninstall clean
不同, 内核卸载不是这么容易, 需要自己手工删除. 但是总体来讲工作量也很小, 这是由于Linux文件结构中良好的低耦合度所决定的.需要删除的部分:
# /boot/vmlinuz*KERNEL-VERSION* # /boot/initrd*KERNEL-VERSION* # /boot/System-map*KERNEL-VERSION* # /boot/config-*KERNEL-VERSION* # /lib/modules/*KERNEL-VERSION*/如果在
/boot
文件夹中还存在 vmlinuz System-map config
的软链接, 此时有可能会变成死链, 也要一并删除之.删除完毕后重新
sudo update-grub
更新一下 menu.lst
就ok了.---------------------------------
升级内核后, 可能是由于手工编译更加贴近硬件的实际状态, 处理器两个核心的温度大幅度降低(你可以通过安装
lm-sensors sensors-applet
检测硬件温度), 和视窗系统下的温度差不多, 都是30-35度之间. 波动大概10度, 可能会到达40-45度左右(对于编译内核这样的密集计算工作, 可能会使得处理器核心达到60-70度).祝你内核配置之旅愉快.
ps1:
这里提供一个小技巧, 为了加快内核编译过程(从1-2小时压缩到20分钟甚至是10分钟左右), 一方面是要进行充分的配置, 将无用的驱动和模块统统删除, 另一方面可以使用
make -jn
将 make
进行分成n个并行作业, 一般来讲单个处理器核心可以分成2个, 如果是双核处理器, 拥有两个处理器核心, 使用 make -j4
就可以了.ps2:
如何修改动态调频方式? 参考这份文档: How to make use of Dynamic Frequency Scaling - ThinkWiki
- EOF -
没有评论:
发表评论
不要使用过激的暴力或者色情词汇.
不要充当勇猛小飞侠 --- 飘过 飞过 扑扑翅膀飞走 被雷得外焦里嫩地飞走.
万万不可充当小乌龟 --- 爬过.
构建河蟹社会 责任你有 我有 大家有 -_-