การสร้างเคอร์เนล Linux ใหม่โดยไม่“ สะอาด”


11

ฉันกำลังสร้างเคอร์เนลที่กำหนดเองโดยอ้างอิงจาก 4.11 (สำหรับ Mintx64 หากเป็นเรื่องสำคัญ) ฉันได้รวบรวมและติดตั้งแล้วเพื่อพิสูจน์ว่ามันใช้งานได้ ตอนนี้ฉันได้ทำการเปลี่ยนแปลงเล็กน้อยในไฟล์สองสามไฟล์ (ในไดรเวอร์และระบบย่อยสุทธินี่คือสาเหตุที่ฉันต้องคอมไพล์เคอร์เนลแบบกำหนดเองตั้งแต่แรก!)

ตอนนี้ฉันต้องการสร้างเคอร์เนลที่แก้ไข อย่างไรก็ตามเมื่อฉันวิ่ง

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

ระบบการสร้างดูเหมือนจะเริ่มต้นด้วย "สะอาด" - โหลดสิ่งของทั้งหมดดังนั้นฉันจึงหยุดมันอย่างรวดเร็ว โชคไม่ดีที่คอมพิวเตอร์ที่ฉันใช้ไม่มี CPU ที่ดีและใช้เวลาหลายชั่วโมงในการสร้างตั้งแต่เริ่มต้น ดังนั้นฉันควรหลีกเลี่ยงการทำมันอีกครั้งถ้าเป็นไปได้!

เป็นไปได้หรือไม่ที่จะสร้างบิลด์ที่เพิ่มขึ้นโดยไม่มีทุกสิ่งที่จะ "สะอาด" หรือนี่เป็นข้อกำหนดของระบบสร้างเคอร์เนล?

ผลลัพธ์ที่ฉันได้รับคือ:

CHK      include/config/kernel.release
make clean
CLEAN .
CLEAN arch/x86/lib
...

@jc__ เห็นผลลัพธ์จากการสร้างข้างต้นผมไม่สามารถหาที่ทันที Makefile สำหรับเป้าหมายที่เป็น แต่ฉันยังคงมอง :)
T Kilney

คำตอบ:


12

make cleanเป็นเพียงการdeb-pkgกำหนดเป้าหมาย ดูที่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)

หากคุณสร้างสิ่งbindeb-pkgทดแทนมันจะไม่ทำความสะอาด คุณอาจไม่ต้องการแพ็กเกจแหล่งข้อมูลอยู่ดี

ฉันสงสัยว่ามันจะไม่สะอาดเพราะมันไม่ต้องการที่จะสะสมสิ่งประดิษฐ์ในแหล่ง tarball


2

คุณอาจจะลองผลิตผู้debแพคเกจด้วยเครื่องมือที่แตกต่างกันที่มีการติดตั้งโดยmake-kpkg apt-get install kernel-packageยกตัวอย่างเช่น

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

คำสั่งนี้ไม่ควรทำในmake cleanแต่ละครั้ง


1

ฉันแก้ไขได้โดยไปที่ makefile สำหรับคำสั่ง deb-pkg และลบ "make clean" ออกจากสคริปต์ ดูเหมือนจะไม่ทำให้เกิดผลเสียใด ๆ กับบิลด์และฉันได้ใช้เคอร์เนลที่กำหนดเองเป็นเวลาหนึ่งหรือสองสัปดาห์โดยไม่มีปัญหา YMMV!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.