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 modules

7、安装内核模块

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重启系统

时间: 2025-01-22 19:27:05

ubuntu 下面编译内核的相关文章

ubuntu 下编译内核

目的: 1. 练习.网上有很多类似的文章可供参考. 2. 为写qemu的watchdog驱动练手. 有朋友问make的 watchdog驱动 需要什么准备,所以写这个blog. 环境: ubuntu 12.04.4 耗时(基于熟悉linux环境和操作系统的条件下): 1. make 时间 大于1个小时 过程: 1.安装编译内核所需要的软件 $ apt-get install build-essential kernel-package libncurses5-dev 2.下载内核源码 先查看li

UBUNTU环境编译内核

1.编译的环境配置和库需要  编译需要最起码的GCC.make.和root权限,库依赖需要ncurses,安装ncurses命令如下:sudo  apt-get install build-essential kernel-package   libncurses5-dev2.为了证明内核更改,需要自己先查看内核版本:uname -r3.从www.kernel.org下载最新最新内核.4.将下载好的内核解压后进入[email protected]:~$ cd linux-3.9.2/5.使用ma

ubuntu下编译内核驱动。

目的: 1. 驱动热身.网上有很多类似的文章可供参考. 2. 在操作系统中, 编写这个设备的驱动. 3. 为写qemu的watchdog驱动练手. 有朋友问make的 watchdog驱动 需要什么准备,所以写这个blog. 环境: ubuntu 12.04.4 热身: 首先编写一个简单的 hello world驱动. 耗时(基于熟悉linux环境和操作系统的条件下): 1. 安装操作系统 30-60分钟. 2. 配置操作系统 30分钟.主要是配置中文书法.无其他特殊的配置. 3. 代码编写运行

Ubuntu下编译3.0.4内核

Ubuntu下编译3.0.4内核 Linux内核3.0版本发布已有一段时间了,不知道这个版本号大跃进的内核是否好用.目前各个发行版的linux还仍未采用3.0的内核,因此可以自己动手编译内核来感受一下!趁着这次编译内核的机会可以再熟悉一下编译内核的步骤. 1.下载并解压内核到任意目录 从源码官网下载最新的内核源码3.0.4,可以解压至任意目录,我放在主目录下: 1 ~$ tar xjvf linux-3.0.4.tar.bz2 2.配置内核 对内核进行配置是为了得到内核配置文件.config.通

Ubuntu下载编译Linux内核。

1.安装git工具 2.到官网下载linux内核https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git,这个地址不是很好用 在用下面这个 git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git http://vger.kernel.org/vger-lists.html#linux-kernel这个是讨论Linux驱动的邮件组 3.

Linux 编译内核

编译内核步骤: 1.先查看自己OS使用的内核版本 [email protected]:~$ uname -r4.4.0-51-generic[email protected]:~$ 2.如果安装系统时,自动安装了源码.在 /usr/src 目录下有对应的使用的版本目录(ubuntu安装完一般没有源码需要自己下载).如下: 后缀generic表示通用版. [email protected]:/usr/src$ lslinux-headers-4.4.0-21  linux-headers-4.4.

debian7编译内核

第一个步骤“配置内核”. 在这里,我比较建议在发行版默认的config的基础上再进行配置,这样 配置出的内核和发行版本身才会有更好的相容性.比如可以在运行“make menuconfig”之前执行命令“cp /boot/config-2.6.35-24-generic  .config”,或者在menuconfig里先把/boot/config-2.6.35-24-generic load进来. 第二个步骤是编译内核并打包的过程.通常我们可以这样下命令: make-kpkg  --initrd

给虚拟机中的ubuntu安装新内核

主机操作系统版本:Windows 10虚拟机版本:Workstation 12 Pro虚拟机操作系统:Ubuntu 14.04Linux内核:3.13.0gcc版本:4.8.2 最近学习linux内核,不少比较经典的书籍都是以2.6.x源码进行讲解的.所以打算在linux虚拟机中安装一个2.6.36的内核.步骤如下: (一)下载源码        内核下载官网:www.kernel.org        下载linux-2.6.36.tar.gz并解压到/usr/src目录下        进入

linux源码升级编译内核

内核源码更新内核(以linux内核4.11.7为例子) 1. 内核更新前的工作准备 a. 系统:ubuntu16.04的Desktop版本,内核为linux-4.8.0: b. 虚拟机VMware Workstation Pro 12,并安装上述的ubuntu版本系统: c. 配置好相应的ubuntu16.04的基本操作,包括安装vim,nfs等必要包: d. 在http://www.kernel.org上下载最新的内核源码包,本文使用的为当时最新的内核源码包linux-4.11.7.tar.x