我在哪里可以获得11.04内核.config文件?
我正在使用Maverick在kernel.org上使用最新的内核并自己构建它们。 到目前为止,我一直将我的配置从Maverick内核库存中接受并接受make oldconfig
默认值。 我现在已经为3个主要版本做了这个,所以我认为我开始落后于当前的“标准”。
我想重新将我的内核从新的Natty .config
文件中删除。 这可以在网上找到,还是我必须下载整个内核包并提取它?
编辑:我手动从最新的Natty内核包中提取配置,我可以确认我可能应该早点完成这个。 我的旧“evolved”配置和Natty默认配置之间存在很多差异。 现在,如果我可以在没有20分钟的狩猎和下载包的情况下这样做,那么我可以在将来重新定位。
内核团队在这里发布了Natty的配置:
资料来源:
- 邮件列表post
- Wiki页面详细说明了10.10和11.04之间的变化
每个linux-image
包都包含它在/boot/config-*
构建的确切配置文件。 要查看当前运行的Linux内核的配置文件,请执行以下操作:
-
less /boot/config-$(uname -r)
我已经检查了Ubuntu内核人员(在Freenode #ubuntu-kernel
),他们已经确认我认为没有真正的“配置”,但它实际上是在构建/编译时通过包含一些Kconfig
文件Kconfig
; 这些取决于确切的体系结构和目标(桌面/服务器/云)。 您应该能够在以下位置阅读该(简短)对话:
- irclogs.ubuntu.com/2011/03/15/#ubuntu-kernel.html#t13:48
可以使用packages.ubuntu.com和以下搜索找到该种类的列表:
- packages.ubuntu.com/search?keywords=config-2.6
狩猎,周围,似乎.config
也包含在linux-headers-*
包中。 这些是.deb
文件(这是简单的.ar
档案,将用file-roller
打开),每个只有大约800 kB。 如果你知道你所追求的特定目标,架构和版本,你可以直接从Launchpad或存档本身获取:
- archive.ubuntu.com/ubuntu/pool/main/l/linux/ linux-header-2.6 * .deb
- 然后查看
/usr/src/linux-headers-2.6*/
.config
如果要将整个过程自动化为一个命令,可以尝试以下操作; 确保你把它全部放在一条线上!
-
wget -qO- http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-headers-2.6.38-6-generic_2.6.38-6.34_i386.deb | dpkg-deb --fsys-tarfile /dev/stdin | tar Ox --wildcards './usr/src/*/.config'
希望有所帮助!
在我的Ubuntu 11.10系统上,内核配置位于文件’/boot/config-3.0.0-12-generic’中。
Ubuntu git内核存储库
包含配置的debian/
元数据和内核树在每个版本的单个git存储库中进行跟踪: http : //kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
然后repo有一个每个内核包的标签,例如在我的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.ubuntu
, config.common.amd64
和config.flavour.generic
。
执行合并的脚本似乎是debian / scripts / misc / kernelconfig ,它包含注释:
# Merge configs # We merge config.common.ubuntu + config.common. + # config.flavour.
TODO:还有一个debian.master/config/annotations
文件,它似乎包含每个arch的每个配置的值,如何使用?
有人应该通过以详细模式运行构建脚本来确认所有这些,但我现在很懒,您可以构建:
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
然后你可以从https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic下载.deb
并解压缩以获得配置:
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中测试过。