热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

2.6.x内核编译心得

2.6.x内核编译心得--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
  供参考。

  步骤:

  下载原代码到root 目录(其他目录当然也可以,我是习惯在这个底下而已)

  #cd (转到root 目录)
  #md5sum kernel-2.6.7 (原代码MD5码验证,这一步实际上我没做,向来比较急性子!况且还要肉眼对比那个什么字符.后来想起来了,但是已经编译成功了,也就再没去验证)
  #mv kernel-2.6.7.tar.gz /usr/src (移动内核源码到/usr/src)
  #cd /usr/src (进/usr/src目录)
  #tar cvf /root/boot.tar /boot (打包备份boot 目录到/root/boot.tar 便于失败后快速恢复)
  #tar cvf /root/modules.tar /lib/modules/kernel-2.6.5-358 (打包备份当前模块到/root/modules.tar 便于失败后快速恢复)
  #tar vzxf kernel-2.6.7.tar.gz (解包内核源码,如果是bz格式的,则tar jvxf kernel-2.6.7.tar.bz)
  #cd kernel-2.6.7 (进内核源码目录)
  #make mrproper (清理代码数,首次编译可以省略.)
  #make menuconfig (建立编译清单,注:第一次编译不能用xconfig)
  ......

  复杂的过程,我花了半个小时.成千上万个细节,一个都 不能出错,不清楚的地方可以参考默认的设置(默认太多,内核会变大,编译花费时间加长,当然,如果什么都默认的话,编译内核也就没有任何意义了),此处生成文件隐藏文件.config

  .....
  ....
  #make

  (开始依照.config 的内容编译内核极其模块---modules,机器自己跑,在我的CR600MHz上自己跑了25分钟,建议在命令模式下进行,如果你在X中,那么运行 init 3到终端,然后再make,当然这个时候可以在第二个控制台登录后top 一下,你会看到gcc占用CPU 达到80-90$-----在我的机器上是这样,如果你的机器比较快,内存比较大的话,当然你可以图形界面一边编译一边xmms听歌了. )

  #make modules_install (安装模块)
  #maek install (安装内核到你的系统)

  检查:确定grub.conf文件已经被修改,可以

  #cd /boot
  #ls -l

  看看有没有

  initrd-2.6.7.img
  vmlinz-2.6.7
  #vi grub.conf

  看看有没有新内核的启动选项.reboot 或者init 6或者 shutdown -h now (重新启动)

  注意点:

  1:2.6的内核编译时候不需要执行make dep ; make clear ; make modules

  不需要手工修改lilo.conf或者grub.conf

  make install 完成所有的新内核配置步骤.

  2:重点在make menuconfig (这里也可以make xconfig make gconfig make oldconfig )可以去掉的硬件一大堆,比如对自己没用的声卡驱.1000M, 10000M的网卡.1394接口,PCMCIA估计没几个人台式机有的吧?呵呵.

  注意file system 中选择ext2为编译进内核,EXT3编译为模块(当然可以直接编译进内核,但是内核会大一点),否则无法启动.

  如果要挂载WINDOWS 的FAT32磁盘需要编译vfat为模块.NTFS则选NTFS模块(从2.6开始支持写操作,但是偶不建议修改WINDOWS下NTFS格式的磁盘-- -可能损坏NTFS磁盘的数据记录) ,其他的文件系统,什么MAC文件系统支持,BeOS文件系统支持,FreeBSD文件系统支持,SOLARIS文件系统支持等等......支持的太全 面了,大都可以去掉.不过要保留SMB和NFS(呵呵,除非你只是单机使用)

  ISO9600文件系统(标准光盘文件系统,还有M$的光盘文件系统支持,名字叫什么J***的.记不太清楚了.最好也选择了.)选择自己的主板芯片支持.

  P4的CPU 有几个优化的选项,如果你的是P4那么SYE YES !(具体名字不太记得清楚,如果你要编译的话,自己每一项看看说明)

  Preemptible Kernel一定是要选择的,几乎所有介绍2.6内核的文章都会提到此项,这就是可抢先式内核。也就是说被一些优先级很高的程序可以先与一些低优先级的程 序执行,即使这些程序是在核心态下执行,从而减少内核潜伏期,提高系统的响应。这个特性可以提高桌面系统、实时系统的性能.还有什么ACPI和APM的电源管理,依照你机器的新旧选择也不一样.

  3:kernel debuging 最好都不要了,个人觉得那些都不太有用.而且有个4K stack 编译进去后据说会装不了最新的NVIDIA的驱动.........看你的造化了.反正我是编译了六次才通过了,现在正在2.6.7内核的测试期.

  4.loopback设备要编译到kernel里

  否则会ALL of your loopback devices are in use

  5.显卡的驱动要编到模块里.因为以后要安装驱动,升级模块.

  我的心得:要装杀毒软件的就要在security option中把capbilities编译进模块,不可以选Y将其编译进内核。另外每次编译内核后驱动要重装,对老内核进行重新编译声卡驱动好像不用重装,显卡还是要装。
推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • 如何在联想win10专业版中修改账户名称
    本文介绍了在联想win10专业版中修改账户名称的方法,包括在计算机管理中找到要修改的账户,通过重命名来修改登录名和属性来修改显示名称。同时指出了windows10家庭版无法使用此方法的限制。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 电脑公司win7剪切板位置及使用方法
    本文介绍了电脑公司win7剪切板的位置和使用方法。剪切板一般位于c:\windows\system32目录,程序名为clipbrd.exe。通过在搜索栏中输入cmd打开命令提示符窗口,并输入clip /?即可调用剪贴板查看器。赶紧来试试看吧!更多精彩文章请关注本站。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • win10系统搭建Java开发环境的操作方法
    本文介绍了win10系统搭建Java开发环境的详细操作方法,包括下载Windows10系统和Java SE,安装Java开发环境,设置变量等步骤。操作简单,只需按照指导进行即可。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
author-avatar
潸-苫_390
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有