Menuconfig perspektifinden iki çekirdek yapılandırma dosyası karşılaştırılsın mı?


14

(Aynı çekirdek kaynağı için) iki çekirdek yapılandırma dosyaları olan bir durum var. Her ikisinin de ihtiyacım olan işlevselliğin bir parçası var (biri USB, diğeri ikinci I2C düzgün çalışıyor).

İki yapılandırma dosyası arasındaki farkın menuconfig açısından, sadece birkaç seçili seçenek içerdiğini biliyorum. (Ama hangilerini bilmiyorum)

Bununla birlikte, yapılandırma dosyaları el ile karşılaştırıldığında (iki .config dosyası arasında bağlantı kurun), farkların tanımlanması kolay değildir. Başarıyla manuel olarak birleştirmeyi denedim. Sonunda başarılı olacağımdan eminim ama dosyalar menuconfig'de göründükleri bir şekilde karşılaştırılırsa sürecin çok daha acısız olabileceğine inanıyorum.

Bu sağlanabilir ve eğer öyleyse, nasıl?

Yanıtlar:


17

scripts/diffconfigLinux çekirdeği kaynak ağacından kullanmayı deneyin .

Kullanımı:

diffconfig config-a config-b

Config-a dosyasına göre config-b dosyasına kaldırılan, değiştirilen ve eklenen satırların listesini gösterir.



4

İki dosya tarafından oluşturulmuşsa make menuconfig, seçeneklerin aynı sırada olması gerekir, böylece basit diff(Meld veya istediğiniz ön uç aracılığıyla) kullanılabilir bir sonuç verir.

Yorum satırlarını yoksayarsanız daha okunabilir bir şey alabilirsiniz:

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

Herhangi bir nedenden dolayı dosyalar aynı sırada değilse, bunları sıralayabilirsiniz. Bu, ilgili seçenekleri birbirinden ayırmanın dezavantajına sahiptir. Yine yorumları kaldırın. commOrtak çizgileri ayırmak için kullanın .

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

3

sortKarşılaştırma yapmadan önce dosyaları girmeyi deneyebilirsiniz :

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

1

kdiff3İki yapılandırmayı karşılaştırmak için kullanın .

Herhangi biri .config (geçerli yapılandırma) dosyasını çekirdek ağacından bazı varsayılan yapılandırmayla karşılaştırmak istiyorsa, önce defconfig'i geçerli yapılandırmadan dışa aktarın:

make savedefconfig

Bu, diğer varsayılan yapılandırma dosyalarıyla kolayca karşılaştırılabilen defconfig dosyasını dışa aktarır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.