导航:首页 > 源码编译 > 编译内核生成器

编译内核生成器

发布时间:2022-05-25 10:16:26

1. 什么叫做内核编译,为什么要进行内核编译呢

对开源操作系统(主要是指linux)的内核源代码在本机进行有针对性的编译,就叫做内核编译。
编译内核的目的主要是改变内核的默认选项,比如内核原来不支持某硬件,原因是内核的相应选项默认状态是disactivated,需要改变。
当然,也有人把新版的linux装在旧机子上。这样,许多在内核里activated的硬件,他没有,将来也不需要。那么,就可以在内核里去掉。以及一些服务、特殊的功能等等,如果用不着,比如机子是服务器的话,最好在内核里关掉,"精兵简政"。这是以系统安全和提高效率为目的。
有专门的工具对其进行编译。这个问题不是几句话能说明白的。看你的提问就知道你是刚刚学习这些内容,建议不要好高骛远,先把c语言学好,然后再研究这些东西。

欢迎访问我的论坛:)
http://www.chinesebloger.com
期待您的支持:)

2. Linux内核编译要用什么工具

GNU toolchain工具链
包含binutils/gcc/glibc
binutils包含链接器,汇编器等处理obj文件的工具
gcc是编译器
glibc是GNU的标准C库
这是一个最小集合,除此之外工具链还有其他的一些工具,比如:
make,tar,ncurses等等
参考资料是如何从源代码构造Linux(LFS)关于工具链的说明

3. 如何编译linux的x86内核

Gcc编译器, Linux-2.6.29内核

步骤:

(一):清除临时文件,中间文件和配置文件等(刚从网上下载下来的文件这步可省略)。

make clean

删除大多数的由编译生成的文件、但会保留内核的配置文件.config。

make mrproper

删除所有的编译生成的文件,还有内核配置文件,再加上各种备份文件。

make distclean

mrproper删除的文件,加上编辑备份文件和一些补丁文件。

(二)选择参考配置文件

使用正在运行的内核配置文件作为参考配制文件,该配置文件在/boot目录下,使用命令

cp /boot/config-2.6.18-53.el5 .config。

(三)配置内核

配置内核有如下命令:

make config:基于文件模式的交互式配置(也就是一问一答)。

make menuconfig:基于文本模式的菜单式配置(强烈推荐)。

make oldconfig:使用已有的配置文件(.config)但是会询问新增的配置选项。

make xconfig:图形化配置(需要安装图形化系统)。

make menuconfig是最为常用的内核配置方式,使用方法如下:

1、使用方向键在各选项间移动;

2、使用“Enter”键进入下一层选单;每个选项上的高亮字母是键盘快捷方式,使用它可以快速地到达想要设置的选单项。

3、在括号中按“y”将这个项目编译进内核中,按“m”编译为模块,按“n”为不选择(按空格键也可在编译进内核、编译为模块和不编译三者间进行切换),按“h”将显示这个选项的帮助信息,按“Esc”键将返回到上层选单。

内核配置通常在一个已有的配置文件基础上,通过修改得到新的配置文件Linux内核提供了一系列可供参考的内核配置文件,位于Arch/$cpu/configs

注意:要运行make menuconfig的界面需要调整终端的窗口大小,至少为80*19。

(四)编译内核

(1):make zImage

(2):make bzImage

区别:在X86平台,在zImage只能用于小于512Kd的内核(注意是X86平台)

如需获取详细编译信息,可使用:

make zImage V=1

make bzImage V=1

编译好的内核位于arch/<cpu>/boot目录下

(五)编译内核模块

使用命令make moles

内核模块编译的时间比较长,一般需要1~2小时的时间。这些模块源于使用命令make menuconfig启动的菜单型配置界面中选择<m>的项。

(六)安装内核模块

使用命令:make moles_install,完成安装后,编译好的内核模块会从内核源代码目录拷贝至/lib/moles/2.6.29目录下。

(七)制作init ramdisk

使用cd跳动linux-2.6.29/,目录的上层目录,使用命令:mkinitrdinitrd-$version $version(mkinitrd initrd-2.6.29 2.6.29)将上一步中产生的模块目录/lib/moles/2.6.29制作成initrd-2.6.29。

提示:initrd是“initial ramdisk”的缩写,initrd是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。在桌面或服务器Linux系统中,initrd是一个临时的文件系统。其生命周期很短,只会用作真实文件系统的一个桥梁。在没有存储设备的嵌入式系统中,initrd可以是永久的根文件系统。

Linux的众多发行版之所以使用initrd主要是为了在内核启动之后能够判断哪些硬件驱动需要加载,哪些不需要,文件系统有没有问题等,最终使得根分区能顺利加载。在scsi和sata设备上启动,usb启动盘,无盘服务器等都需要initrd来做判断,这样可以提高Linux内核的通用性。

(八)安装内核

由于Linux系统启动时,会从/boot目录下寻找内核文件与init ramdisk,所以需要将内核和initrd拷贝至/boot目录。使用命令:

cp initrd-2.6.29 /boot

cp linux-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29

(九)修改/etc/grub.conf或者/etc/lilo.conf

为了让grub在启动时能提供一项我们自己制作的linux内核的选项,需要修改grub的配置文件/etc/grub.conf。(添加的代码为title My Linux(2.6.29)以下的)

注意:/etc/grub.conf实际上是/boot/grub/grub.conf的一个链接,因此真正的配置文件存在与/boot/grub目录下。

4. linux内核代码用什么编译器编译呢

GNU 牌的 GCC

5. 拿到了linux的内核 应该用什么软件 怎么去编译

1、你可以把linux内核代码放到你的ubuntu或redhat之类的具有linux内核的操作系统里面,然后在你指定的目录里面解压你的内核源码
2、在主目录里面找到Makefile文件,修改里面的“ARCH = ”和“CROSS_COMPILE”,也就是你的编辑器路径,保存退出;
3、输入make menuconfig配置你的内核参数,保存退出;
4、执行make zImage,你会看见屏幕哗啦哗啦的在运行,这是在生成内核zImage文件;
5、进入你的arch/(cpu型号)/root/里面,你会看到zImage文件,这个就是你要的。
以上是最简单的步骤,若想详细了解,在网络里面搜索“linux内核编译”,会得到一大堆结果,记得一般只看文库或者博客里面的文章,因为质量比较好。

若需帮助,请追问!

6. 如何编译Linux内核

编译linux内核步骤:
1、安装内核
如果内核已经安装(/usr/src/目录有linux子目录),跳过。如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安装内核。如果没有安装盘,可以去各linux厂家站点或者www.kernel.org下载。
2、清除从前编译内核时残留的.o 文件和不必要的关联
cd /usr/src/linux
make mrproper
3、配置内核,修改相关参数,请参考其他资料
在图形界面下,make xconfig;字符界面下,make menuconfig。在内核配置菜单中正确设置个内核选项,保存退出
4、正确设置关联文件
make dep
5、编译内核
对于大内核(比如需要SCSI支持),make bzImage
对于小内核,make zImage
6、编译模块
make moles
7、安装模块
make moles_install
8、使用新内核
把/usr/src/linux/arch/i386/boot/目录内新生成的内核文件bzImage/zImage拷贝到/boot目录,然后修改/etc/lilo.conf文件,加一个启动选项,使用新内核bzImage/zImage启动。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告诉lilo缺省使用新内核启动linux ###
append="mem=256M"
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read-only
root=/dev/hda5
保留旧有的启动选项可以保证新内核不能引导的情况,还可以进入linux进行其他操作。保存退出后,不要忘记了最重要的一步,运行/sbin/lilo,使修改生效。
9、重新生成ram磁盘
如果您的系统中的/etc/lilo.conf没有使用了ram磁盘选项initrd,略过。如果您的系统中的/etc/lilo.conf使用了ram磁盘选项initrd,使用mkinitrd initrd-内核版本号,内核版本号命令重新生成ram磁盘文件,例如我的Redhat 6.2:
mkinitrd initrd-2.2.14-5.0 2.2.14-5.0
之后把/etc/lilo.conf中的initrd指向新生成的initrd-2.2.14-5.0文件:
initrd=/boot/initrd-2.2.14-5.0
ram磁盘能使系统性能尽可能的优化,具体参考/usr/src/linux/Documents/initrd.txt文件
10、重新启动,OK!

7. 如何编译内核及制作RPM包

前言

要编译自内核能各种同答案列举:
1 研究习内核源码
2 支持新硬件或者打某项内核功能
3 升级内核更新版本
4 按自要求定制优化内核功能
种种...
折腾需要理由我说面直接进入主题
编译式
编译内核种式kernel.org载选择载需要版本内核源码
:linux-2.6.32-rc1.tar.bz2载内核源码/home/user/目录进入载目录解压压缩

#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2

二 准备编译环境

始前首先确认面软件包已经安装(编译标普华4.0直接全部安装CD3保证条件)
* rpmdevtools
* yum-utils
fedora系统使用命令安装:
#yum install yum-utils rpmdevtools

1. rpmbuild命令工作所需目录树面命令完该操作手建立目录树
命令建立:
#rpmdev-setuptree

命令/usr/src/rpmbuild/目录目录结构(位置没则能前用户目录).

# tree /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
面部rpmbuild环境建立rpm
3. 安装内核源码包需要依赖组件(跳步操作)

su -c 'yum-builddep kernel-.src.rpm'
4.安装内核源码系统默认目录/usr/src/neoshine:

rpm -Uvh kernel-.src.rpm

三 配置内核(config配置文件)

面介绍何解源码包并修改配置重新打包源码
1. 解源码包并打所补丁BUILD目录

cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec

kernel源码找:

/usr/src/neoshine/rpmbuild/BUILD/kernel-/linux-. directory

配置内核源码
1. 进入内核源码:

cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 复制/boot/config*配置文件源码目录,config文件已经配或者其备份kernel配置文件:

cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先检查kernel配置新增选项:

make oldconfig
4. 定制内核功能关闭initrd支持选项执行图形化内核配置工具:

make menuconfig
注:generic setup选项找initial RAM system and RAM disk(initramfs and initrd) support 项取消编译同确保跟文件系统应驱系统所存储器应驱都已经编译内核(否则启系统).

5. .config文件第行改面内容(注意:没行面编译报错)

# i386
6. 拷贝.configSOURCES/:

cp .config ../SOURCES/config-$arch

四 编译新内核

1. 面始准备编译新内核包
打SPEC/kernel.spec

vim SPEC/kernel.spec
改变面行内容定制自内核扩展名(fc10类):

%define buildid .
步新内核rpm包程需要编译内核源码包
使用面命令新内核源码包
rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec

参数说明:bb表示编译二进制包即源码包without debuginfo 表示没调试信息
target=`uname -r`表示应前平台内核包
面命令功执行完BUILD/i686目录新内核安装包

五 安装新内核

rpm -ivh kernel-$ver-$arch.rpm
步操作自安装内核boot目录安装应内核模块/lib/moles/目录并且新内核应grub引导菜单
修改grub引导菜单格式

title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)

注意处要使用uuid指定跟文件系统(能挂载根区导致内核死机)要再加显示相关参数(内核支持应设置看黑黑屏幕)
至禁用initrd新内核配置安装完毕

8. 编译linux内核时,生成.config的方法

怎么编译2.6.18的时候要生成.config,用那个命令不对

9. linux编译内核步骤

一、准备工作
a) 首先,你要有一台PC(这不废话么^_^),装好了Linux。
b) 安装好GCC(这个指的是host gcc,用于编译生成运行于pc机程序的)、make、ncurses等工具。
c) 下载一份纯净的Linux内核源码包,并解压好。

注意,如果你是为当前PC机编译内核,最好使用相应的Linux发行版的源码包。

不过这应该也不是必须的,因为我在我的Fedora 13上(其自带的内核版本是2.6.33.3),就下载了一个标准的内核linux-2.6.32.65.tar.xz,并且顺利的编译安装成功了,上电重启都OK的。不过,我使用的.config配置文件,是Fedora 13自带内核的配置文件,即/lib/moles/`uname -r`/build/.config

d) 如果你是移植Linux到嵌入式系统,则还要再下载安装交叉编译工具链。

例如,你的目标单板CPU可能是arm或mips等cpu,则安装相应的交叉编译工具链。安装后,需要将工具链路径添加到PATH环境变量中。例如,你安装的是arm工具链,那么你在shell中执行类似如下的命令,假如有类似的输出,就说明安装好了。
[root@localhost linux-2.6.33.i686]# arm-linux-gcc --version
arm-linux-gcc (Buildroot 2010.11) 4.3.5
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for ing conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
注:arm的工具链,可以从这里下载:回复“ARM”即可查看。

二、设置编译目标

在配置或编译内核之前,首先要确定目标CPU架构,以及编译时采用什么工具链。这是最最基础的信息,首先要确定的。
如果你是为当前使用的PC机编译内核,则无须设置。
否则的话,就要明确设置。
这里以arm为例,来说明。
有两种设置方法():

a) 修改Makefile
打开内核源码根目录下的Makefile,修改如下两个Makefile变量并保存。
ARCH := arm
CROSS_COMPILE := arm-linux-

注意,这里cross_compile的设置,是假定所用的交叉工具链的gcc程序名称为arm-linux-gcc。如果实际使用的gcc名称是some-thing-else-gcc,则这里照葫芦画瓢填some-thing-else-即可。总之,要省去名称中最后的gcc那3个字母。

b) 每次执行make命令时,都通过命令行参数传入这些信息。
这其实是通过make工具的命令行参数指定变量的值。
例如
配置内核时时,使用
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
编译内核时使用
make ARCH=arm CROSS_COMPILE=arm-linux-

注意,实际上,对于编译PC机内核的情况,虽然用户没有明确设置,但并不是这两项没有配置。因为如果用户没有设置这两项,内核源码顶层Makefile(位于源码根目录下)会通过如下方式生成这两个变量的值。
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/s390x/s390/ -e s/parisc64/parisc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
-e s/sh[234].*/sh/ )
ARCH?= $(SUBARCH)
CROSS_COMPILE ?=

经过上面的代码,ARCH变成了PC编译机的arch,即SUBARCH。因此,如果PC机上uname -m输出的是ix86,则ARCH的值就成了i386。

而CROSS_COMPILE的值,如果没配置,则为空字符串。这样一来所使用的工具链程序的名称,就不再有类似arm-linux-这样的前缀,就相当于使用了PC机上的gcc。

最后再多说两句,ARCH的值还需要再进一步做泛化。因为内核源码的arch目录下,不存在i386这个目录,也没有sparc64这样的目录。

因此顶层makefile中又构造了一个SRCARCH变量,通过如下代码,生成他的值。这样一来,SRCARCH变量,才最终匹配到内核源码arch目录中的某一个架构名。

SRCARCH := $(ARCH)

ifeq ($(ARCH),i386)
SRCARCH := x86
endif

ifeq ($(ARCH),x86_64)
SRCARCH := x86
endif

ifeq ($(ARCH),sparc64)
SRCARCH := sparc
endif

ifeq ($(ARCH),sh64)
SRCARCH := sh
endif

三、配置内核

内核的功能那么多,我们需要哪些部分,每个部分编译成什么形式(编进内核还是编成模块),每个部分的工作参数如何,这些都是可以配置的。因此,在开始编译之前,我们需要构建出一份配置清单,放到内核源码根目录下,命名为.config文件,然后根据此.config文件,编译出我们需要的内核。

但是,内核的配置项太多了,一个一个配,太麻烦了。而且,不同的CPU架构,所能配置的配置项集合,是不一样的。例如,某种CPU的某个功能特性要不要支持的配置项,就是与CPU架构有关的配置项。所以,内核提供了一种简单的配置方法。

以arm为例,具体做法如下。

a) 根据我们的目标CPU架构,从内核源码arch/arm/configs目录下,找一个与目标系统最接近的配置文件(例如s3c2410_defconfig),拷贝到内核源码根目录下,命名为.config。

注意,如果你是为当前PC机编译内核,最好拷贝如下文件到内核源码根目录下,做为初始配置文件。这个文件,是PC机当前运行的内核编译时使用的配置文件。
/lib/moles/`uname -r`/build/.config
这里顺便多说两句,PC机内核的配置文件,选择的功能真是多。不编不知道,一编才知道。Linux发行方这样做的目的,可能是想让所发行的Linux能够满足用户的各种需求吧。

b) 执行make menuconfig对此配置做一些需要的修改,退出时选择保存,就将新的配置更新到.config文件中了。

10. 如何编译一个内核

一、 下载新内核的源代码

目前,在Internet上提供Linux源代码的站点有很多,读者可以选择一个速度较快的站点下载。笔者是从站点www.kernelnotes.org上下载了Linux的最新开发版内核2.3.14的源代码,全部代码被压缩到一个名叫Linux-2.3.14.tar.gz的文件中。

二、 释放内核源代码

由于源代码放在一个压缩文件中,因此在配置内核之前,要先将源代码释放到指定的目录下。首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-2.2.5的子目录。该目录下存放着内核2.2.5的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中。

(一)、用tar命令释放内核源代码

# cd /usr/src

# tar zxvf Linux-2.3.14.tar.gz

文件释放成功后,在/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.14的全部源代码。

(二)、将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。

# cd /usr/include

# rm -Rf asm linux

# ln -s /usr/src/linux/include/asm-i386 asm

# ln -s /usr/src/linux/include/linux linux

# ln -s /usr/src/linux/include/scsi scsi

(三)、删除源代码目录中残留的.o文件和其它从属文件。

# cd /usr/src/linux

# make mrproper

三、 配置内核

(一)、启动内核配置程序。

# cd /usr/src/linux

# make config

除了上面的命令,用户还可以使用make menuconfig命令启动一个菜单模式的配置界面。如果用户安装了X window系统,还可以执行make xconfig命令启动X window下的内核配置程序。

(二)、配置内核

Linux的
内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以回答"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内
核;"m"表示将相应特性的支持或设备驱动程序编译成可加载 模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序
的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。

1、Code maturity level options(代码成熟度选项)

Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) [N/y/?]
如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。

1、 Processor type and features(处理器类型和特色)

(1)、Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX] 选择处理器类型,缺省为Ppro/6x86MX。

(2)、Maximum Physical Memory (1GB, 2GB) [1GB] 内核支持的最大内存数,缺省为1G。

(3)、Math emulation (CONFIG_MATH_EMULATION) [N/y/?] 协处理器仿真,缺省为不仿真。

(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]

选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供X server使用。

(5)、Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] 选择“y”,内核将支持对称多处理器。

2、 Loadable mole support(可加载模块支持)

(1)、Enable loadable mole support (CONFIG_MODULES) [Y/n/?] 选择“y”,内核将支持加载模块。

(2)、Kernel mole loader (CONFIG_KMOD) [N/y/?] 选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。

3、 General setup(一般设置)

(1)、Networking support (CONFIG_NET) [Y/n/?] 该选项设置是否在内核中提供网络支持。

(2)、PCI support (CONFIG_PCI) [Y/n/?] 该选项设置是否在内核中提供PCI支持。

(3)、PCI access mode (BIOS, Direct, Any) [Any] 该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。

(4)Parallel port support (CONFIG_PARPORT) [N/y/m/?] 选择“y”,内核将支持平行口。

4、 Plug and Play configuration(即插即用设备支持)

(1)、Plug and Play support (CONFIG_PNP) [Y/m/n/?] 选择“y”,内核将自动配置即插即用设备。

(2)、ISA Plug and Play support (CONFIG_ISAPNP) [Y/m/n/?] 选择“y”,内核将自动配置基于ISA总线的即插即用设备。

5、 Block devices(块设备)

(1)、Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?] 选择“y”,内核将提供对软盘的支持。

(2)、Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) [Y/m/n/?] 选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。

6、 Networking options(网络选项)

(1)、Packet socket (CONFIG_PACKET) [Y/m/n/?] 选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。

(2)、Network firewalls (CONFIG_FIREWALL) [N/y/?] 选择“y”,内核将支持防火墙。

(3)、TCP/IP networking (CONFIG_INET) [Y/n/?] 选择“y”,内核将支持TCP/IP协议。

(4)The IPX protocol (CONFIG_IPX) [N/y/m/?] 选择“y”,内核将支持IPX协议。

(5)、Appletalk DDP (CONFIG_ATALK) [N/y/m/?] 选择“y”,内核将支持Appletalk DDP协议。

8、SCSI support(SCSI支持)

如果用户要使用SCSI设备,可配置相应选项。

9、Network device support(网络设备支持)

Network device support (CONFIG_NETDEVICES) [Y/n/?] 选择“y”,内核将提供对网络驱动程序的支持。

10、Ethernet (10 or 100Mbit)(10M或100M以太网)

在该项设置中,系统提供了许多网卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(Wireless LAN)的支持。

11、Character devices(字符设备)

(1)、Virtual terminal (CONFIG_VT) [Y/n/?] 选择“y”,内核将支持虚拟终端。

(2)、Support for console on virtual terminal (CONFIG_VT_CONSOLE) [Y/n/?]

选择“y”,内核可将一个虚拟终端用作系统控制台。

(3)、Standard/generic (mb) serial support (CONFIG_SERIAL) [Y/m/n/?]

选择“y”,内核将支持串行口。

(4)、Support for console on serial port (CONFIG_SERIAL_CONSOLE) [N/y/?]

选择“y”,内核可将一个串行口用作系统控制台。

12、Mice(鼠标)

PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE) [Y/n/?] 如果用户使用的是PS/2鼠标,则该选项应该选择“y”。

13、Filesystems(文件系统)

(1)、Quota support (CONFIG_QUOTA) [N/y/?] 选择“y”,内核将支持磁盘限额。

(2)、Kernel automounter support (CONFIG_AUTOFS_FS) [Y/m/n/?] 选择“y”,内核将提供对automounter的支持,使系统在启动时自动 mount远程文件系统。

(3)、DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] 选择“y”,内核将支持DOS FAT文件系统。

(4)、ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/m/n/?]

选择“y”,内核将支持ISO 9660 CDROM文件系统。

(5)、NTFS filesystem support (read only) (CONFIG_NTFS_FS) [N/y/m/?]

选择“y”,用户就可以以只读方式访问NTFS文件系统。

(6)、/proc filesystem support (CONFIG_PROC_FS) [Y/n/?] /proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。

(7)、Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] EXT2是Linux的标准文件系统,该项也必须选择“y”。

14、Network File Systems(网络文件系统)

(1)、NFS filesystem support (CONFIG_NFS_FS) [Y/m/n/?] 选择“y”,内核将支持NFS文件系统。

(2)、SMB filesystem support (to mount WfW shares etc.) (CONFIG_SMB_FS)

选择“y”,内核将支持SMB文件系统。

(3)、NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS)

选择“y”,内核将支持NCP文件系统。

15、Partition Types(分区类型)

该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。

16、Console drivers(控制台驱动)

VGA text console (CONFIG_VGA_CONSOLE) [Y/n/?] 选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。

17、Sound(声音)

Sound card support (CONFIG_SOUND) [N/y/m/?] 选择“y”,内核就可提供对声卡的支持。

18、Kernel hacking(内核监视)

Magic SysRq key (CONFIG_MAGIC_SYSRQ) [N/y/?] 选择“y”,用户就可以对系统进行部分控制。一般情况下选择“n”。

四、 编译内核

(一)、建立编译时所需的从属文件

# cd /usr/src/linux

# make dep

(二)、清除内核编译的目标文件

# make clean

(三)、编译内核

# make zImage

内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用make bzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。

(四)、编译可加载模块

如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。

# make moles

# make modelus_install

编译成功后,系统会在/lib/moles目录下生成一个2.3.14子目录,里面存放着新内核的所有可加载模块。

五、 启动新内核

(一)、将新内核和System.map文件拷贝到/boot目录下

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.3.14

# cp /usr/src/linux/System.map /boot/System.map-2.3.14

# cd /boot

# rm -f System.map

# ln -s System.map-2.3.14 System.map

(二)、配置/etc/lilo.conf文件。在该文件中加入下面几行:

default=linux-2.3.14

image=/boot/vmlinuz-2.3.14

label=linux-2.3.14

root=/dev/hda1

read-only

(三)、使新配置生效

# /sbin/lilo

(四)、重新启动系统

# /sbin/reboot

新内核如果不能正常启动,用户可以在LILO:提示符下启动旧内核。然后查出故障原因,重新编译新内核即可。

阅读全文

与编译内核生成器相关的资料

热点内容
钓鱼黑坑下什么app 浏览:938
windows软件编译为linux程序 浏览:270
方舟编译支持应用 浏览:422
华为云服务器可以远程别的电脑吗 浏览:7
单片机百度百科 浏览:230
安卓回声效果发短信怎么弄 浏览:166
windows7文件夹属性没有位置 浏览:949
单片机632什么意思 浏览:119
奢侈品哪个app买最便宜 浏览:665
编译原理意思 浏览:329
哪里下载带有加密版志愿二维码 浏览:393
python读串口 浏览:171
Pdf修改文本 浏览:660
电力行业纵向加密技术原理 浏览:49
活塞压缩机基础 浏览:706
么解手机的压缩包 浏览:767
如何开通加密货币 浏览:148
北京修理服务器云主机 浏览:204
python程序设计主要思路 浏览:897
jar包通过如何在服务器运行 浏览:378