ubuntu 下面编译内核
1. 安装编译内核环境工具
<pre name="code" class="html">sudo apt-get install build-essential kernel-package libncurses5-dev libqt3-headers build-essential (基本的编程库(gcc, make 等) kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具) libncurses5-dev (meke menuconfig 要调用的) libqt3-headers (make xconfig 要调用的)
2.下载特定linux内核源代码
http://www.kernel.org我下载的是linux-3.17.4.tar
3.将linux-3.17.4.tar解压到你自己的目录下,我的是mywork目录
tar -xvf linux-3.17.4.tar
4.内核 配置与编译
Linux 内核 具 有 可定制 的 优 点, 具 体 步骤
4.1 make distclean //清除临时文件,配置文件和中间文件
其他几个清除命令:
make clean :remove most generated files but keep the config make mrproper:remove all generated files + config files make distclean:mrproper + remove editor backup and patch files
4.2配置内核选项
确 定 目标 系统 的 软 硬 件 配置 情况 , 比 如CPU 的类型 、 网 卡 的 型 号,所 需 支持 的 网络协议 等
主要有以下几个命令
make config : 基于 文 本 模 式的交 互 式 配置 。 make menuconfig : 基于 文 本 模 式的 菜 单 型 配置 。 ( 推荐 使用 )
make oldconfig :使用已有的 配置 文 件 (.config ) , 但 是 会询 问 新增 的 配置 选项
make xconfig :图 形 化 的 配置( 需 安 装 图 形 化 系统 )其中make menuconfig是最常用的内核配置方式
使用方法如下:
1 、使用 方向键 在 各 选项 间 移 动 ;
2 、使用“Enter” 键 进 入 下一 层 选 单 ; 每 个 选项上的 高亮字母 是 键盘 快 捷方 式,使用 它 可以快速 地 到 达想 要 设置 的 选 单 项
3 、在 括 号 中 按“y” 将 这 个 项 目 编译 进 内核 中 , 按“m” 编译为 模块 , 按“n” 为 不 选择 ( 按 空 格键也可 在 编译 进 内核、 编译为模块和 不 编译 三 者间 进 行 切换 ) , 按“h” 将 显 示 这 个 选项 的 帮助信息 , 按“Esc” 键 将 返 回 到 上 层 选 单
备注:配置内核一般都是在已有的内核的配置基础上面进行配置,Linux 内核 提供 了一系 列 可 供 参考 的内核 配置 文 件,位 于arch/$cpu/configs目录下面
这里我们为了保证编译的内核可用,使用当前ubuntu系统本身的配置项进行编译,本身的配置项在/usr/src/linux-headers-2.6.32-21-generic/.config下面,
我们把它拷贝到当前目录
cp /usr/src/linux-headers-2.6.32-21-generic/.config ./执行make menuconfig开始配置内核,这里我们不需要修改任何配置,我们直接选择“load”,然后选择“save”
5.、 编译 内核
make zImage
make bzImage
区 别 :在X86 平台 ,zImage 只 能 用 于 小 于512K 的内核
如 需 获 取 详 细 编译 信息, 可 使用:
make zImage V=1
make bzImage V=1
编译 好 的内核位 于arch/<cpu>/boot/ 目录下 下
这里我们可以直接执行make -j4编译,加-j4,双核并行编译,速度快很多
编译好的内核在arch/x86/bzImage下面
6、编译 内核 模块、
make modules7、安装内核模块
make modules_install安装好的内核模块在/lib/modules目录下面,我这里会出现3.17.4这样一个新目录
8、制作init ramdisk
一般是用mkinitrd,而在Ubuntu/Debian下是用mkintramfs.
它们的用法稍微有些不一样,如下所示:
sudo mkinitrd initrd.img_3.17.4 3.17.4 //后面这个3.17.4是和你之前编译的内核模块对应的,位于/lib/modules目录下面
sudo mkinitramfs -o /boot/initrd.img_3.17.4
其中2.6.26为/lib/modules下的目录名称.
9、执行sudo make install系统自动更新启动(ubuntu平台)
备注:其他平台执行如下命令
1 、cp ./arch/x86/boot/bzImage /boot/vmlinuz-$version 2 、cp <span style="color: rgb(102, 102, 102); font-family: 宋体, Arial; font-size: 15.555556297302246px; line-height: 25.98958396911621px; background-color: rgb(240, 240, 240);">initrd.img_3.17.4</span> /boot/ 3 、 修改/etc/grub.conf 或者 /etc/lilo.conf
10、reboot重启系统
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。