科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何编译一个操作系统内核-Ubuntu方式 (1)

如何编译一个操作系统内核-Ubuntu方式 (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

每一个Linux发行版都有自己专门的工具去构建自定义的内核. 本文主要介绍在Ubuntu平台上编译内核, 如何从www.kernel.org(也叫vanilla kernel)获得最新且未改动的内核源代码来构建一个自定义的内核

作者:赛迪网技术社区 来源:赛迪网技术社区 2007年10月23日

关键字: 内核 Ubuntu 编译 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

每一个Linux发行版都有自己专门的工具去构建自定义的内核. 本文主要介绍在Ubuntu平台上编译内核, 如何从www.kernel.org(也叫vanilla kernel)获得最新且未改动的内核源代码来构建一个自定义的内核, 这样你可以使用自己的内核而不是发行版的内核, 另外也介绍了如何给内核打补丁, 从而方便增加新的功能。

下面的工作我都在Ubuntu 6.10 Server ("Edgy Eft")和Ubuntu 6.06 Desktop ("Dapper Drake")上经过了测试。

我想首先要说的是文章中构建自定义内核的方式不是唯一的, 还有许多其它的方式, 这不过是我习惯的方式. 我不能保证使用后不会出现任何问题.

1. 预备工作

我推荐使用root用户执行下面所有的步骤. 如果你还没有创建root登陆口令, 请运行下面的命令:

sudo passwd root

然后, 以root身份登陆:

su

如果你想使用一般用户来替代root用户, 记住在本文所有命令前输入sudo, 比如当我运行:

apt-get update

你需要运行下面的命令来替代:

sudo apt-get update

1.1 Ubuntu 6.10上的/bin/sh ("Edgy Eft")

在Ubuntu 6.10, /bin/sh缺省是一个链接到/bin/dash的字符链接. 当你编译软件源代码的时候, /bin/dash似乎还存在问题. 至少我已经遇到了一些问题. 所以我把/bin/sh链接到了/bin/bash.

如果你使用Ubuntu 6.10, 现在你可以运行:

rm -f /bin/sh
ln -s /bin/bash /bin/sh

2 安装必需的软件包 (为内核编译做准备),首先我们升级软件(包)库:

apt-get update

然后我们安装所有需要的软件包:

apt-get install kernel-package libncurses5-dev fakeroot wget bzip2

3 下载内核源代码

接下来我们下载需要的内核到/usr/src目录(去www.kernel.org网站下载你需要的内核版本, 比如. linux-2.6.18.1tar.bz2(你可以从这里下载所有的2.6内核: http://www.kernel.org/pub/linux/kernel/v2.6/). 然后下载到/usr/src目录:cd /usr/src。wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2

然后解压内核源代码, 创建一个指向内核源代码目录的linux字符链接:

tar xjf linux-2.6.18.1.tar.bz2
ln -s linux-2.6.18.1 linux
cd /usr/src/linux
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章