현재 내 컴퓨터에서 실행 중인 커널의 소스 코드를 어떻게 찾을 수 있나요?

현재 내 컴퓨터에서 실행 중인 커널의 소스 코드를 어떻게 찾을 수 있나요?

내 컴퓨터에 Linux 3.14.0 kernel(CentOS 6.2)실행 중인 프로그램이 있지만 소스 코드가 없습니다 /usr/src/.

어디서 컴파일되었는지 알 수 있는 방법이 있나요?

소스 코드는 컴퓨터 어딘가에 있어야 하며 동료 중 한 명이 컴파일한 것입니다. 또한 이는 인터넷에 연결되지 않은 연구실 컴퓨터이므로 소스 코드를 수동으로 복사하고 설치해야 합니다.

현재 커널 이미지를 기반으로 대상을 지정하면 됩니다.

답변1

/lib/modules/$(uname -r)/source커널 소스 트리에 대한 심볼릭 링크여야 합니다(합리적인 방식으로 설치된 경우).

게다가

find / -type d -name "linux-3.14.0"

3.14.0 Linux 커널의 배포 디렉토리를 찾습니다. 이것은 tarball의 압축을 풀 때 얻을 수 있는 디렉토리입니다. 실패하면,

find / -type d -name "linux-*"
find / -type f -name "Kbuild"

너무 많은 오탐지를 제공해서는 안됩니다.

컴파일해야 하는 경우 소스 코드를 기계로 전송하고 임베디드 .config( CONFIG_IKCONFIG옵션)를 사용하여 컴파일한다면 처음부터 시작할 수 있습니다. /proc/config.gz커널이 지원하는 경우 - 옵션 참조 CONFIG_IKCONFIG_PROC) 에서 추출 하거나 scripts/extract-ikconfig커널 소스 디렉토리의 스크립트를 사용하여 추출할 수 있습니다.

그 외에는 동료에게 물어보는 것이 전혀 불가능한 일인가요?

관련 정보