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中国 荣誉推出

相关内容

CentOS 5.3至最新...
CentOS 5.3升级指南:安全过渡与系统优化 对于仍在运行Ce...
2025-03-15 06:13:57
2023年CentOS与U...
CentOS与Ubuntu的市场格局与技术特性探讨 在服务器操作系...
2025-03-10 06:12:36
Ubuntu安装报错如何解...
安装Ubuntu时遇到报错是许多新手甚至有一定经验的用户都可能经历...
2025-03-07 06:49:33
极摩客G9全闪4盘位NAS...
2025-03-04 11:50:43
Debian 12.9 发...
1 月 14 日消息,Debian 项目团队于 1 月 11 日发...
2025-03-04 06:20:06
Debian 12.9版本...
狼叫兽 1月11日,Debian项目团队发布了最新更新版本12...
2025-02-28 10:49:46

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...