새로운 바닐라 커널 구축 - 생성된 deb와 약간의 혼동

새로운 바닐라 커널 구축 - 생성된 deb와 약간의 혼동

그래서 2.6.39-4를 빌드해보고 싶었습니다. 나는 다음의 절차를 따랐다.우분투 위키 "GitKernelBuild" 페이지.

간단히 말해서, tar.bz2를 다운로드하고, 추출하고, 이전 구성을 복사하고, oldconfig를 만든 다음

fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

모든 것이 잘 진행되었습니다. 한 가지 작은 점을 제외하고는 지금 이 커널을 사용하고 있습니다. 다른 모듈을 빌드하거나 dkms 등을 빌드할 수 없습니다. 추가 정보는 다음과 같습니다.

생성된 deb 파일은 다음 두 가지입니다.

linux-image-2.6.39.4-custom_2.6.39.4-custom-10.00.Custom_amd64.deb
linux-headers-2.6.39.4-custom_2.6.39.4-custom-10.00.Custom_amd64.deb

나는 이것 때문에 약간 혼란 스럽습니다.

일반 우분투 커널에는 mainline-ppa 커널에도 세 개의 deb 파일이 설치되어 있습니다. 예를 들어,메인라인 ppa다음과 같은 패키지가 있습니다.

linux-image-2.6.39-02063904-generic_2.6.39-02063904.201108040905_amd64.deb
linux-headers-2.6.39-02063904-generic_2.6.39-02063904.201108040905_amd64.deb
linux-headers-2.6.39-02063904_2.6.39-02063904.201108040905_all.deb

보시다시피 두 가지 헤더 패키지가 있습니다. 실제로, 설치 후 메인라인 ppa 패키지는 /lib/modules 아래에 디렉토리를 생성합니다:

/lib/modules/2.6.39-02063904-generic

해당 디렉토리에는 /usr/src 아래의 -generic 헤더를 가리키는 심볼릭 링크가 존재합니다.

/lib/modules/2.6.39-02063904-generic/build -> /usr/src/linux-headers-2.6.39-02063904-generic

/usr/src 아래에 이 커널에 대한 두 개의 다른 디렉토리가 있습니다.

/usr/src/linux-headers-2.6.39-02063904-generic
/usr/src/linux-headers-2.6.39-02063904

이제 내 두 패키지의 문제는 다음과 같습니다.

/usr/src에는 폴더가 하나만 있습니다.

/usr/src/linux-headers-2.6.39.4-custom

그리고 /lib/modules 아래에 폴더가 있습니다

/lib/modules/linux-headers-2.6.39.4-custom

실제 문제이자 제가 이 게시물을 작성하는 이유는 위 디렉토리에 생성되는 다음 심볼릭 링크입니다.

/lib/modules/linux-headers-2.6.39.4-custom/build -> /home/nickped/projects/kernel/linux-2.6.39.4

보시다시피, 이는 제가 커널을 만든 디렉토리로 다시 연결됩니다. 물론 나중에는 존재하지 않을 수도 있습니다. 이로 인해 중요한 항목을 찾을 수 없기 때문에 다른 모듈(예: vmware, virtualbox 등)이 빌드되지 않습니다.

왜 이런 일이 발생합니까? 어떻게 고칠 수 있나요? 왜 deb 파일이 3개가 아닌 2개 생성되나요? 공식 릴리스에 있는 3가지 다른 deb 파일의 목적은 무엇이며, 다른 사람이 어떻게 만들 수 있습니까?

답변1

첫 번째 질문에 답하려면왜 패키지가 두 개 밖에 없나요?또는왜 헤더 파일이 두 개가 없나요?-- 크로스 컴파일되면 모든 사용 사례를 처리할 수 있도록 패키지됩니다. 헤더를 더 큰 크기로 분할하여모두패키지와 더 작은 아치별 패키지를 사용하면 이를 사용자에게 전달하는 대역폭을 절약할 수 있습니다. 직접 수행하는 경우 하나의 아치에만 필요하므로 하나의 헤더 파일이 필요합니다.

소스 위치로의 심볼릭 링크에 관해서도 동일한 문제가 발생했습니다. linux_source패키지를 생성하고(뒤에 추가하기만 하면 됨 kernel_image kernel_headers) 심볼릭 링크를 수동으로 수정하는 것 외에는 좋은 수정 방법을 찾지 못했습니다 .

실제로는 있습니다이미 이쪽에 관한 모든 질문. 장기적인 해결책은 각 커널 설치 후에 실행되어 단지 심볼릭 링크를 수정하는 스크립트를 해킹하는 것 같습니다.

관련 정보