在哪里可以获得11.04内核.config文件?


15

我正在将Maverick与kernel.org上的最新可用内核结合使用,并自行构建它们。到目前为止,我一直基于Maverick内核配置并接受make oldconfig默认设置。我已经在3个主要版本中进行了此操作,因此我认为我开始落后于当前的“标准”。

我想根据新的Natty .config文件重新构建内核。它可以在网上找到,还是必须下载整个内核包并将其解压缩?

编辑:我已经从最新的Natty内核软件包中手动提取了配置,并且可以确认我应该早点这样做。我以前的“演进”配置和Natty默认配置之间有很多差异。现在,如果无需20分钟的搜索和下载程序包就可以执行此操作,以便将来重新建立基础。

Answers:



30

每个linux-image软件包都包含内置的确切配置文件/boot/config-*。要查看当前正在运行的Linux内核的配置文件,请执行以下操作:

  • less /boot/config-$(uname -r)

我与Ubuntu的内核人(Freenode上检查#ubuntu-kernel),他们已经证实了我的信念,有没有真正“ 配置”,但它是在通过包括一些编译/编译时间实际上构建Kconfig的文件; 这些取决于确切的体系结构和目标(台式机/服务器/云)。您应该能够在以下位置阅读该(简短的)对话:

可以使用packages.ubuntu.com和以下搜索找到该品种的列表:

到处寻找,似乎它们.config也包含在linux-headers-*软件包中。这些是.deb文件(它们是简单的.ar档案,将以打开file-roller),每个文件只有800 kB。如果您知道要使用的特定目标,体系结构和版本,则可以直接从启动板或归档文件本身中获取这些内容:

  1. archive.ubuntu.com/ubuntu/pool/main/l/linux/ linux-header-2.6 * .deb
  2. 然后看看 /usr/src/linux-headers-2.6*/.config

如果要将整个过程自动化为一个命令,则可以尝试以下操作:确保将所有内容保持一致!

希望有帮助!


感谢您对此进行调查。阅读了irclog后,如果不进行大量下载,我似乎就不会得到想要的东西。在自动化方面,/boot-config-*比起尝试模仿在构建时自动生成软件包的向导,要抓取软件包并提取其更为容易。很遗憾,没有一种方法可以在线上从文件包中抓取一个文件(或存在吗?)
Oli

我想我将在另一个问题中提出这一问题。
奥利


1

Ubuntu git内核存储库

debian/每个版本的单个git存储库中都跟踪包含配置和内核树的元数据:http : //kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/

然后,存储库为每个内核程序包都有一个标签,例如在我的Ubuntu 18.04中,我有该程序包linux-image-4.15.0-36-generic,我猜测它对应于标签:Ubuntu-4.15.0-36.39

https://help.ubuntu.com/community/Kernel/Compile解释了如何编译内核,以及如何配置内核以及如何将配置合并到最终配置中。

所有的配置似乎debian.master/config/ARCH都包含以下内容:

config.common.ubuntu
config.common.ports
amd64/config.common.amd64
amd64/config.flavour.generic
amd64/config.flavour.lowlatency

所以我想这linux-image-4.15.0-36-generic将合并config.common.ubuntuconfig.common.amd64config.flavour.generic

进行合并的脚本似乎是debian / scripts / misc / kernelconfig,其中包含注释:

# Merge configs
# We merge config.common.ubuntu + config.common.<arch> +
# config.flavour.<flavour>

待办事项:还有一个 debian.master/config/annotations文件,其中似乎包含每个拱门的每个配置的值,该如何使用?

有人应该通过某种方式在详细模式下运行构建脚本来确认所有这些,但是我现在很懒,可以使用以下命令进行构建:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git linux
cd linux
git checkout Ubuntu-4.15.0-36.39
fakeroot debian/rules clean
debian/rules updateconfigs
fakeroot debian/rules build-generic

然后,我确认这将产生与本地相同的配置:

diff debian/build/build-generic/.config /boot/config-4.15.0-36-generic

请注意,Ubuntu内核git repo在上游Linux之上也有成千上万个补丁,因此仅获得正确的配置将不足以重现行为。

我们还可以通过查看启动的开始来三重检查构建的内核是否与打包的内核匹配dmesg,该启动包含:

[    0.000000] Linux version 4.15.0-36-generic (buildd@lgw01-amd64-031) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 (Ubuntu 4.15.0-36.39-generic 4.15.18)

在配置 .deb

正如其他人所提到的,最终的完整配置也位于以下位置:

/boot/config-4.15.0-36-generic

对应于每个Linux内核映像:

/boot/vmlinuz-4.15.0-36-generic

因此,对于其他版本,我们可以找到它们来自哪个包:

dpkg -S /boot/config-4.15.0-36-generic

这使:

linux-modules-4.15.0-36-generic: /boot/config-4.15.0-36-generic

然后您可以.debhttps://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic下载 并解压缩以获取配置:

mkdir config
cd config
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux/linux-modules-4.15.0-36-generic_4.15.0-36.39_amd64.deb
ar x linux-modules-4.15.0-36-generic_4.15.0-36.39_amd64.deb
tar -xvf data.tar.xz
cat ./boot/config-4.15.0-36-generic

在Ubuntu 18.04中测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.