menuconfigの観点から2つのカーネル構成ファイルを比較しますか?


13

2つのカーネル構成ファイル(同じカーネルソース用)がある状況があります。どちらにも必要な機能の一部があります(一方では、USBは正しく機能し、もう一方では、2番目のI2Cが機能します)。

menuconfigの観点から見ると、2つの構成ファイルの違いには、選択されたオプションのほんの一部しか含まれていないことを知っています。(しかし、どれがわからない)

ただし、構成ファイルを手動で比較する場合(2つの.configファイル間で融合)、違いを特定するのは簡単ではありません。私はそれらを手動でマージしようとしましたが成功しませんでした。私は最終的に成功すると確信していますが、ファイルがmenuconfigに表示される方法で比較された場合、プロセスははるかに簡単になると考えています。

これは達成できますか?そうであれば、どのように?

回答:


16

scripts/diffconfigLinuxカーネルソースツリーから使用してみてください。

使用法:

diffconfig config-a config-b

config-aに関して、削除、変更、およびconfig-bファイルに追加された行のリストを表示します。



3

sort比較する前にファイルを試すことができます:

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

3

2つのファイルがによって生成されたmake menuconfig場合、それらは同じ順序でオプションを持つため、単純なdiff(Meldまたは任意のフロントエンドを介した)単純な結果が使用可能になります。

コメント行を無視すると、より読みやすいものになる可能性があります。

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

何らかの理由でファイルが同じ順序になっていない場合は、並べ替えることができます。これには、関連するオプションが大きく離れているという欠点があります。再度、コメントを削除します。comm共通線を取り除くために使用します。

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

1

kdiff32つの構成を比較するために使用します。

.config(現在の構成)ファイルをカーネルツリーのデフォルト構成と比較する場合は、まず現在の構成からdefconfigをエクスポートします。

make savedefconfig

これによりdefconfigファイルがエクスポートされ、他のデフォルト構成ファイルと簡単に比較できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.