Linux 커널 수정 파일을 재건하는 프로세스 만들기
-
21-08-2019 - |
문제
나는 맞춤형 우분투 커널 구축 소스 파일 중 하나를 수정했습니다. 빌드 명령을 발행 할 때 :
NOEXTRAS=1 skipabi=true skipmodule=true fakeroot debian/rules binary-insp8600
DEB를 재구성하지만 수정 된 소스 파일 중 어느 것도 재건되지 않습니다.
무슨 일이야? 소스 파일을 수정할 때마다 완전히 깨끗한 재건을해야합니까?
그것은 말이되지 않습니다.
수정 된 파일이있었습니다 ./init/main.c
.
NEATS BAINID-insp8600은 Inspiron 8600 노트북을 위해 만든 맞춤형 맛입니다.
해결책
debian/rules
커널 makefile이 아닙니다. 편집 한 파일이 최종 커널의 종속성이라는 것을 알 수있는 방법이 없습니다. 이러한 종속성은 실제 makefile에 있기 때문입니다.
사실, 나는 기대할 것이다 debian/rules
build
대상 (실제로 컴파일을 수행하는 사람)은 빌드를 완료 한 후 작성하는 "플래그"파일에만 의존합니다. 이 경우 간단한 해결 방법은 해당 "플래그"파일을 제거하는 것입니다. 그런 다음 모든 것을 다시 컴파일합니다 (커널을 호출하여 Makefile
, 부분 재건을 수행하는 방법을 알고 있습니다. 물론, 그것은 가정입니다 build
대상은 깔끔하려고하지 않고 make clean
또는 동등한 ...)
(나는 보지 않았다 debian/rules
당신이 사용하는 패키지의 경우, 그래서 나는 틀렸을 수도 있지만 적어도 그것은 시작입니다.)
다른 팁
Makefile의 종속성이 올바른 경우 깨끗한 빌드를 할 필요가 없습니다.
헤더 파일을 변경 한 파일입니까? 그런 다음 헤더 파일 종속성을 자동으로 추가하기 위해 Makedepend를 실행하면 :)
헤더 파일이 아닌 경우 컴파일의 일부인 경우 MakeFile의 종속성이어야합니다. 검색하고 사용중인 대상이 컴파일하려는 모듈에 따라 달라야합니다.