从menuconfig角度比较两个内核配置文件?


13

我遇到的情况是我有两个内核配置文件(用于同一内核源)。两者都有我需要的功能的一部分(一方面,USB正常工作,另一方面,第二个I2C)。

我知道,从menuconfig的角度来看,两个配置文件之间的区别仅包括几个选定的选项。(但不知道是哪一个)

但是,当手动比较配置文件(在两个.config文件之间合并)时,区别并不容易识别。我尝试过手动合并它们,但没有成功。我相信最终我会成功的,但是我相信,如果将文件以出现在menuconfig中的方式进行比较,则过程可能会更加轻松。

可以实现吗?如果可以,如何实现?

Answers:


16

尝试scripts/diffconfig从Linux内核源代码树使用。

用法:

diffconfig config-a config-b

显示有关config-a删除,修改和添加到config-b文件中的行的列表。



3

您可以sort在比较之前尝试处理文件:

meld <(sort config-a) <(sort config-b)

3

如果这两个文件是由生成的make menuconfig,则它们将具有相同顺序的选项,因此简单的操作diff(通过Meld或您喜欢的任何前端)将提供可用的结果。

如果您忽略注释行,则可能会使内容更具可读性:

diff -I '^#' old.config new.config

如果由于某种原因文件的顺序不同,则可以对它们进行排序。这有将相关选项分开的缺点。同样,删除评论。使用comm以剥离公共线。

comm -3 <(<old.config grep '^[^#]' | sort) <(<new.config grep '^[^#]' | sort)

1

使用kdiff3比较两个CONFIGS。

如果有人想将.config(当前配置)文件与内核树中的某些默认配置进行比较,请首先从当前配置中导出defconfig:

make savedefconfig

这将导出defconfig文件,可以将其轻松地与任何其他默认配置文件进行比较。

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.