Tự động trả lời mặc định khi thực hiện 'make oldconfig' trên cây kernel


36

Khi xây dựng kernel mới dựa trên cấu hình trước đó, có cách nào để tự động hóa make oldconfigquy trình để nó đặt các tùy chọn mới cho các giá trị mặc định của chúng không?

Chỉnh sửa: Ý tôi là khi sử dụng .config (từ /boot/config-*hoặc /proc/config.gz) trên kernel mới hơn, make oldconfigquy trình sẽ hỏi bạn có muốn kích hoạt các tùy chọn không có sẵn trong kernel cũ của bạn không. Bạn có thể trả lời Y / n / m hoặc nhấn enter để chấp nhận mặc định. Tôi muốn chấp nhận mặc định tự động không có tương tác người dùng.


@jscott Điều này sẽ chỉ "nhấn enter" cho câu hỏi đầu tiên, không phải tất cả trong số họ. Bạn có thể sử dụng lệnh 'có' để có một chuỗi được in không rõ ràng.
Laurent Parenteau

Câu trả lời:


37

Sử dụng lệnh:

yes "" | make oldconfig

Lệnh 'có' liên tục xuất ra một dòng với tất cả các chuỗi được chỉ định hoặc 'y' theo mặc định.

Vì vậy, bạn có thể sử dụng nó để chỉ "nhấn enter", điều này sẽ dẫn đến việc sử dụng giá trị mặc định cho lệnh 'make oldconfig'.


À, tôi không biết lệnh 'có' có thể xuất ra bất kỳ chuỗi nào. Cảm ơn bạn!
Jean-Francois Chevrette

3
Đây là một hiện tượng.
Ivan X

1
Trả lời là một ý tưởng tốt hơn nhiều serverfault.com/a/538150/18822
Evan Carroll

56
make olddefconfig

là những gì bạn muốn. Từ trợ giúp ( make helptrong thư mục nguồn kernel)

olddefconfig - Tương tự như siloldconfig nhưng đặt các ký hiệu mới thành giá trị mặc định của chúng


Tôi đã tìm kiếm một cái gì đó như thế này trong một thời gian ... cảm ơn rất nhiều!
Jafar Kofahi

Phiên bản nào của Linux đã xuất hiện? Chỉ tò mò thôi. Tôi hiện đang xử lý một phiên bản cũ (3.0) và nó chưa có phiên bản này.
clacke

1
Đây phải là câu trả lời chính xác.
suprjami

0

Vâng. Nó được lưu trữ trong ".config" ở cấp cao nhất của thư mục nguồn.

Ngoài ra, nếu sử dụng kernel phân phối, một số bản phân phối như RedHat lưu trữ nó trong / boot / config - $ (uname -r). (phiên bản kernel) [1]

Cuối cùng, nếu được biên dịch trong kernel bạn đang chạy, nó có sẵn trong /proc/config.gz. Tôi quên phiên bản giới thiệu tùy chọn này.

[1] Những tùy chọn này:

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y 

Chỉnh sửa

Kiểm tra /usr/src/linux/kernel/Documentation/kbuild/kconfig.txt (hoặc đường dẫn thích hợp). Bạn có thể sử dụng một số khuyến nghị của họ để kịch bản một giải pháp. Tôi sẽ sử dụng kết hợp kịch bản và văn bản để thực hiện những gì bạn mô tả.

Chỉnh sửa 2

Là một lưu ý bổ sung, đây là một ý tưởng tồi. Điều gì xảy ra nếu phần cứng tùy chọn hỗ trợ duy nhất cho môi trường của bạn thay đổi nhưng không mặc định? Điều gì xảy ra nếu một thay đổi tác động tiêu cực xảy ra? Đây thực sự là một cái gì đó nên được tương tác. Bạn có thể thực hiện cấu hình và tự động hóa phần còn lại.

"Làm im lặng" là ít dài dòng hơn, có thể hữu ích. Nó vẫn tương tác.


Ý của tôi không phải như vậy. Tôi đã thêm chi tiết vào câu hỏi của mình để giải thích những gì tôi muốn đạt được.
Jean-Francois Chevrette

0

make silentoldconfig


2
làm cho im lặng cấu hình vẫn tương tác, nó chỉ ít dài dòng hơn
Laurent Parenteau
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.