Công cụ cấu hình kernel tự động


9

Có công cụ cấu hình kernel linux tự động nào được phát triển không?

Tôi đã tìm thấy một phương pháp make localmodconfig, nhưng nó chắc chắn là rất hạn chế. Tôi đã tìm kiếm trên web nhưng không may là không có kết quả chấp nhận được.

Mặc dù tôi khá quan tâm đến các vấn đề cấu hình kernel, tôi muốn tối ưu hóa thời gian lãng phí cho cấu hình của mọi hệ thống mới với phần cứng cụ thể, vì nó hoạt động kỹ thuật hơn là sáng tạo.


3
Bạn có ý nghĩa như một cái gì đó sẽ phân tích cụ từ lspci, lsusb, /proc/cpuinfovv và thiết lập các tùy chọn thích hợp trong một tập tin cấu hình? Tôi không chắc có thực sự có nhu cầu lớn về điều đó hay không, vì các hạt mô-đun chung hoạt động tốt cho những người không muốn làm quen, và thật khó để thấy sự khác biệt cuối cùng sẽ tạo ra sự khác biệt gì.
goldilocks

1
Sử dụng một kernel chung từ bản phân phối Linux của bạn và sau đó chạy make localmodconfiglà một giải pháp dễ dàng. Ngoài ra, tồn tại một số công cụ (có thể đã lỗi thời) như cateee.net/autokernconf .
jofel

@goldilocks sự khác biệt là về kích thước và do đó cũng dành thời gian để tải kernel - điều này rất quan trọng nếu bạn nhắm mục tiêu khởi động nhanh (tất nhiên người ta cần phải có một số thứ được biên dịch, ít nhất là để đưa lên /). Quan trọng hơn có lẽ: mã bạn không có [biên dịch và cài đặt] không thể gây hại cho bạn.
peterph

Nếu bạn coi cấu hình kernel là một sự lãng phí thời gian, đừng làm điều đó mà hãy sử dụng cấu hình chung. Thực sự không có gì nhiều để đạt được bằng cách xây dựng hạt nhân của riêng bạn. Có một vài trường hợp sử dụng trong đó hạt nhân "được tối ưu hóa" hoạt động tốt hơn đáng kể sau đó là hạt nhân "hoạt động".
Bananguin

@ user1129682 Có lẽ tôi sẽ quyết định ủng hộ kernel chung, nhưng bạn có thể cung cấp bất kỳ tài liệu tham khảo nào mà hiệu suất không bị ảnh hưởng không?
vprisivko

Câu trả lời:


4

Bây giờ, chúng tôi đã nói về điều này một chút trong các ý kiến, câu trả lời cho bạn là: không, không có.

Lý do chính cho kết luận đó là tôi nghĩ rằng bạn không tìm kiếm một công cụ để cấu hình kernel , mà là để tự động điều chỉnh kernel cho trường hợp sử dụng specfic (và chưa được nói) của bạn.

Như đã nêu trong các bình luận, bạn có thể bỏ qua các trình điều khiển không cần thiết và biên dịch các trình điều khiển mong muốn tĩnh vào kernel. Điều đó giúp bạn tiết kiệm thời gian trong quá trình khởi động, nhưng không phải sau đó, bởi vì mã quan trọng là giống nhau cho dù được xây dựng hay mô-đun.

Điều chỉnh hạt nhân

Kernel cung cấp một số lựa chọn thay thế, bạn đã đề cập đến lịch trình. Lịch trình nào hoạt động tốt nhất cho bạn tùy thuộc vào trường hợp sử dụng của bạn các ứng dụng bạn sử dụng cũng như tải và loại tải bạn đặt trên hệ thống của mình. Không có chương trình cài đặt và chạy nào sẽ xác định lịch trình tốt nhất cho bạn, nếu thậm chí có một điều như vậy.

Điều tương tự giữ cho bộ đệm và kích thước bộ đệm. Ngoài ra, rất nhiều cài đặt (hầu hết?) Là hoặc ít nhất có thể được đặt trong thời gian chạy, không phải thời gian biên dịch.

Tùy chọn xây dựng tối ưu

Ngoài ra, không cần tự động hóa, bạn có thể tối ưu hóa các tùy chọn xây dựng khi biên dịch kernel, nếu bạn có CPU rất chuyên dụng. Tôi biết môi trường Buildroot cung cấp cho bạn một khung công tác tốt cho điều đó. Điều này cũng có thể giúp bạn nếu bạn đang muốn tạo cùng một hệ điều hành cho nhiều nền tảng. Trong khi điều này giúp bạn xây dựng, nó sẽ không tự động điều chỉnh kernel.

Đó là lý do tại sao tôi và những người khác bảo bạn sử dụng kernel chung. Nếu không có một vấn đề cụ thể để giải quyết việc xây dựng kernel của riêng bạn thì không đáng. Có lẽ bạn có thể nhận thêm trợ giúp bằng cách xác định / nêu rõ vấn đề bạn đang cố gắng giải quyết.


Cảm ơn câu trả lời, nó có vẻ là sự thật. Nhưng những gì về loại CPU nếu bạn không có CPU rất chuyên dụng? Có đáng để cấu hình thủ công ít nhất là tùy chọn này không?
vprisivko

Phụ thuộc vào CPU của bạn. Tôi đoán hạt nhân x86 và x86_64 đủ để nói về những người khác, tôi không thể nói.
Bananguin

@Bananguin Buildroot dường như không cung cấp tùy chọn xây dựng tối ưu trong định nghĩa tìm các tùy chọn trình biên dịch tối ưu nhất để có được mã chạy nhanh nhất (= lựa chọn cờ trình biên dịch). Buildroot tự động hóa quy trình xây dựng hệ thống nhúng của bạn và giảm bớt quá trình biên dịch chéo .
Sao lưu dự phòng

@ProBackup: Tôi chưa bao giờ nói nó cung cấp tùy chọn xây dựng tối ưu, tôi đã nói nó là một khung để tối ưu hóa các tùy chọn xây dựng. Chỉ vì nó cho phép bạn thiết lập các tùy chọn rõ ràng được đặt cho bạn (hoặc thậm chí không có sẵn) khi xây dựng kernel nguyên bản.
Bananguin

1

Nếu bạn lo lắng về thời gian khởi động, thời gian tải kernel là một phần nhỏ trong số đó. Lo lắng về những gì xảy ra sau này, sử dụng ví dụ systemd để tăng tốc khởi động bằng cách liệt kê, cấu hình để không chạy trình nền vô dụng, ... Systemd có các công cụ để phân tích thời gian khởi động. Nếu lo lắng là không gian, đĩa là giá rẻ.

Thời gian của bạn trong việc làm quen, thiết lập các cấu hình myriard, lấy kernel đúng cho từng máy, sửa cấu hình / biên dịch lại khi có gì đó thay đổi, ... có giá trị hơn nhiều so với vài giây tắt khởi động.


Quá trình khởi động không có vấn đề gì ngay cả khi không có systemd - hãy xem các trang web khác nhau đã gỡ lỗi huyền thoại hệ thống này. Tôi nghĩ rằng bạn có thể đã đọc sai câu hỏi - câu hỏi là về cấu hình KernEL sẽ bớt tẻ nhạt hơn, không phải là điều xảy ra sau đó: "Tôi muốn tối ưu hóa thời gian của mình lãng phí cho cấu hình mỗi hệ thống mới với phần cứng cụ thể" và việc sử dụng của tôi trường hợp rất giống nhau. Không giống nhau, nhưng tương tự. Tôi cũng cần một công cụ để làm cho cấu hình đơn giản hơn. Tôi cũng sẽ đề nghị tránh nói cho người khác biết HỌ dành thời gian của họ như thế nào - thay vào đó, hãy tập trung vào vấn đề trong tay.
shevy

0

Các câu trả lời ở trên, phần lớn, khá kinh khủng và vô dụng. Không ai thực sự đề xuất một giải pháp.

Tôi cũng đã tìm kiếm www và cố gắng tìm một "bộ cấu hình nhân linux tự động" - đó là cách tôi đến với câu hỏi được hỏi ở đây, và với nỗi buồn của tôi, không ai thực sự đưa ra câu trả lời tốt về cách giải quyết vấn đề này; chỉ những lý thuyết mỗi se, hoặc, tệ hơn, nói rằng làm thế nào là không thể.

Trường hợp sử dụng của tôi là một chút khác nhau, mặc dù; Tôi tự động quan tâm đến việc điều chỉnh tối đa kernel cho phần cứng nhất định, mặc dù điều đó cũng tốt. Trường hợp sử dụng của tôi chủ yếu là do "make menuconfig" chiếm quá nhiều thời gian đối với tôi. Ngày càng có nhiều tùy chọn kernel và việc tìm kiếm những gì tôi cần mất quá nhiều thời gian thông qua giao diện ncurses (và giao diện qt thậm chí còn tệ hơn).

Theo như tôi hiểu, toàn bộ cấu hình kernel là một tệp cho bạn có "y" cho có và "n" cho không - còn gọi là bật hoặc tắt chức năng. Vì vậy, chúng ta có thể dễ dàng tự động tạo ra điều này, bằng cách sử dụng các ngôn ngữ lập trình lành mạnh như ruby ​​và python.

Tôi tin rằng một khi một công cụ như vậy tồn tại, tối ưu hóa điều này vào các cấu hình khác nhau không quá khó. Mọi người thường sao chép cấu hình cũ vào / boot /, để sao lưu và cũng sử dụng lại cấu hình đó để chạy cấu hình kernel mới.

Cuối cùng tôi có thể viết một trình cấu hình kernel tự động nhưng rõ ràng điều này cần một chút thời gian, một số thử nghiệm ... khi tôi hoàn thành, nó sẽ có sẵn trong một trong các dự án ruby ​​của tôi, với tài liệu để những người khác có thể chuyển nó sang các ngôn ngữ khác nếu họ muốn thích. Tôi cũng khuyến khích mọi người khác nhìn thấy câu hỏi cũ này ở đây, và những thông điệp không khuyến khích khá vô ích đã từ bỏ, hãy bỏ qua những người không tán thành này, và thay vào đó, hãy cùng nhau giúp loại bỏ sự cần thiết điều chỉnh thủ công cho cấu hình kernel trong chung. Trong thời đại của AI, điều này thực sự nên là một cái gì đó có thể giải quyết.

Và có lẽ, về lâu dài, chúng ta sẽ nhận được câu trả lời TỐT HƠN và giải pháp thực tế cho vấn đề này.

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.