全部博文(2759)
分类: LINUX
2013-09-29 13:26:29
原文地址:linux内核编译步骤 作者:double_lq
整体上分为三步:
1、配置内核(就是确定哪些功能要保留在编译好的内核中,哪些功能要从内核中删除),生成一个编译配置文件.config
2、编译内核。
3、 安装内核。
1、到下载源码包 在这里我们假设下到的源码包为linux-3.2.1.tar.gz
2、解压压缩包,并移动到/usr/src下$mv linux-3.2.1 /usr/src
进入/usr/src/就可以发现已经有3.2.1这个文件夹了,编译内核是在这个文件下面进行的。也就是说你要进入到这个文件夹下面才可以进行之后的操作哦。
4、内核模块配置,可以选择新的功能 --例如支持NTFS ,无线网络,蓝牙等等
有几种方式可以进行界面选择:
$make config(文本的配置方式,需要用户自己写配置文件)
$make menuconfig(文本选单的配置方式,在有字符终端下才能使用)
$make xconfig(图形窗口模式的配置方式,必须支持Xwindow下才能使用)
--我认为第二个比较方便
对应每一项相应的配置时,有三种选择:
Y--该模块编译进内核
N--该模块不编译进内核
M--该模块编译成可加载内核模块
$make bzImage
其实可以是make zImage的,但是你要确保您所编译的这个新内核在640K之下,您就可以使用make zImage,如果比640K大,那就要用make bzImage,您要说没编译出来咋知道多大呢?我的看法是建议用bzImage,因为我编译出来的内核一般都是800~900K左右。
如内核现在已经编译好了,这时候系统会有个提示编译后的bzImage放到哪里去了,提示最后几行,已经告诉了您的新编译出的核心位置啊,一般都在这里/usr/src/linux-3.2.1/arch/i386/boot/,这时候您要做的就是把它放到/boot目录底下去哦,不然系统可没法启动的 …
$cp /usr/src/linux-3.2.1/arch/i386/boot/bzImage /boot/vmlinuz-3.2.1 这里好像可以不手动复制,系统最后也会在boot下面产生一个吧。
(这里其实已经把bzImage更名为vmlinuz-3.2.1,待会在/boot/grub/grub.conf里就指定这个新内核)
6 编译模块
$make modules(耗费时间取决于您所选择编译为modules的数量)
大概20分钟吧,这个步骤就是把您在make menuconfig里边所选择为M的东东,全部编译成模块.
7 安装模块
$make modules_install
8 安装核心
$make install
9 重启,就会看到还有一个问题,在grub启动的选择里面有最新的版本的内核,还有一个以前的内核版本,我尝试过了,都可以进去。