email: jiqingwu@gmail.com
date: 2008-02-13
关键词:ubuntu cpu cpufreqd cpufrequtils 编译 内核

装上ubuntu7.10后,发现笔记本的风扇比它在winxp时代转得多也转得响了,比较闹心,也有点心疼它。

在网上搜了一下,推荐用cpufreqd的居多,
大致是装上cpufreqd( sudo apt-get install cpufreqd )后,再按照自己的需要编辑一下cpufreq.conf后,cpu的工作频率就能自动调节了,
也就是说它懂得忙里偷闲,不会频繁地催它的仆人给它扇扇子了。

我做完上面的步骤后,重新启动,结果提示cpu的频率不可调节。
据说使用cpufrequtils可以查看cpu支持的变频频率,就请它(sudo apt-get install cpufrequtils)来给我的cpu诊断一下吧 。
安装完后,运行cpufreq-info查看,居然cpufrequtils这样说
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU

我上网查,看到oceanboo的文章 《CPU 频率调节和硬盘温度监控》, 看来只能编译内核了。
oceanboo说在配置的时候要确保把 ACPI Processor P-States driver编进内核,cpu的频率才可以调节。像下面那样:

Power management options --->
CPU Frequency scaling --->
<*> ACPI Processor P-States driver刚装上ubuntu两天,就开始玩弄听起来这么酷的东西,兴奋啊。

在网上找到了赵珂的《如何编译一个内核 - Ubuntu方式》,看了一下可行性还可以,就动手一搏了。
按照赵珂的提示,开始下载内核,配置编译。
一开始就低估了编译内核需要的时间和开销,以为十几分钟就可以搞定的事情结果花费了一个半小时。
在这1个半小时里,cpu忙个不停,它的仆人费力地给它扇风,cpu仍然高烧到67度。
到了编译后期,硬盘也是前所未有的忙碌。
真是担心,这兄弟几个累出个好歹的。
我自我安慰,就当是黎明前的黑暗吧,为了以后的幸福吃点苦值得。

一切终于安静了,我的linux-image-2.6.22.18-custom新鲜出炉了,我用它武装了本本,然后重启本本,兴奋地等着看结果。
wow,一次搞定,进入系统的速度果然加快了许多。
进入系统后,cpufreqd起作用了,它不停地提醒cpu别那么卖力的工作,于是cpu的仆人也不用经常扇扇子了,即使扇几下也不大吵大叫了。

我开始后悔在配置内核时只对power management进行了配置,主要是把 ACPI Processor P-States driver编进了内核,另外删除了一些对我的迅驰cpu没用的东西,如对amd的支持啦,对cyrix的支持等。如果当初耐心一点,对各项都好好配置一 下,开机速度应该更快了。
不过发现新内核还有一个缺点,每次开机它都让lcd的亮度为最高级别,我手动调低,重新启动之后它还是逼着lcd在最大亮度下工作。等我有时间再教训它。

把原来的内核删掉吧,留着占地方。
用sudo dpkg --get-selections|grep linux查看都安装了哪些内核,
然后sudo apt-get remove $kernel_name,再sudo apt-get autoremove一下就可以了。
没想到的是,删除了老内核也必将删掉依赖它的virtualbox,
删,宁可错杀一千,不能放过一个。以后在重装一个。

内核:为了fan的健康,我的重新编译记录的更多相关文章

  1. 全志A10_linux3.0内核编译记录

    第一次尝试编译时按照 Android A10(4.0.3)系统编译详解.pdf 编译打包出来的镜像可用,但是内核没有生成Module.symvers .后来进一步研究才知道 ./build.sh 脚本 ...

  2. ubuntu12.04 内核编译 记录

    近期学习linux这门课,做实验要编译系统内核,然后..五一没事就捣鼓了一上午,还好成功了,以下就写下过程吧. 注意:以下过程的有些make 这类的命令 可能要获取权限 1.開始时能够查一下自己如今系 ...

  3. linux内核入门(1)——基本简介和编译

    获取linux内核源码,自己选择版本(我下载的是linux-3.1.10.tar.gz ,我是直接下载到/usr/src文件夹的) 下载地址传送门 https://www.kernel.org/pub ...

  4. 升级Linux内核导致vmware无法使用(vmnet模块无法编译)解决方式

    近期将ubuntu升级到了14.04,出现了vmware无法启动的情况. 详细表现为:每次启动的时候都会弹出一个VMWare Kernel Module Updater的对话框,要求依据当前内核版本号 ...

  5. Linux下编译内核配置选项简介

    Code maturity level options代码成熟度选项 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完 ...

  6. linux内核调试指南

    linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...

  7. 【内核】linux2.6版本内核编译配置选项(一)

    Linux 2.6.19.x 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发, ...

  8. Linux Kernel - Debug Guide (Linux内核调试指南 )

    http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级 ...

  9. 解析 Linux 内核可装载模块的版本检查机制

    转自:http://www.ibm.com/developerworks/cn/linux/l-cn-kernelmodules/ 为保持 Linux 内核的稳定与可持续发展,内核在发展过程中引进了可 ...

随机推荐

  1. MongoDB中的数据导出为excel CSV 文件

    1.打开命令行,进入我们所安装的mongodb路径下的bin文件夹 2.我们采用bin文件夹下的mongoexport方法进行导出, mongoexport -d myDB -c user -f _i ...

  2. Beta阶段团队项目开发篇章2

    例会时间: 2016.12.4 例会照片 个人工作 上阶段任务验收: 组员任务都已完成. 任务分配 组员 任务内容 韩慧敏 对调查问卷的结果进行分析和总结,确定Beta阶段各任务的优先级,撰写相关博客 ...

  3. 开发 | 如何在微信小程序的页面间传递数据?

    我们在之前发布过小程序页面传值方法的简单介绍,说明了在小程序开发中,两种常见的页面之间传值方法. 本期,知晓程序(微信号 zxcx0101)为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有 ...

  4. js中的php rand函数

    //文件rand.js function MyRand(min, max){ this.min = min; this.max = max; } MyRand.prototype.getRand = ...

  5. 微信小程序组件 滚动导航

    JS data: { // 初始化滑动条数据 menuIndex:0, // 每个菜单的宽度 onlyWidth: 70, // 右侧的margin marginWidth:10, // 菜单总长 m ...

  6. LInux查看网速带宽及各进程占用情况:nethogs

    安装: #Ubuntu: sudo apt-get install nethogs #CentOS: sudo yum install nethogs 使用: $ sudo nethogs

  7. firewall和iptables

    防火墙有这三种方式,firewalld.iptables.ebtables,现在的centOS7使用的是firewalld. 下面是一些总结: 查看当前firewalld的状态 firewall-cm ...

  8. delphi开发学习四:TClientDataSet与TDataSetProvider控件使用实例

    1.TClientDataSet控件 通过TClientDataSet控件可以建立瘦客户端的应用程序,且数据执行效率较高,但它不能和数据库自动连接,程序中必须制定它如何获取数据.一般情况下,TClie ...

  9. 【Java并发编程】之十二:线程间通信中notifyAll造成的早期通知问题

    如果线程在等待时接到通知,但线程等待的条件还不满足,此时,线程接到的就是早期通知,如果条件满足的时间很短,但很快又改变了,而变得不再满足,这时也将发生早期通知.这种现象听起来很奇怪,下面通过一个示例程 ...

  10. Python 变量 (上)

    Python通过变量引用内存中的值,变量的值占用多少空间是由变量的类型决定的.声明变量不需要指定变量的类型,解释器会自动根据值来判断.变量名称必须符合标识符的定义 标识符 标识符是由字母,数字和下划线 ...