LInux内核编译

来源:互联网 发布:最优化方法中基变量 编辑:程序博客网 时间:2024/06/10 19:21

Linux内核学习的前提就是必须要有内核源代码,对于源代码,你可以去kernel.org去下载,也可以使用git进行获取。推荐使用git,这样以后一个命令git pull就可以更新内核。下面是Linux的内核源代码树:

 

配置以及编译内核:在编译内核之前,可以根据需要进行裁剪和优化。有多种方法可以编译内核。

基于文本命令行的工具

$make config

这个工具一个接一个的遍历所有选项,用户可以根据自己的需要进行配置。选项配置通常有boolean和tristates两种,前者的可选范围为yes或者no,后者的可选范围为yes,no或者module。这个过程会很漫长,除非你闲的蛋疼或者女朋友喊你逛街,否则不要浪费自己的时间。

arch:结构相关的代码

block:块I/O层

crypto:和加密相关的代码

drivers:设备驱动

firmware:需要特定驱动的设备固件

fs:虚拟文件层以及各种文件系统

include:内核头文件

init:内核启动以及初始化

ipc:进程间通信

kernel:子系统,包括调度器等

lib:辅助性代码

mm:内存管理子系统以及虚拟内存管理

net:网络子系统

samples:示例代码

scripts:构建内核使用的脚本

security:安全模块

sound:音频子系统

usr:用户空间代码,如initramfs

tools:Linux开发的工具

virt:虚拟设备

 

基于ncurses库或者基于gtk+的图形工具

$make menuconfig 或者 $make gconfig

 

内核的配置选项组织成目录形式,你可以按照目录来寻找自己感兴趣的配置选项。

 

当然,也可以采用内核的默认配置。

$make defconfig

 

这些配置选项存在在内核源代码树根目录的一个名字为.config的文件中。你也可以直接在这个文件中修改来改变配置选项。当修改的配置文件或者使用一个以前的配置文件时,需要使用下面命令(每次构建内核时都要输入下面的命令)

$make oldconfig


如果设置了配置选项CONFIG_KDCONFIG_PROC,那么当前的配置会保存在/proc/config.gz文件中,

 

配置完成后,即可对内核进行编译。

$make

你也可以输入make -jn来进行并行编译提高速度,其中n值推荐设置为2*CPU数目。

 

编译成功后即可安装内核,只需将内核镜像拷贝到/boot,并修改/boo/grub/grub.conf,为新加入的内核添加启动项。而模块的安装相当简单,一条命令就搞定了。

 

原创粉丝点击