Membangun kembali kernel Linux tanpa "clean"

11

Saya sedang membangun kernel khusus berdasarkan 4.11 (untuk Mintx64, jika itu penting). Saya sudah mengkompilasi dan menginstalnya untuk membuktikan bahwa itu berfungsi. Sekarang saya telah membuat beberapa perubahan kecil pada beberapa file (pada subsistem driver dan net, ini sebabnya saya perlu mengkompilasi kernel kustom di tempat pertama!)

Sekarang saya ingin membangun kernel yang dimodifikasi. Namun ketika saya lari

fakeroot make -j5 deb-pkg LOCALVERSION=myname KDEB_PKGVERSION=1 

Sistem build kelihatannya dimulai dengan "membersihkan" -menyimpan seluruh barang, jadi saya menghentikannya dengan cepat. Sayangnya komputer yang saya gunakan tidak diberkati dengan CPU yang baik dan membutuhkan waktu berjam-jam untuk membangun dari awal. Karena itu saya lebih suka menghindari melakukannya lagi jika mungkin!

Apakah mungkin untuk membuat build tambahan tanpa semuanya menjadi "bersih" atau apakah ini persyaratan dari sistem kernel build?

Output yang saya dapatkan adalah:

CHK      include/config/kernel.release
make clean
CLEAN .
CLEAN arch/x86/lib
...
T Kilney
sumber
@ jc__ lihat output dari build di atas, saya tidak bisa segera menemukan di mana makefile untuk target itu, tapi saya masih mencari :)
T Kilney

Jawaban:

12

The make cleanhanya untuk deb-pkgsasaran. Lihatlah scripts/package/Makefile:

deb-pkg: FORCE
        $(MAKE) clean
        $(call cmd,src_tar,$(KDEB_SOURCENAME))
        $(MAKE) KBUILD_SRC=
        +$(call cmd,builddeb)

bindeb-pkg: FORCE
        $(MAKE) KBUILD_SRC=
        +$(call cmd,builddeb)

Jika Anda membangunnya bindeb-pkg, itu tidak akan membersihkan. Anda mungkin tidak memerlukan paket sumbernya.

Saya menduga itu melakukan pembersihan karena tidak ingin membangun artefak di tarball sumber.

RawwrBag
sumber
2

Anda dapat mencoba membuat paket deb tersebut dengan alat berbeda, make-kpkgyang diinstal oleh apt-get install kernel-package. Lalu misalnya

make-kpkg --rootcmd=fakeroot --initrd --uc --us -j2 kernel_image kernel_headers

Perintah ini seharusnya tidak melakukan make cleansetiap waktu.

JJ Hakala
sumber
1

Saya memperbaiki ini dengan masuk ke makefile untuk perintah deb-pkg dan menghapus "make clean" dari skrip. Ini sepertinya tidak menyebabkan efek buruk dengan build dan saya telah menjalankan kernel kustom selama satu atau dua minggu sekarang tanpa masalah. YMMV!

T Kilney
sumber