내 System.map 파일에 "Version_XXXXX" 줄이 포함되지 않는 이유는 무엇입니까?

내 System.map 파일에 "Version_XXXXX" 줄이 포함되지 않는 이유는 무엇입니까?

이 질문에 대해서는 이전에 제가 물었습니다.Linux 커널: "맵 파일을 찾을 수 없습니다"

내 Linux 커널 버전(4.12.7)에서 생성된 System.map 파일에는 다음 줄이 포함되어 있지 않습니다.

[address] [type] Version_XXXXX

(여기서 "XXXXX"는 베이스 256으로 인코딩된 커널 버전입니다.)

klogd가 맵 파일이 실행 중인 커널 버전과 동일한지 확인하기 위해 찾고 있는 내용이기 때문에 파일에 이 줄이 포함되어야 한다고 생각합니다(현재는 맵 파일을 거부하고 있습니다).

그러면 왜 이 줄이 생성되지 않습니까? 이전에 커널을 구축하는 데 비슷한 문제가 있었던 사람이 있습니까? 맵 파일과 관련된 구성 옵션이 있나요?

다른 사용자가 자신의 System.map 파일에 이와 같은 줄이 포함되어 있는지 확인할 수 있다면 좋을 것입니다(특히 SysVinit를 실행 중인 경우).

답변1

나는 그것을 "linux-kernel" 메일링 리스트를 통해 커널 개발팀에 제출했습니다. 그는 이것을 조사한 결과 커널 버전 2.6.27에 변경 사항이 있었고 버전 행은 CONFIG_KALLSYMS 옵션이 다음과 같은 경우에만 System.map 파일에 인쇄됩니다.아니요활성화되었습니다. 내 커널(및 아마도 기본적으로 대부분의 다른 커널)의 경우 활성화되어 있습니다. 이는 klogd가 맵 파일을 허용하지 않음을 의미합니다.

그는 버전 줄이 항상 포함되도록 변경하면 좋겠다고 말했습니다(결국 그것은 단지 텍스트 한 줄일 뿐입니다). 그는 그것이 다음 릴리스 버전에 포함될 것이라고 보장하지는 않지만 그렇게 되기를 바라고 있습니다. 또한 CONFIG_KALLSYMS를 비활성화하면 필요한 경우 버전 행이 인쇄됩니다.

관련 정보