Saya ingin mengotomatisasi membangun Linux tapi akhirnya sampai ke titik di mana saya harus menjalankan apa yang tampaknya menjadi langkah yang sangat panduan: make menuconfig
. Ini tampaknya menyinkronkan konfigurasi antara OS dan konfigurasi kernel?
cp git-tracked-config .config
make defconfig
make menuconfig # <- how to automate/script this?
make V=s
Pada dasarnya, bagaimana cara menghapus panggilan ke make menuconfig
untuk skrip pembuatan?
Sebagai tambahan, ini sebagai reaksi terhadap kesalahan build yang tampaknya terjadi ketika saya berlari tanpa pernah memanggil make menuconfig:
make[1]: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
Yang tampaknya ada aturan yang hilang dalam makefile mungkin karena makefile itu sendiri TIDAK ada atau makefile belum dibuat / diubah untuk mengandung aturan itu tetapi itu adalah pertanyaan yang terpisah.
Mungkin ada cara yang lebih cerdas untuk mendekati ini secara bersamaan. Apakah ada konfigurasi lain yang tidak saya lacak tetapi harus (mis. Oldconfig)?
sumber
make olddefconfig
?Jawaban:
Sistem kernel Linux memberikan banyak target pembuatan, cara terbaik untuk mengetahuinya adalah dengan melakukan
make help
:Seperti yang dikatakan Jimmij dalam komentar, bagian yang menarik ada di
oldconfig
target terkait.Secara pribadi, saya akan merekomendasikan Anda untuk mencari
silentoldconfig
(jika tidak ada yang berubah dalam.config
file atauolddefconfig
jika Anda memperbarui.config
file Anda dengan kernel baru.sumber
randconfig
mengejutkan saya. Agaknya digunakan untuk menguji bangunan dengan menghasilkan kombinasi yang tidak mungkin?make randconfig
? (di situs web 'Tanya Ubuntu').merge_config.sh
fragmen konfigurasiSayangnya, substitusi proses tidak berfungsi:
karena: https://unix.stackexchange.com/a/164109/32558
merge_config.sh
adalah front-end sederhana untukmake alldefconfig
target.Ketika kompilasi silang,
ARCH
harus diekspor saat Anda menjalankanmerge_config.sh
, misalnya:File output gabungan dapat ditentukan secara eksplisit dengan
KCONFIG_CONFIG
variabel lingkungan; kalau tidak, itu hanya akan menimpa.config
:Buildroot mengotomatiskannya dengan
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
: /programming/1414968/how-do-i-configure-the-linux-kernel-within-buildrootTerkait: /programming/7505164/how-do-you-non-interactive-turn-on-features-in-a-linux-kernel-config-file
sumber
Saya memiliki masalah yang sama karena saya ingin memutakhirkan kernel CentOS saya dan perlu melakukannya pada beberapa mesin. Asumsikan di sini pohon kernel CentOS saya yang baru ada di /linux-5.1 (Saya masuk ke akun root)
cd /linux-5.1
make menuconfig
dan lakukan perubahan Anda dan simpan untuk.config
/linux-5.1/.config
file ke server pengembangan Anda.config
file dari server pengembangan Anda ke/linux-5.1/.config
pada mesin baru.Semoga ini bisa membantu seseorang dalam kesulitan yang sama.
sumber