실제 커널 소스는 어디입니까? Linux 커널의

커널 컴파일을 배우기 위해 이것을 따르고 있습니다. 나는 사용했다

apt-get source linux-image-$(uname -r)

현재 사용중인 Linux 커널의 소스 코드를 다운로드하십시오.

위 명령을 실행 한 후 다음 파일 및 디렉토리가 다운로드되었습니다.

user $ ls -l
total 130972
drwxrwxr-x 27 sps sps      4096 Oct 16 03:10 linux-lts-vivid-3.19.0
-rw-rw-r--  1 sps sps  10980684 Oct  5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz
-rw-rw-r--  1 sps sps      7396 Oct  5 10:54 linux-lts-vivid_3.19.0-30.34~14.04.1.dsc
-rw-rw-r--  1 sps sps 123115155 May  6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz
user $

에서 같은 페이지가 언급 :

커널을 만드는 것은 매우 쉽습니다. 작업 디렉토리를 커널 소스 트리의 루트로 변경 한 후 다음 명령을 입력하십시오.

그러나 어느 것이 “커널 소스 트리의 루트”인지 확실하지 않습니다.

현재 디렉토리입니까 (내가 실행 한 위치 apt-get source ...와 위에 나열된 파일이있는 위치)?

또는 디렉토리입니까?

drwxrwxr-x 27 sps sps      4096 Oct 16 03:10 linux-lts-vivid-3.19.0

또는 타르볼을 추출해야합니까?

-rw-rw-r--  1 sps sps 123115155 May  6 21:35 linux-lts-vivid_3.19.0.orig.tar.gz

에 대한 출력 uname -r:

user $ uname -r
3.19.0-30-generic
user $



답변

로부터 데비안 위키 :

소스 패키지 는 원하는 소프트웨어를 컴파일하거나 빌드하는 데 필요한 모든 파일을 제공합니다.

가장 간단한 형태로 3 개의 파일로 구성됩니다.

  • .tar.gz로 끝나는 업스트림 타르볼

  • .dsc로 끝나는 설명 파일. 파일 이름과 내용 (Source : 키워드 뒤)에 패키지 이름이 들어 있습니다.

  • 업스트림 소스에 대한 변경 사항과 데비안 패키지 용으로 생성 된 모든 파일이 포함 된 tarball.

    • 이것은 .debian.tar.gz를 가지고 있습니다 (소스 형식 : 3.0)
    • 또는 .diff.gz 결말 (소스 형식 : 1.0)

우분투와 동일하며 귀하의 경우 :

  • “linux-lts-vivid-3.19.0”: 업스트림 타르볼 “linux-lts-vivid_3.19.0.orig.tar.gz”에서 시작하여 “linux-lts-vivid_3.19.0에 나열된 수정 사항으로 패치 된 실제 커널 -30.34 ~ 14.04.1.diff.gz “;
  • “linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.diff.gz”: 업스트림 소스에 대한 변경 사항과 데비안 패키지 용으로 만들어진 모든 파일이 포함 된 tarball;
  • “linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.dsc”: 설명 파일 “.dsc”끝. 파일 이름과 내용 (소스 : 키워드 뒤)에 패키지 이름이 들어 있습니다.
  • “linux-lts-vivid_3.19.0.orig.tar.gz”: “.tar.gz”로 끝나는 업스트림 타르볼 (제 경험상 항상 “.tar.gz”파일이 아니라는 점에 유의하십시오. “.tar.xz”와 같은 다른 형식);

를 실행하면 apt-get source linux-image-$(uname -r)“linux-lts-vivid-3.19.0″의 “linux-lts-vivid_3.19.0-30.34 ~ 14.04.1.diff.gz”에 나열된 수정 사항으로 업스트림 타르볼이 자동으로 패치됩니다.

% apt-get source linux-image-$(uname -r)
# ...
dpkg-source: info: extracting linux in linux-3.19.0
dpkg-source: info: unpacking linux_3.19.0.orig.tar.gz
dpkg-source: info: applying linux_3.19.0-30.34.diff.gz
# ...


답변

커널 트리의 루트는 디렉토리 linux-lts-vivid-3.19.0입니다.

다른 파일에 관하여 :

tarball에서 linux-lts-vivid_3.19.0.orig.tar.gz당신은 “바닐라”커널을 찾을 수 있습니다. 이 커널에 우분투 개발자들은 패치, 드라이버를 추가 diff하고에 압축 된 파일을 수집 했습니다 linux-lts-vivid_3.19.0-30.34~14.04.1.diff.gz.


답변

흠. 명령을 실행할 때

apt-get source linux-image-`uname -r`

이 명령은 소스 tarball을 자동으로 추출하고 패치하여 커널 다음에 호출되는 디렉토리를 작성해야합니다. 귀하의 경우, 그것은 ‘linux-lts-vivid-3.19.0’으로 보입니다-그것은 귀하의 디렉토리 목록에 있습니다.

따라서 이것이 소스 디렉토리이므로 다음을 실행해야합니다.

cd linux-lts-vivid-3.19.0

그런 다음 지침을 계속 따르십시오.


답변