menuconfig 관점에서 두 개의 커널 구성 파일을 비교 하시겠습니까?


13

두 개의 커널 구성 파일 (동일한 커널 소스 용)이있는 상황이 있습니다. 둘 다 내가 필요한 기능의 일부를 가지고 있습니다 (하나는 USB가 두 번째 I2C에서 올바르게 작동합니다).

menuconfig의 관점에서 두 구성 파일의 차이점에는 선택된 몇 가지 옵션 만 포함되어 있음을 알고 있습니다. (그러나 어느 것을 몰라)

그러나 구성 파일을 수동으로 비교하면 (두 개의 .config 파일간에 녹아) 차이점을 쉽게 식별 할 수 없습니다. 나는 성공하지 않고 수동으로 병합하려고했습니다. 나는 결국 성공할 것이라고 확신하지만 파일이 menuconfig에 나타나는 방식으로 파일을 비교하면 프로세스가 훨씬 고통스럽지 않을 것이라고 생각합니다.

이것이 가능합니까? 그렇다면 어떻게됩니까?

답변:


16

scripts/diffconfigLinux 커널 소스 트리에서 사용해보십시오 .

용법:

diffconfig config-a config-b

config-a와 관련하여 config-b 파일에서 제거, 수정 및 추가 된 행 목록을 표시합니다.



3

다음을 sort비교하기 전에 파일을 사용해보십시오 .

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

3

두 파일에 의해 생성 된 경우 make menuconfig, 그들은 간단한 때문에, 같은 순서로 옵션이있을 것이다 diff(융합을 통해 또는 당신이 좋아하는 프론트 엔드 무엇이든) 가능한 결과를 제공 할 것입니다.

주석 행을 무시하면 더 읽기 쉬운 것을 얻을 수 있습니다.

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

어떤 이유로 파일이 같은 순서가 아닌 경우 정렬 할 수 있습니다. 이것은 관련 옵션을 멀리 떨어 뜨려 놓는 단점이 있습니다. 다시 주석을 제거하십시오. 사용하여 comm공통의 선을 제거 할 수 있습니다.

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

1

kdiff3두 구성을 비교하는 데 사용 합니다.

누구나 .config (현재 구성) 파일을 커널 트리의 일부 기본 구성과 비교하려면 먼저 현재 구성에서 defconfig를 내 보냅니다.

make savedefconfig

그러면 다른 기본 구성 파일과 쉽게 비교할 수있는 defconfig 파일이 내보내집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.