Linux 커널 버전 접미사 +CONFIG_LOCALVERSION

Linux 커널 버전 접미사 +CONFIG_LOCALVERSION

시스템 시작 시 현재 부트로더 메뉴에 Linux 4.0.0-rc6yy 및 4.0.0-rc6yy.old가 표시됩니다. 나는 그들이 어디서 왔는지 잘 모르겠습니다. "yy"는 임의적인 것 같지만 누군가 ".old" 접미사를 설명할 수 있나요?

또한 .config에 CONFIG_LOCALVERSION 및 CONFIG_LOCALVERSION_AUTO가 무엇인지 설명할 수 있는 사람이 있습니까? 찾아봤는데 아직도 무슨 용도인지 모르겠네요. 매우 감사합니다.

답변1

커널을 설치하면 담당 스크립트가 디렉터리 kernel image에 복사됩니다 . 동일한 이름을 가진 이전 커널 이미지가 이미 존재하는 경우 이름에 .old를 추가하여 이름을 바꿉니다. initramfs/boot

CONFIG_LOCALVERSION:

커널 버전 끝에 추가 문자열을 추가합니다. 예를 들어 uname을 입력하면 이 정보가 나타납니다. 여기에서 설정한 문자열은 파일 이름이 localversion*과 일치하는 소스 트리의 모든 파일 내용과 개체에 순차적으로 추가됩니다. 총 문자열은 최대 64자까지 포함할 수 있습니다.

이는 원하는 경우 사용자 정의 커널에 특별한 버전 번호나 이름을 부여할 수 있음을 의미합니다. "-MyNewKernel"을 입력하면 커널은 다음과 같아야 합니다 Linux 4.0.0-MyNewKernel.

CONFIG_LOCALVERSION_AUTO:

그러면 현재 트리 개정판의 맨 위에 속하는 git 태그를 찾아서 현재 트리가 릴리스 트리인지 자동으로 확인하려고 시도합니다. 일치하는 localversion 1 파일 뒤와 CONFIG_LOCALVERSION에 설정된 값 뒤에
추가된 localversion에 -gxxxxxxxx 형식의 문자열이 추가됩니다 .

1 (여기에 사용된 실제 문자열은 다음 명령을 실행하여 생성된 처음 8자입니다.

$ git rev-parse --verify HEAD

이는 "scripts/setlocalversion" 스크립트에서 수행됩니다. )

즉, 활성화하면 setlocalversion(또는 .scmversion)에 의해 보고된 유일한 SCM(소스 코드 제어 관리) 태그가 커널 버전(있는 경우)에 추가됩니다. 예를 들어 Git 트리가 발견되면 개정 번호가 추가됩니다. 결과는 다음과 같습니다 Linux 4.0.0-MyNewKernel-ga2cfc42. 자세한 내용은 소스 트리 scipts/setlocalversion을 확인하세요.

관련 정보