个人工具
登录
查看“KernelBuildpackageHowto”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“KernelBuildpackageHowto”的源代码
来自Ubuntu中文
←
KernelBuildpackageHowto
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 内核编译指南 == === 介绍 === 本页谈论如何重建 Ubuntu Linux 内核包。这是自己编译 Ubuntu 内核最直接的方法,但它也是相当重量级的方法。如果你打算做一些内核开发或调试的话,你也许会更高兴地按照 [http://www.ubuntu.org.cn/support/documentation/doc/KernelBuildpackageDetailedHowto 本指南] 来做。它更复杂一点但也更灵活。 === 安装 === 我们将在你用户目录中构建“Linux”目录下的任何东西(或是你想调用的)。下面的步骤必须做为根用户(通过前面用"sudo")来运行。 <pre><nowiki> $ sudo apt-get build-dep linux-source-2.6.8.1 $ mkdir ~/linux $ cd ~/linux $ apt-get source linux-source-2.6.8.1 $ cd linux-source-2.6.8.1-2.6.8.1 </nowiki></pre> 注意:这种方式需要很大的磁盘空间,尤其是在你想要一些特色时(看下面)。在实现全部特色时,需要1.6G。它可能在编译期间甚至需要更多的磁盘空间。 === 配置 === 到这一步,你也许想改变你的内核配置。在 debian/config/ARCH/ (比如我当前的内核是“linux-image-2.6.8.1-3-686”,那么我将编辑debian/config/i386/686)目录中修改相应的文件。 你可能也想删除其它那些你不关心的配置。或者至少将它们移到另一个目录中。否则,你将从头构建每一个--这是一个非常耗时的过程。下面的示例就是就是除了686之外,不构建任何特色。 <pre><nowiki> $ cd debian/config/i386 $ mkdir disabled $ mv * disabled $ mv disabled/686 . </nowiki></pre> === 构建 === 现在源已经被安装和配置好了,构建它。如果你不对上述特色进行限制的话,它需要花费相当长的时间(在我的1Ghz的本本上花了大约七小时)。 -B 是说只构建依赖结构的两进制文件,-uc 和 -us 是指这些文件不能被加密,-rfakerroot 允许你作为一般(非根)用户去做任何事。 <pre><nowiki> $ cd ~/linux/linux-source-2.6.8.1-2.6.8.1 $ dpkg-buildpackage -B -uc -us -rfakeroot </nowiki></pre> === 安装 === ==== 现在安装新的包 ==== <pre><nowiki> $ cd ~/linux $ sudo dpkg -i linux/linux-image-2.6.8.1-3-686_2.6.8.1-16_i686.deb </nowiki></pre> ==== 构建链接 ==== 如果你打算构建一些额外的 2.6 驱动,它们可能要求从 /lib/modues 链接到构建环境里。你需要手动设置它们。当然用你的用户名重置 USER,否则请确实指定你用来构建包的 Linux 目录的绝对路径。 <pre><nowiki> $ sudo ln -s /home/USER/linux/linux-source-2.6.8.1-2.6.8.1/debian/build/build-686 /lib/modules/2.6.8.1-3-686/build $ sudo ln -s /home/USER/linux/linux-source-2.6.8.1-2.6.8.1/debian/build/build-686 /lib/modules/2.6.8.1-3-686/source </nowiki></pre> ==== 启动引导 ==== 你将设置你的启动引导,就象 [http://www.ubuntulinux.org/wiki/KernelCompileHowto KernelCompileHowto] 中启动引导那节所建议的那样。 ==== 重启 ==== 然后重启计算机! === 问题 === 什么是修订版本号?当用 make-kpkg 构建时,你可以有 --revision=custom.xx 来创建你们自定义内核修订版本。 ---- 通过这种方式怎样处理修订版本? 怎样处理ABI改变? --mukesh agrawal, Sat, 14 May 2005 19:28:29 +0100 我尝试按上面的介绍来构建内核。但内核有一些 ABI 的改变(我使内核的环回块设备支持无效,以便我可以建构 loop-aes )。构建系统显示下列错误: "ABI has changed! Refusing to continue; please update the ABINAME accordingly. Differences:" “ABI 被改动!不能继续;请更新相应的ABINAME。不同之处:” 但没有给出任何的关于在哪里和怎样改动 ABINAME 。我试了很多似乎是最明显的地方(编辑debian/abi/<kernel-version>/abiname),但编辑之事对编译系统无效。 编辑 .config --mukesh agrawal, Sat, 14 May 2005 19:34:19 +0100 就我所知,该处理过程并非让你在构建树中运行 make config 。而是建议在你自己的树中作近似处理,然后拷贝并覆盖 .config 文件?(手动编辑 .config 看上去并不是好的办法) 构建处理 --mukesh agrawal, Sat, 14 May 2005 19:36:40 +0100 该构建过程总是在构建之前清理树的。有人能对该效果进行确认和添加记录吗?因为构建 Ubuntu 的 .config 文件的时间相当长,它对于你在构建前预先 知道如何如你所愿地得到你的源和 .config 文件来说是十分有用的。本文档也提示了这一点,说该过程是“重量级的”,但我想明确地说明这一点也将是有帮 助的。 [[Category:系统]]
返回至
KernelBuildpackageHowto
。