So sánh hai tập tin cấu hình kernel từ phối cảnh menuconfig?


13

Tôi có một tình huống trong đó tôi có hai tệp cấu hình kernel (cho cùng một nguồn kernel). Cả hai đều có một phần chức năng mà tôi cần (trên một, USB hoạt động chính xác, mặt khác, I2C thứ hai).

Tôi biết rằng sự khác biệt giữa hai tệp cấu hình, từ quan điểm của menuconfig, chỉ bao gồm một vài tùy chọn được chọn. (Nhưng không biết cái nào)

Tuy nhiên, khi các tệp cấu hình được so sánh thủ công (kết hợp giữa hai tệp .config), sự khác biệt không đơn giản để xác định. Tôi đã thử hợp nhất chúng một cách thủ công mà không thành công. Tôi chắc chắn cuối cùng tôi đã thành công nhưng tin rằng quá trình này có thể không đau đớn hơn nhiều nếu các tập tin được so sánh theo cách chúng xuất hiện trong menuconfig.

Điều này có thể đạt được, và nếu vậy, làm thế nào?

Câu trả lời:


16

Hãy thử sử dụng scripts/diffconfigtừ cây nguồn Linux.

Sử dụng:

diffconfig config-a config-b

Hiển thị danh sách các dòng bị xóa, sửa đổi và thêm vào tệp config-b đối với config-a.


6

Có một tập lệnh trong nguồn kernel;

script / kconfig / merge_config.sh

Nó sẽ lấy 2 cấu hình kernel làm đối số - nó sẽ hợp nhất thứ 2 lên trên đầu tiên. Bất cứ điều gì trong cấu hình thứ 2 sẽ ghi đè lên cấu hình đầu tiên - ngay cả khi đó là một dòng như "# CONFIG_ không được đặt"

Xem http: // Processors.wiki.ti.com/index.php/Quick_start_with_3.14_linux


3

Bạn có thể thử sorting các tập tin trước khi so sánh:

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

3

Nếu hai tệp được tạo bởi make menuconfig, chúng sẽ có các tùy chọn theo cùng một thứ tự, do đó, một đơn giản diff(thông qua Meld hoặc bất kỳ giao diện nào bạn muốn) sẽ cho kết quả có thể sử dụng được.

Bạn có thể nhận được một cái gì đó dễ đọc hơn nếu bạn bỏ qua các dòng bình luận:

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

Nếu vì lý do nào đó các tệp không theo cùng một thứ tự, bạn có thể sắp xếp chúng. Điều này có nhược điểm của việc đặt các tùy chọn liên quan cách xa nhau. Một lần nữa, xóa bình luận. Sử dụng commđể loại bỏ các dòng phổ biến.

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

1

Sử dụng kdiff3để so sánh hai cấu hình.

Nếu bất cứ ai muốn so sánh tệp .config (cấu hình hiện tại) với một số cấu hình mặc định từ cây kernel, trước tiên hãy xuất defconfig từ cấu hình hiện tại:

make savedefconfig

Điều này sẽ xuất tệp defconfig, có thể dễ dàng so sánh với bất kỳ tệp cấu hình mặc định nào khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.