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

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

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

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

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



답변

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

용법:

diffconfig config-a config-b

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


답변

커널 소스에는 스크립트가 있습니다.

scripts / kconfig / merge_config.sh

커널 설정 2 개를 인수로 사용합니다. 두 번째 커널 설정을 첫 번째 항목과 병합합니다. “# CONFIG_ is not set”과 같은 줄이더라도 두 번째 구성의 모든 것은 첫 번째 구성보다 우선합니다.

http://processors.wiki.ti.com/index.php/Quick_start_with_3.14_linux를 참조 하십시오


답변

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

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


답변

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

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

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

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

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


답변

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

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

make savedefconfig

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


답변