Thay đổi cấu hình nhân Linux một cách an toàn theo chương trình


8

Tôi đang viết một tập lệnh phải tự động thay đổi một số tùy chọn cấu hình nhân Linux dựa trên tệp đầu vào.
Tất nhiên, cách dễ nhất để làm điều này là chỉnh sửa trực tiếp tệp .config, nhưng điều này không được khuyến khích và có thể gây ra sự cố.
Tôi dường như không thể tìm ra cách để làm điều này "đúng cách".

"Giúp đỡ" không chỉ ra cách thay đổi các tùy chọn đơn lẻ, cũng không ./scripts/kconfig/conf --help. Tập tin này trên kernel.org dường như cũng không có cách nào.
Ngay cả Genkernel của Gentoo cũng tự thay đổi tệp .config.

Vì vậy, về cơ bản:
Có cách nào an toàn để thay đổi tùy chọn cấu hình kernel theo chương trình, hoàn thành với theo dõi phụ thuộc, v.v.?
Kconfig có thể được chạy thủ công để đạt được điều này?

Câu trả lời:


3

Những gì tôi làm là đầu tiên:

make defconfig

Sau đó, thêm các thay đổi cài đặt vào .configsau:

make olddefconfig

Điều này sẽ "khắc phục" mọi sự không nhất quán được giới thiệu trong cấu hình. YMMV vì nó có thể không sửa chúng theo cách bạn mong đợi.


Cảm ơn vì đã trả lời! Tôi đã xem xét làm điều đó, nhưng như bạn đã nói, YMMV. Nếu có 2 tùy chọn xung đột, sẽ không có lựa chọn nào sẽ khắc phục.
SharkWipf

@SharkWipf Trong mọi trường hợp, tôi sẽ mong đợi kết quả mang tính quyết định. Vì vậy, nếu kết quả không như bạn muốn, chỉ cần thêm một tuyên bố khác tắt điều xung đột và lặp lại quá trình này cho đến khi nó hoạt động.
DepressionDaniel

Đúng, nhưng nó có thể gây rối với các tùy chọn khác theo cách tôi không thể kiểm tra và cuối cùng tôi muốn đưa tập lệnh này lên github, tôi muốn nó ổn định và đáng tin cậy nhất có thể. Nói chung, tập lệnh này sẽ được sử dụng để sửa đổi các cấu hình kernel do người dùng tạo, thay vì tạo các cấu hình mới, vì vậy thật khó để làm cho nó hoạt động đáng tin cậy theo cách này.
SharkWipf

@SharkWipf Chà, có vẻ như những gì bạn đang cố gắng đạt được đòi hỏi phải có AI;) Giải pháp thông thường là cung cấp một mặc định hoạt động và cho phép mọi người tùy chỉnh nếu họ dám.
DepressionDaniel

nếu tôi muốn làm nó hoàn toàn thủ công, yeah. Nhưng tôi đã hy vọng có một số cách tôi có thể sử dụng Kconfig để mô phỏng "đánh dấu vào hộp" trong menuconfig, bởi vì nghe có vẻ như đó là một điều. Về cơ bản những gì tôi muốn làm là cho phép người dùng sao chép các yêu cầu kernel từ wiki Gentoo, giải quyết điều đó thành đúng giá trị cấu hình nếu có thể (đủ dễ), sau đó cập nhật cấu hình phù hợp (sau khi tất nhiên người dùng xem xét lại). Vì vậy, không có "mặc định" trong trường hợp này.
SharkWipf

0

Tôi sẽ đi vá một tập tin .config. Các bước bạn phải thực hiện để chuẩn bị nó là

cp .config .config.bck
make menuconfig # Here change all that you need to fit your needs
diff -u .config.bck .config > myconfig.$(kern_vers).patch

Sau đó, trong tập lệnh của bạn thêm dòng này

patch .config myconfig.$(kern_vers).patch
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.