Porównać dwa pliki konfiguracyjne jądra z perspektywy menuconfig?


14

Mam sytuację, w której mam dwa pliki konfiguracyjne jądra (dla tego samego źródła jądra). Oba mają część funkcjonalności, której potrzebuję (na jednej USB działa poprawnie, na drugiej I2C).

Wiem, że różnice między dwoma plikami konfiguracyjnymi, z perspektywy menuconfig, obejmują tylko kilka wybranych opcji. (Ale nie wiem które)

Jednak przy ręcznym porównywaniu plików konfiguracyjnych (łączenie dwóch plików .config) różnice nie są łatwe do zidentyfikowania. Próbowałem scalić je ręcznie bez powodzenia. Jestem pewien, że w końcu mi się to uda, ale wierzę, że proces ten może być o wiele bardziej bezbolesny, jeśli pliki zostaną porównane w sposób, w jaki pojawiają się w menuconfig.

Czy można to osiągnąć, a jeśli tak, to w jaki sposób?

Odpowiedzi:


17

Spróbuj użyć scripts/diffconfigz drzewa źródeł jądra Linux.

Stosowanie:

diffconfig config-a config-b

Pokazuje listę linii usuniętych, zmodyfikowanych i dodanych do pliku config-b w odniesieniu do config-a.



4

Jeśli dwa pliki są generowane przez make menuconfig, będą miały opcje w tej samej kolejności, więc prosty diff(za pośrednictwem Melda lub innego interfejsu użytkownika) da użyteczny wynik.

Możesz uzyskać coś bardziej czytelnego, jeśli zignorujesz wiersze komentarza:

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

Jeśli z jakiegoś powodu pliki nie są w tej samej kolejności, możesz je posortować. Ma to wadę polegającą na rozróżnianiu powiązanych opcji. Ponownie usuń komentarze. Służy commdo usuwania wspólnych linii.

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

3

Możesz wypróbować sortpliki przed porównaniem:

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

1

Służy kdiff3do porównywania dwóch konfiguracji.

Jeśli ktoś chce porównać plik .config (bieżąca konfiguracja) z domyślną konfiguracją z drzewa jądra, najpierw wyeksportuj defconfig z bieżącej konfiguracji:

make savedefconfig

Spowoduje to wyeksportowanie pliku defconfig, który można łatwo porównać z dowolnym innym domyślnym plikiem konfiguracyjnym.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.