Mengonfigurasi kernel Linux dengan aman secara terprogram

8

Saya sedang menulis sebuah skrip yang harus secara otomatis mengubah sejumlah opsi konfigurasi kernel Linux berdasarkan file input.
Cara termudah untuk melakukan ini tentu saja adalah dengan mengedit file .config secara langsung, tetapi ini tidak disarankan dan dapat menyebabkan masalah.
Saya sepertinya tidak bisa menemukan cara untuk melakukan ini "jalan yang benar".

"make help" tidak menunjukkan cara untuk mengubah opsi tunggal, begitu pula ./scripts/kconfig/conf --help. File ini pada kernel.org tampaknya juga tidak memiliki cara.
Bahkan Genkernel Gentoo secara manual mengubah file .config.

Jadi, pada dasarnya:
Apakah ada cara aman untuk mengubah opsi konfigurasi kernel secara terprogram, lengkap dengan pelacakan ketergantungan, dll.?
Bisakah Kconfig dijalankan secara manual untuk mencapai ini?

SharkWipf
sumber

Jawaban:

3

Yang saya lakukan adalah yang pertama:

make defconfig

Kemudian tambahkan perubahan pengaturan untuk .configdiikuti oleh:

make olddefconfig

Ini harus "memperbaiki" setiap inkonsistensi yang diperkenalkan dalam konfigurasi. YMMV karena mungkin tidak memperbaikinya seperti yang Anda harapkan.

DepresiDaniel
sumber
Terima kasih untuk balasan Anda! Saya sudah mempertimbangkan melakukan itu, tetapi seperti yang Anda katakan, YMMV. Jika ada 2 opsi yang saling bertentangan, tidak ada yang tahu mana yang akan diperbaiki.
SharkWipf
@SharkWipf Nah dalam hal apa pun saya harapkan hasilnya menjadi deterministik. Jadi jika hasilnya tidak seperti yang Anda inginkan, tambahkan saja pernyataan lain mematikan hal yang bertentangan dan ulangi proses ini sampai berhasil.
DepressedDaniel
Benar, tetapi mungkin mengacaukan dengan opsi lain dengan cara saya tidak dapat memeriksa, dan karena saya akhirnya ingin menempatkan skrip ini di github, saya ingin itu menjadi stabil dan dapat diandalkan mungkin. Secara umum skrip ini akan digunakan untuk memodifikasi konfigurasi kernel yang ada, yang dibuat oleh pengguna, daripada menghasilkan yang baru, sehingga sulit untuk membuatnya bekerja dengan andal dengan cara ini.
SharkWipf
@SharkWipf Ya, sepertinya apa yang Anda coba capai memerlukan AI macam;) Solusi konvensional adalah memberikan default yang berfungsi dan membiarkan orang menyesuaikan jika mereka berani.
DepressedDaniel
jika saya ingin melakukannya sepenuhnya secara manual, ya. Tapi saya berharap akan ada beberapa cara saya bisa menggunakan Kconfig untuk mensimulasikan "mencentang kotak" di menuconfig, karena sepertinya itu adalah sesuatu. Pada dasarnya yang ingin saya lakukan adalah memperbolehkan pengguna untuk menyalin persyaratan kernel dari wiki Gentoo, menyelesaikannya dengan nilai-nilai konfigurasi yang tepat jika memungkinkan (cukup mudah), dan kemudian memperbarui konfigurasi yang sesuai (setelah review pengguna tentu saja). Jadi tidak ada "default" dalam kasus ini.
SharkWipf
0

Saya akan mencari patch dari file .config. Langkah-langkah yang harus Anda ambil untuk mempersiapkannya adalah

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

Kemudian, di skrip Anda tambahkan baris ini

patch .config myconfig.$(kern_vers).patch
debuti
sumber