cấu hình kịch bản của kernel linux


8

Đưa ra một danh sách các tính năng kernel, tôi muốn tạo một cấu hình linux tối thiểu hỗ trợ tất cả các tính năng đã cho (và các phụ thuộc tương ứng) nhưng không có gì khác.

Có cách nào để tạo allnoconfig và một công cụ để kích hoạt từng tính năng không?

(Tôi có thể chỉnh sửa .configtệp nhưng điều này sẽ không phụ thuộc đúng. Tôi có thể sử dụng make *config, nhưng theo tôi biết những công việc đó chỉ tương tác hoặc tạo một số cấu hình mặc định.)


Đây là một kịch bản tự động hóa cấu hình nhân Linux với độ phân giải phụ thuộc: Kernel Expect (kernelExect)
T. Perkins

Câu trả lời:


1

Nếu bạn cần làm điều đó không tương tác, bạn có thể sử dụng make oldconfig hoặc tạo olddefconfig. make * config sẽ sửa các phần phụ thuộc và những phần tử không dài dòng như menuconfig. (Nếu không thì menuconfig hoàn toàn ổn để kích hoạt từng tính năng một, thậm chí nó còn bao gồm các văn bản trợ giúp!)

làm oldconfig sẽ yêu cầu bất kỳ tùy chọn cấu hình 'mới' nào, vì vậy bạn sẽ cần chèn các nhận xét như thế này cho bất kỳ tùy chọn bị tắt nào nếu bạn muốn làm việc không tương tác:

# CONFIG_KERNEL_GZIP is not set

mặt khác, làm cho olddefconfig dường như không hỏi, nhưng sử dụng một giá trị mặc định. Cũng có im lặng, nhưng nó cũng hỏi trong một số trường hợp, vì vậy nó không im lặng.

từ giúp đỡ:

oldconfig       - Update current config utilising a provided .config as base
silentoldconfig - Same as oldconfig, but quietly, additionally update deps
olddefconfig    - Same as silentoldconfig but sets new symbols to their default value

Tuyên bố miễn trừ trách nhiệm: Tôi chỉ thử kiểm tra tầm thường trong việc loại bỏ các tùy chọn cho một số thư viện mà tôi biết là cần thiết. Chúng đã được thêm lại bởi olddefconfig và oldconfig. Tôi không biết làm thế nào điều này áp dụng để làm một cấu hình lớn hơn.

Trong mọi trường hợp, tôi cho rằng bạn đã cân nhắc sử dụng make localmodconfig hoặc một cái gì đó tương tự trước khi bắt đầu điều này? Tôi đã không thử tạo một cấu hình tối thiểu trong nhiều năm, nhưng dường như tôi nhớ có một số cách khá không rõ ràng để tạo ra các hạt nhân hoàn toàn không sử dụng được. :)


"olddefconfig" có thể cũng hoạt động tốt. Có cách nào để có được các tùy chọn cấu hình mặc định từ tệp defconfig không? (Trong trường hợp đó, tệp defconfig sẽ cung cấp cơ sở phù hợp và tùy chọn tùy chỉnh tối thiểu có thể được đặt trong .config.)
michas

-1

Vì kernel 2.6,29 có một đoạn script mà bạn có thể tìm thấy trong
/kernel_extracted_dir/scripts/config

Ví dụ

/kernel_extracted_dir/scripts/config --set-val CONFIG_LOG_BUF_SHIFT 14
/kernel_extracted_dir/scripts/config --enable CONFIG_PRINTK_TIME

(Để cung cấp tín dụng khi đến hạn, tôi lấy ví dụ từ blog này )

Bạn có các tùy chọn follwing (được sao chép từ trợ giúp)

--enable|-e option   Enable option
--disable|-d option  Disable option
--module|-m option   Turn option into a module
--set-str option string
                     Set option to "string"
--set-val option value
                     Set option to value
--undefine|-u option Undefine option
--state|-s option    Print state of option (n,y,m,undef)

--enable-after|-E beforeopt option
                         Enable option directly after other option
--disable-after|-D beforeopt option
                         Disable option directly after other option
--module-after|-M beforeopt option
                         Turn option into module directly after other option commands can be repeated multiple times

options:
    --file config-file   .config file to change (default .config)
    --keep-case|-k       Keep next symbols' case (dont' upper-case it)

1
Điều này có vẻ tuyệt vời ở cái nhìn đầu tiên. Thật không may, nó dường như không quan tâm đến sự phụ thuộc ở tất cả. :(
michas
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.