如何下载当前的内核源代码

hat*_*man 5 kernel source

运行内核 4.10.0-27-generic 的 Ubuntu 16.04 LTS。

uname -a 显示

Linux my-pc 4.10.0-27-generic #30~16.04.2-Ubuntu SMP Thu Jun 29 16:07:46 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

当我下载内核源代码时

apt-get source linux-image-4.10.0-27-generic
Run Code Online (Sandbox Code Playgroud)

我收到消息

Picking 'linux-hwe' as source package instead of 'linux-image-4.10.0-27-generic'
Run Code Online (Sandbox Code Playgroud)

当我检查下载源的内核版本时

make kernelversion
Run Code Online (Sandbox Code Playgroud)

版本报告为

4.10.17
Run Code Online (Sandbox Code Playgroud)

如何下载我当前正在运行的实际内核的实际源代码?

编译内核时,如何指定目标架构?(对我来说是 amd64)。

Pil*_*ot6 3

您正确下载了源。

make kernelversion永远不会给你正确的 Ubuntu 内核版本。它输出主线版本。

这可以通过一些命令来完成,但最简单的方法是查看debian.master/changelog.

更好的方法是从 获取资源git。跑步

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-xenial.git
cd ubuntu-xenial
git checkout 6cac304f7f239ac
Run Code Online (Sandbox Code Playgroud)

然后你就会得到你的4.10.0-27内核源代码。


Lar*_*win 2

sudo apt-get source linux-image-$(uname -r)
sudo apt-get build-dep linux-image-$(uname -r)
Run Code Online (Sandbox Code Playgroud)

另外 - 确保在 /etc/apt/sources.list 中启用源 URL