Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码
创始人
2024-03-01 15:01:37
0

问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核。那么在Debian或Ubuntu上有什么可行的方法来下载完整的内核源码呢?

在给你的Linux安装完整内核源码之前,先问问自己是否真的需要这样做。如果你仅仅是尝试去编译一个内核模块或是为内核定制驱动,你并不需要完整的内核源码树。你只需要安装一些与内核对应的头文件,这样就足够了。

只有在你需要生成一个定制的内核,而且内核源码中的一些内核默认设置要被你调整了的情况下,你才需要完整的内核源码树。

这里将会解答如何在Debian或Ubuntu的库中下载并安装完整树结构的内核源码。你可以在https://www.kernel.org/pub/linux/kernel/下载官方的内核源码,不过使用发行版软件仓库可以允许你下载包含补丁的内核源码。

在Debian上安装完整的内核源码

在下载内核源码之前,先安装dpkg-dev,其中包含你在Debian上生成源代码时需要的开发工具套件。不仅如此,dpkg-dev中还包含在用来解压Debian源码包并自动打补丁的工具dpgk-source。

$ sudo apt-get install dpkg-dev 

然后,运行以下命令下载完整的内核源码。

$ apt-get source linux-image-$(uname -r) 

伴随着完整内核源码(linux_X.X.XX.orig.tar.xz)的还有一些可用的内核补丁(linux_X.X.X+XXX.debian.tar.xz)和源码控制文件(linux_XXXX.dsc),这些都将被下载并存储到当前目录。在.dsc文件中会指出如何给内核源码打补丁。

当下载完成,以上的命令将会自动调用工具dpkg-source将下载的内核源码解压到当前的目录中,与此同时根据.dsc文件来下补丁。

最终完整的内核源码树将会以"linux-X.X.XX"的形式呈现在当前目录中。

在Ubuntu上安装完整内核源码

如果你想安装完整内核源码的话,以上在Debian上的那一套做法在Ubuntu上仍然奏效。

在Ubuntu上还有另一套方法安装完整内核源码。事实上,你可以查一下由Canonical为Ubuntu不同发行版维护的内核源码树。

$ sudo apt-get install git
$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-$(lsb_release --codename | cut -f2).git

举个例子,如果你使用的是Ubuntu 14.04,以上的命令将会查看Git的"ubuntu-trusty"仓库中的代码。

一旦在你对Git仓库的查询结束后,使用以下的命令来安装用来访问生成内核源码树所需依赖的重要开发包。

$ sudo apt-get build-dep linux-image-$(uname -r) 

via: http://ask.xmodulo.com/install-full-kernel-source-debian-ubuntu.html

作者:Dan Nanni 译者:martin qi 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

KDE Plasma Mo...
2025-12-05 18:15:49
Debian与Ubuntu...
在众多Linux发行版中,Debian和Ubuntu无疑是最受欢迎...
2025-12-05 10:46:28
OpenTenBase 部...
2025-11-25 10:40:21 作者:狼叫兽 11月22...
2025-11-25 11:45:53
多家Linux厂商拥抱Ub...
在最近举办的Ubuntu峰会上,多家Linux相关厂商展示了他们的...
2025-11-08 06:16:18
Fedora 43定档10...
来源:IT之家 【Fedora 43 正式版定档 10 月 28 ...
2025-10-27 06:15:15
Ubuntu认证新平台上线...
在如今的数字时代,掌握Linux系统的技能已成为许多求职者和专业人...
2025-10-26 08:16:30

热门资讯

《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何理解Apache 2.0许... 提要:Apache 2.0许可证中的专利许可条款使得开源代码可以安全使用,但它经常被误解。Apach...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...