哪个/哪个是实际的内核源?
我正在关注这个以学习编译内核。 我用了
apt-get source linux-image-$(uname -r)
下载我目前正在使用的Linux内核的源代码。
运行上述命令后,下载了以下文件(和目录)。
user $ ls -l total 130972 drwxrwxr-x 27 sps sps 4096 Oct 16 03:10 linux-lts-vivid-3.19.0 -rw-rw-r-- 1 sps sps 10980684 Oct 5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz -rw-rw-r-- 1 sps sps 7396 Oct 5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.dsc -rw-rw-r-- 1 sps sps 123115155 May 6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz user $
在同一页面中提到:
构建内核非常简单。 将工作目录更改为内核源代码树的根目录,然后键入以下命令:
但我不确定哪个是“内核源代码树的根”。
它是当前目录(我在哪里运行apt-get source ...
以及我在哪里有上面列出的文件)?
或者,它是目录:
drwxrwxr-x 27 sps sps 4096 Oct 16 03:10 linux-lts-vivid-3.19.0
或者,我应该提取tarball
-rw-rw-r-- 1 sps sps 123115155 May 6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz
uname -r
输出:
user $ uname -r 3.19.0-30-generic user $
来自Debian Wiki :
源包为您提供编译所需的所有必要文件,或者构建所需的软件。
它以最简单的forms包含三个文件:
上游tarball以.tar.gz结尾
以.dsc结尾的描述文件。 它包含文件名和内容的名称,以及内容(在Source:关键字之后)。
一个tarball,对上游源进行任何更改,以及为Debian软件包创建的所有文件。
- 这有一个.debian.tar.gz (源格式:3.0)
- 或.diff.gz结尾(来源格式:1.0)
Ubuntu也是如此,在你的情况下:
- “linux-lts-vivid-3.19.0”:实际内核 ,从上游tarball“linux-lts-vivid_3.19.0.orig.tar.gz”开始修补,修改内容见“linux-lts-vivid_3.19.0” -30.34〜14.04.1.diff.gz“;
- “linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz”:一个tarball,包含对上游源的任何更改,以及为Debian包创建的所有文件;
- “linux-lts-vivid_3.19.0-30.34~14.04.1.dsc”:一个descrition文件“.dsc”结尾。 它包含包的名称,包括文件名和内容(在Source:关键字之后);
- “linux-lts-vivid_3.19.0.orig.tar.gz”:上游tarball以“.tar.gz”结尾(请注意,根据我的经验,它并不总是一个“.tar.gz”文件,它可以稍微不同的格式,例如“.tar.xz”);
运行apt-get source linux-image-$(uname -r)
,上游tarball会自动修补“linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz”中列出的修改。 Linux的LTS-VIVID-3.19.0″ :
% apt-get source linux-image-$(uname -r) # ... dpkg-source: info: extracting linux in linux-3.19.0 dpkg-source: info: unpacking linux_3.19.0.orig.tar.gz dpkg-source: info: applying linux_3.19.0-30.34.diff.gz # ...
内核树的根目录是linux-lts-vivid-3.19.0
。
关于其他文件:
在tarball linux-lts-vivid_3.19.0.orig.tar.gz
你可以找到上游发布的“vanilla”内核; 在这个内核中,Ubuntu开发人员添加了补丁,驱动程序,在diff
中收集的更改内容,这些内容在linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz
。
嗯。 运行命令时
apt-get source linux-image-`uname -r`
该命令应该自动提取源代码压缩包并对其进行修补,以创建一个在内核之后调用的目录。 在你的情况下,它看起来像’linux-lts-vivid-3.19.0′ – 它在你的目录列表中。
那么,这是源目录,你应该运行:
cd linux-lts-vivid-3.19.0
然后继续按照说明操作