linux内核编译(3.0.1版本)图文解说

原创 2016年09月30日 20:18:07

本文参考:http://blog.chinaunix.net/uid-24782829-id-3211008.html

一、编译环境

ubuntu 10.04.1,要编译的内核源码版本3.0.1

二、下载并解压源代码

首先从linux内核的官网www.kernel.org把源代码下载下来。
也可以把下面的地址复制进迅雷等下载工具进行下载:http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.1.tar.bz2

先将下载的linux-3.0.1.tar.bz2复制进/usr/src/目录下,命令如下:
我们这里假定你存放的位置是文档(Documents)(可以在资源管理器的地址栏右键-复制地址,再到终端按Ctrl+Shift+V粘贴):

cd Documents
sudo cp linux-3.0.1.tar.bz2 /usr/src
Password:输入密码(光标不会移动,不用担心,密码正常输入)

检查是否复制成功:
cd /usr/src
ls
//这里会列出文件以及文件夹,正常情况下应该会有linux-3.0.1这个文件

解压源码:
sudo tar zxvf linux-3.0.1.tar.bz2

检查是否解压成功:

ls
//这里会列出linux-3.0.1 linux-3.0.1.tar.bz2

三、构建编译环境(此步骤最好在联网条件下进行,不然有一定几率会报错)

现在我们安装基本的编译器套件:
sudo apr-get install build-essential gcc g++ gdb make

四、安装ncurses库

这里使用Ubuntu系统,因为系统自带的ncurses库在支持make menuconfig的时候会出错,所以,依然要安装ncurses库,这里我们从源码安装。首先去ncurses官网http://ftp.gnu.org/pub/gnu/ncurses/ 上下载源码。这里我们下载5.9版本,并通过简单的安装方式.configure 和make、make install方式安装。
假定你现在把ncurses-5.9.tar.gz.存放在文档(Documents)下面:

cd Documents
sudo tar zxvf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure
sudo make
sudo make install

编译过程可能会报错,我们先忽略它。

五、配置内核

一切准备工作做完,现在我们就可以配置内核了,这里我们使用make menuconfig方式。
sudo /usr/src/linux-3.0.1
sudo make menuconfig

在使用make menuconfig这个命令后,会出现如下的字符界面,我们就可以在这个界面上对内核进行配置。但是如果这不是你第一次配置这个内核,那么请先运行:make mrproper来清除以前的配置,回到默认配置,然后再运行:make menuconfig。
如果你不是第一次配置内核,请使用下面的命令:

sudo make mrproper
sudo make menuconfig

如果你是Intel的CPU,则无需设置,直接 方向键→ 然后 Enter 退出。如果是AMD的CPU,请查看本文参考的文章,里面有详细描述。
cpu的设置在linux内核编译过程中,不是必需的,即使保持默认的386选项(我们刚才把它改成了AMD),内核也能正常运行,只不过运行慢一些而已。

六、编译内核

对内核的配置完成之后,现在就可以开始编译内核了,只需要一个简单的make命令即可,之后我们就只能慢慢等,直到编译完成,在我的电脑上,大概用了25分钟。下图是运行make后的部分输出。
sudo make

七、安装内核

编译完成之后,我们需要安装内核,主要分为如下几步:

安装模块

安装模块,对于内核来说,每一个内核版本有自己的模块目录,默认在/lib/modules/内核版本号这个目录下,make modules_install会创建对应的目录,并把对应的模块文件拷贝过去。注意,这一步必须要在编译过内核再做。
sudo make modules_install

拷贝bzImage文件

bzImage文件是内核映像文件,是启动内核所必需的,我们应当把它拷贝到/boot目录下。,按照一般内核映像文件的命名方式为它改名为vmlinuz-3.0.1。
sudo cp /usr/src/linux-3.0.1/arch/i386/boot/bzImage ./
如果上面的命令报错的话,可以在CP后面空一格添加 -r 空格后面的路径。

cd /boot
sudo mv bzImage vmlinuz-3.0.1

制作initrd文件

initrd文件命名为initrd.img-3.0.1.
sudo mkinitramfs -o ./initrd.img-3.0.1 /lib/modules/3.0.1

修改grub启动项

要能引导起我们的新系统,需要更改grub配置,让启动项显示出来可以选择内核版本。
sudo gedit /etc/default/grub
在文档编辑器里面注释掉:GRUB_HIDDEN_TIMEOUT(那一行字前面添加一个“ # ”)
再修改:GRUB_HIDDEN_TIMEOUT= 秒数
默认为十秒。
这里写图片描述

更新grub

sudo update-grub

这里写图片描述

重启

在引导项菜单里面选择我们新的内核3.0.1,进入系统。
不出意外的话,运行uname -r,会发现,内核版本已经是3.0.1了。
这里写图片描述

uname -r
或者uname -a也可以查看。
uname -a

这里写图片描述

linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说

原文地址:http://blog.chinaunix.net/uid-24782829-id-3211008.html linux内核编程4部曲之一:linux内核编译(2.6.12版本...

linux内核编译与系统调用的添加(适合3.0及以后版本内核)

PRP报告还没怎么写,竟就搞起了奇葩的操作系统,真是够淡定的。而操作系统又是如此抽象,一个系统调用,每次都要刷一遍ubuntu,每次都要编译一次内核,每次编译都是万分无聊的一两个小时,还有编译到最后报...

Linux内核编译详解

  • 2011年12月04日 12:28
  • 44KB
  • 下载

Linux内核编译

  • 2012年04月13日 20:02
  • 135KB
  • 下载

linux内核编译的实质

广工 如果有意转载请标明来源:http://blog.csdn.net/shiyi_2012/article/details/7396785 当你解压一个linux内核源代码的时候,里面没有vml...

浅谈Linux内核编译过程

  • 2012年10月23日 19:03
  • 376KB
  • 下载

linux内核编译文档

  • 2014年08月30日 11:27
  • 23KB
  • 下载

linux内核编译步骤(详细全过程)

环境: 电脑操作系统:ubuntu10.04 。 linux内核版本:linux-3.12.6 内核源码下载地址:www.kernel.org 我就按照步骤来,都是按照细小步骤来。 ...
  • beckdon
  • beckdon
  • 2014年05月08日 10:14
  • 325

Linux内核编译配置选项简介

  • 2016年04月29日 14:45
  • 616KB
  • 下载

linux内核编译傻瓜教程

  • 2010年03月08日 21:19
  • 1.03MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux内核编译(3.0.1版本)图文解说
举报原因:
原因补充:

(最多只允许输入30个字)