1

我使用的是debian 9.4,显示的内核版本uname -a不同,实际的内核版本是多少?“4.9.82-1+deb9u3”是什么意思?

Linux debian 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux

apt-get source linux可以得到当前内核的源代码,然后我可以得到原始内核的tar文件和debian补丁。

$ls     
linux-4.9.82                         linux_4.9.82-1+deb9u3.dsc
linux_4.9.82-1+deb9u3.debian.tar.xz  linux_4.9.82.orig.tar.xz 

linux_4.9.82-1+deb9u3.debian.tar.xz包含许多文件,它们是用来做什么的?如何修补它linux_4.9.82.orig.tar.xz

linux-4.9.82apt-get source命令输出的内核源码文件夹,可以编译成vmlinux。但是,我通常无法使用 vmlinux 调试故障转储文件,因为“崩溃”命令会给出错误消息:版本不匹配。我应该kernel 4.9.0从 kernel.org 下载而不是linux-4.9.82调试当前正在运行的内核吗?

4

1 回答 1

3

你有包版本。这个名字是由:

  • 4.9.82:上游版本
  • -14.9.82:上游包的分隔符和 Debian 版本。注意:如果 Debian 也是软件包的上游,则跳过此字段。
  • +deb9u3: 这是一种微缩版。用于安全建议,因此+deb4.9.82-1. 是9Debian 版本,u3是第三个安全版本。

但是内核是不同的(与大多数其他软件包相比):一个可以并行安装许多(但它只会使用一个)。所以在包名中你可能有linux-image-4.9.0-3-amd64. 在我的系统中,这个包有 version 4.9.30-2+deb9u14.9内核版本也是如此。-amd64是架构,这是( ) 系列的第三个主要 Debian 版本 ( -3) ,它基于.4.9.04.9.30

该命令uname将在字段中为您提供内核(作为包名称,因此接近功能)和在字段kernel-release中的包版本(对源代码的精确引用kernel-version)。

对于主要问题:我会使用原始内核,并使用上游方法编译(如果我认为该错误与内核相关,因此更容易与内核维护人员讨论),或者我会使用 Debian 源代码(ev 和补丁),并且使用 Debian 工具构建内核(并安装软件包以安装内核),如果我认为问题出在 Debian 中,或者只是在旧内核版本上。

于 2018-03-26T08:47:59.653 回答