사용자 정의 커널 빌드를 실행하는 사람들에게 적합하도록 사소한 커널이 업데이트되었습니다.

사용자 정의 커널 빌드를 실행하는 사람들에게 적합하도록 사소한 커널이 업데이트되었습니다.

상황을 상상해보세요.

당신은 자신만의 커스텀 커널을 실행하고 있습니다 . 새로운 작은 업데이트가 출시되었습니다. 그것이 어제 출시되었고 이미 실행 중이라고 .config가정해 보겠습니다 .5.16.165.16.15

어떻게 결정합니까?~ 해야 하다5.16.16변경 사항이 포함됨실제로설정에 영향을 미치나요? 컴파일하고 다시 시작해야 합니까, 아니면 0으로 변경되어 안전하게 건너뛸 수 있습니까?

나는 이것에 대해 생각하고 있습니다 :

  • 패치 적용
  • 커널 버전을 이미 실행 중인 버전으로 되돌립니다.
  • 커널을 빌드하고 임시 디렉터리에 설치합니다.
  • 바이너리 비교 결과 파일

이것은 것이다아니요. 모듈은 일치할 수 있지만(완전히 확실하지는 않습니다) vmlinuz빌드 날짜/시간과 커널이 빌드된 횟수를 식별하는 숫자(예: Linux localhost.localdomain 5.16.15 #1 SMP PREEMPT Thu Mar 17 11:20:15 2022 x86_64 x86_64 x86_64 GNU/Linux- 보시다시피) 가 포함되어 있으므로 다를 것입니다 #1.

이건 어떻게든 건너뛰어야 합니다.

즉, 지역 변수를 무시하는 재현 가능한 커널 빌드를 찾고 있습니다.

가지다턱시도 만들기 하지만 내 사용자 정의 .config를 사용하는 방법을 모르겠습니다. 그게 전부입니다.

답변1

여기서 알아야 할 사항을 알려주는 재현 가능한 커널 빌드를 얻는 쉬운 방법은 없습니다.

그러나 이제 커널 빌드는 실제로 다시 빌드해야 하는 파일만 다시 빌드하는 데 매우 능숙하므로 이를 사용하여 범프의 관련성을 잘 나타낼 수 있습니다.

$ git checkout v5.16.14
$ make bzImage modules
$ md5sum $(find . -name \*.o | sort) > v5.16.14.sums
$ git checkout v5.16.15
$ make bzImage modules
$ md5sum $(find . -name \*.o | sort) > v5.16.15.sums

(및 위의 사용은 커널의 파일 이름 지정 제한으로 인해 find낙관적으로 가능합니다 .)sort

vmlinux.o및 파일 kallsyms이외의 대상 파일에 변경 사항이 표시되면 해당 소스 파일의 변경 사항을 조사할 수 있습니다.

가장 안정적인 포인트 릴리스의 이탈 정도를 고려하면 이는 다음과 같습니다.아무것도 없다빌드를 변경하는 소스 코드에서. 를 사용하면 make allnoconfig최소 x86-64 커널은 5.16.14와 5.16.15 사이에 25개의 변경된 개체를 표시합니다.

관련 정보