ITPub博客

首页 > 应用开发 > IT综合 > 内核编译2.6.13.4(原创)part1

内核编译2.6.13.4(原创)part1

原创 IT综合 作者:roninwei 时间:2006-07-18 08:35:58 0 删除 编辑

此文为本人原创,转载请注明转自roninwei.itpub.net,第一次做错误难免,请指正!

[root@loveronin src]# gzip -d linux-2.6.13.4.tar.gz

[root@loveronin src]# tar -xvf linux-2.6.13.4.tar

准备自己PC的各种型号的资料,这就要因人而异了,只有知道了自己的配置才能达到尽量去掉那些不必要的驱动等的目的,以下为我本人PC的配置,这将在后面的过程中需要用到。

CPU:AMD Athlon XP 2500+

主板:MSI K7N2 Delta带网卡,声卡

内存:KingstonDDR400 256M x 2

显卡:ATI Radeon 9600 128Bit 64M

硬盘:Maxtor 80G

显示器:SyncMaster 783MB

CDRom:MSI 52X

键盘&鼠标:Logitech 普通套件

操作系统:Fedora Core 3(Fedora Core 的前身是的Red Hat Linux ,Red Hat Linux 9.0Red Hat已经不在开发Red Hat Linux 而是将全部精力投入到企业版的Red Hat Enterprise Linux,而以前的Red Hat Linux则由另外的一个组织负责并且以Fedora 来命名,所以Red Hat Linux 9.0后的第一个Red Hat Linux个人版命名为Fedora Core 1)and Windows 2000 SP4+补丁

实现环境:Fedora Core 3+Gnome+Kde+永中Office 2004增强版For Linux

内核编译

①配置核心

②编译核心

③编辑/etc/grub.conf

④重新启动新核心

⑤重新启动机器

⑥发现并修理故障

此文为本人原创,转载请注明转自roninwei.itpub.net,第一次做错误难免,请指正!

配置核心

这是编译内核的主要部分,首先要转到我们内核解压的目录/usr/src/linux

-2.6.13.4:

root@loveronin ~] #cd /usr/src/linux-2.6.13.4

编译内核有四种常用的命令:

------make xconfig(基于图形窗口模式的配置界面,Xwindow下和初学者推荐使用,需要QT支持可能需要装KDE桌面环境)

------#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用,必须安装ncurses-devtk4-dev库)

------#make config(基于文本的最为传统的配置界面,一般人不推荐使用)

------#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)

选择相应的配置时,有三种选择,它们分别代表:

Y-将该功能编译进内核

M-将该功能编译成可以在需要时动态插入到内核中的模块

N-不将该功能编译进内核

我在这里使用make xconfig,选择项目的原则是与内核关系紧密而且经常使用的部分功能代码直接编译到内核中;内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响,不需要的功能就不要选,下面就对各项按我上面给出的配置进行介绍,2.6.13版本的内核主要有以下15个主要项目:

#表示主要项目

##表述主要项目下的子项目

###表述主要项目下的子项目下的子项目

1 代码成熟级别选项

2 常规选项

3 可加载模块支持

4 处理器类型和特性

5 电源管理选项

6 总线选项

7 可执行文件格式

8 网络

9 设备驱动

10 文件系统

11 侧面支持

12 内核除错

13 安全性选项

14 加密选项

15 库例程

编译核心

Code maturity level options(代码成熟级别选项)

#prompt for development and/or incomplete code/drivers是否安装正在开发中或不完整的程序代码或驱动程序?主要是处于实验阶段的功能,非开发人员一般选N

##Select only drivers expected to compile cleanly,不编译那些已知的驱动选Y

General setup(常规选项)

#Support for paging of anonymous memory对虚拟设备和存储的支持,Y

#System V IPC是否支持IPC功能,IPC主要用在Process之间交换信息,DOS和部分Linux上重要,Y

#POSIX Message Queues,Unix可移植性操作系统接口支持选Y

#BSD Process Accounting是否将程序统计数据写成文件?此文件包含较多详细的数据,Y

##BSD Process Accounting version 3 file format是否将程序统计数据写成另外一种格式同时记录进程和起父进程的ID,选N

#Sysctl support可以在不开机或编译内核的情况下动态改变内核参数,比如可以直接在终端中打开IP转发,Y

#Auditing support打开审查基础结构可以和其它内核子系统一起使用比如说SELinux,Y

##Enable system-call auditing support允许低开销系统访问审查基础结构可独立使用或和SELinux一起使用,Y

#Support for hot-pluggable devices没有选项默认Y

#Kernel Userspace Events用监听事件来代替轮询系统设备和文件,除非想构建一个使用最少存储器的系统,建议选Y

#Kernel .config support将所有的.config文件目录保存在内核中,N

#Configure standard kernel features允许确定的内核基本选项和并可以使其失效,N

Loadable module support(可加载模块支持)

#Enable loadable module support对可加载模块的支持,除非准备把所有需要的内容都编译到内核里面,否则选Y
#Module unloading
对模块卸载的支持,没有它你将不能动态的卸载模块选Y

##Forced module unloading可以强行卸载模块,不管内核是否认为安全,编译后应该没有这个必要了,N

#Module versioning support可以用来使用模块来编译不同的内核,Y

#Source checksum for all modules可以用来查看建立模块用到哪些源程序,N

#Automatic kernel module loading让内核在启动时有自己装入必需模块的能力,Y

Processor type and features(处理器类型和特性)

#Subarchitecture Type子结构类型,对于386系列CPU选择PC-compatible

#Processor family(处理器类型)因为我的CPUAMD Athlon2500+所以选择Athlon/Duron/K7,保持缺省时它会对每种CPU做最佳化,让它跑得快又好。一般来说,没有选择正确的CPU并不会有重大的影响.

#Generic x86 support选择Y后它将对内核作优化,使内核在386系列CPU上发挥的更好,Y

#HPET Timer SupportHPET内部时钟支持,如果不选会使用以前的老时钟8254,Y

#Symmetric multi-processing support对称多处理器支持,用于服务器或多CPU机器,对我来说没有用,N

#Preemption Model预先占有模型,有No Forced Preemption,Voluntary Kernel Preemption,Preemptible Kernel一般的个人桌面选择Voluntary Kernel Preemption

#Local APIC support on uniprocessors本地高级可编程中断控制,不需要,N

#Machine Check Exception如果选择这一项将使处理器如果发现问题可以通知内核,Y

##Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4此项使每5分钟检查Register,以了解是否发生错误,N

#Toshiba Laptop supportToshiba Laptop的支持,N

#Dell laptop suppor Dell laptop的支持,N

#Enable X86 board specific fixups for reboot目前只支持Geode GX1/CS5530A /TROM 2.1,N

#/dev/cpu/microcode - Intel IA32 CPU microcode supportIntel IA32结构的支持,Y

#/dev/cpu/*/msr - Model-specific register supportMSRs功能的支持,M

#/dev/cpu/*/cpuid - CPU information support是不是打开CPU记录功能,M

#High Memory Support最大内存支持,如果内存为4G以上选64G,1G~4G4G,低于1GOFF,这里选OFF

#Memory model如果选择Flat Memory可以使用户改变Linux管理内存的模式,M

#Math emulation仿真浮点运算,现在的CPU都包含这个功能,N

#MTRR (Memory Type Range Register) support打开此选项可以增加AGP显卡的效果,Y

#Boot from EFI support这个选项可以使内核在EFI平台上起动,N

#Use register arguments使用-mregparm=3来编译内核,需要GCC3.0以上的支持,Y

#Enable seccomp to safely compute untrusted bytecode此选项在数据应用程序执行期间估算不可信的字节代码时非常有效,Y

#Timer frequency时钟周期,根据实际情况选,我这里选200HZ

#kexec system call使用这个选项使你可以关闭现在的内核并起动任何一个内核,N

Firmware Drivers

#BIOS Enhanced Disk Drive calls determine boot disk此选项可以使BIOS提高磁盘驱动服务实模式BIOS调用以决定从哪个磁盘BIOS起动,还处于实验阶段,可能会造成问题,N

Power management options(电源管理选项)

#Power Management support此选项可以使PC在没有使用时进入睡眠模式,Y

#Power Management Debug Support此选项对电源管理提供详细的调试,在电源管理出问题使有效,N

#Software Suspend使用软件时实现机器的挂停,这个不需要APM的支持,N

ACPI (Advanced Configuration and Power Interface) Support

#ACPI Support高级配置和电源接口支持,M

##Sleep States 此选项增加了对ACPI的支持,不过处于实验阶段,N

#AC Adapter交流适配器支持,用于笔记本,N

#Battery通过/proc/acpi/batter来提供电池信息,用于笔记本,N

#ButtonACPI中加入对例如power,sleep,wakeup键的支持,我键盘上无,N

#Video扩展ACPI在主板上的完整图象显示驱动,N

#Generic Hotkey实验阶段,N

#Fan扩展ACPI中的风扇驱动,可以在用户模式下控制风扇的开,关和状态选Y

#Processor使用ACPI空闲处理,而使用ACPI C2 and C3来在支持的系统上节电,Y

#Thermal Zone用来限定CPU工作时的最高温度,没有它CPU可能有烧毁的危险,Y

#ASUS/Medion Laptop Extras ACPI中加入对ASUS/Medion Laptop支持,N

#IBM ThinkPad Laptop ExtrasACPI中加入对IBM ThinkPad Laptop的支持,N

#Toshiba Laptop ExtraACPI中加入对Toshiba Laptop 的支持,N

#Disable ACPI for systems before Jan 1st this year可以输入一个四位数的年份来使在此年的一月一日前不使用ACPI默认2001

#Debug StatementsACPI的调试程序,N

#Power Management Timer Support电源管理计时器支持,Y

#ACPI0004,PNP0A05 and PNP0A06 Container Drive支持CPU和内存的物理热插拔,一般只有那种多CPU的服务器才会用到,选N

APM (Advanced Power Management) BIOS Support

#APM (Advanced Power Management) BIOS support高级电源管理支持,Y

#Ignore USER SUSPEND此选项忽略用户的挂停请求,N

#Enable APM at boot time 当起动过程中CPU处于空闲时开启电源管理,主要为笔记本省电,PC不需要,N

#Make CPU Idle calls when idle主要用于笔记本节电,N

#Enable console blanking using APM笔记本用此功能来关闭背景灯,N

#RTC stores time in GMT 如果你的RTC存放GMT时间着选Y,存放本地时间选N,N

#Allow interrupts during APM BIOS callsAPM调用时允许中断,N

#Use real mode APM BIOS call to power off使用实时APM调用关闭电源,N

*需要注意的是ACPIAPM不能同时使用。

CPU Frequency scaling

#CPU Frequency scaling可以对CPU的频率进行调整,在低频时减少用电,Y

#Enable CPUfreq debuggingCPU频率监测出现问题时进行调试,N

#CPU frequency translation statistics通过系统文件来输出CPU频率的统计信息,N

#Default CPUFreq governor默认CPU频率调节器,performance使CPU默认为可以支持的最高频率,userspace允许用户自己调节,userspace

#performance' governorCPU频率默认为可以达到的最高频率,N

#powersave' governorCPU频率默认默认为最低频率,N

#ondemand' cpufreq policy governorCPU的频率作轮询,根据CPU的使用来调节频率,Y

#conservative' cpufreq governorondemand一样的功能,用于笔记本,N

CPUFreq processor drivers

#CPUFreq processor drivers可以使用的选择有ACPI Processor P-States driver,AMD Mobile K6-2/K6-3 PowerNow!,AMD Mobile Athlon/Duron PowerNow!,AMD Opteron/Athlon64 PowerNow!,Cyrix MediaGX/NatSemi Geode Suspend Modulation,都为笔记本支持,全部选N

#Intel Enhanced SpeedStep笔记本支持,N

#Intel Speedstep on ICH-M chipsets (ioport interface)对有Intel ICH2, ICH3 or ICH4南桥芯片笔记本的支持,N

#Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)对有Intel 440BX/ZX/MX南桥芯片笔记本的支持,N

#Intel Pentium 4 clock modulation对有Intel Pentium 4 / XEON芯片的支持,N

#nVidia nForce2 FSB changing对有 nForce2 FSB支持,N

#Transmeta LongRun对长时间无人或长时间运行的系统支持,Y

#VIA Cyrix III LonghaulVIA Samuel/CyrixIII,VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-TCPU支持,N

*注意:ACPIAMP不能同时工作

Bus options (PCI, PCMCIA, EISA, MCA, ISA(总线选项)

#PCI supportPCI总线的支持,Y

#PCI access modeBIOS,MMConfig,Direct,Any默认用Any,系统检测PCI设备时会先用MMConfig模式,DirectBIOS模式,Any

#PCI Express supportPCIE的支持,N

此文为本人原创,转载请注明转自roninwei.itpub.net,第一次做错误难免,请指正!

#Legacy /proc/pci interface在系统中文件/proc/pci文件中产生一个系统中所有pci设备的记录,主要用语在紫铜运行时查看PCI设备的信息,选N

#PCI device name database将所有的已知的PCI设备在/proc/pci文件中进行记录,N

#PCI DebuggingPCI设备出现问题时可以进行调试,N

#ISA supportISA总线的支持,N

#MCA supportIBMps/2机器和一些笔记本中微通道结构的支持,N

#NatSemi SCx200 support对通用半导体SCx200处理器的支持,N

PCCARD (PCMCIA/CardBus) support

#PCCard (PCMCIA/CardBus) supportPCMCIA的支持,为笔记本上使用的网卡等设备,N

PCI Hotplug Support

#Support for PCI Hotplugpci设备进行热插拔的支持,没有必要,N

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7507082/viewspace-850256/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 内核编译part2
请登录后发表评论 登录
全部评论
  • 博文量
    151
  • 访问量
    1014630