Linux 커널을 "완전히" 재구축하지 않음

Linux 커널을 "완전히" 재구축하지 않음

저는 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
...

답변1

이는 대상 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반대로 구축 하면 깔끔한 작업이 수행되지 않습니다. 어쨌든 소스 패키지가 필요하지 않을 수도 있습니다.

소스 타르볼의 빌드 아티팩트를 압축하고 싶지 않기 때문에 정리 작업을 수행하는 것 같습니다.

답변2

당신은 그것을 만들어 볼 수 있습니다예를 들어, 다른 도구를 사용하여 make-kpkg설치된 패키지입니다 .apt-get install kernel-package

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

이 명령을 make clean매번 실행하면 안 됩니다.

답변3

deb-pkg 명령의 makefile로 이동하여 스크립트에서 "make clean"을 제거하여 이 문제를 해결했습니다. 이것이 빌드에 어떤 나쁜 영향도 미치지 않는 것 같고, 저는 1~2주 동안 아무 문제 없이 커스텀 커널을 실행해 왔습니다. 어 허!

관련 정보