대상 'deb-pkg'에 대한 커널 컴파일 오류 레시피가 실패했습니다.

대상 'deb-pkg'에 대한 커널 컴파일 오류 레시피가 실패했습니다.

나는 도전을 위해 Linus의 git 저장소에서 복제된 최신 커널을 컴파일하고 있습니다.
1. 크로스 컴파일 도구 설치

sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev  

2. 최신 Git 저장소를 복제하세요.

$ git clone https://github.com/torvalds/linux.git  

3. 현재 빌드 구성을 소스 트리의 루트에 복사하고 구성 파일을 업데이트합니다.

yes '' | make oldconfig  

4. make clean
5. 리눅스 이미지와 .deb 헤더 파일 만들기

make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom  

몇 분 동안 컴파일한 후 오류가 나타납니다.

dpkg-genchanges: warning: package linux-firmware-image-4.2.0-rc3-custom listed in files list but not in control info
dpkg-genchanges: warning: package linux-headers-4.2.0-rc3-custom listed in files list but not in control info
dpkg-genchanges: warning: package linux-headers-4.3.0-rc1-eudyptula listed in files list but not in control info
dpkg-genchanges: warning: package linux-image-4.2.0-rc3-custom-dbg listed in files list but not in control info
dpkg-genchanges: warning: package linux-image-4.3.0-rc1-eudyptula listed in files list but not in control info
dpkg-genchanges: warning: package linux-image-4.2.0-rc3-custom listed in files list but not in control info
dpkg-genchanges: warning: package linux-image-4.3.0-rc1-eudyptula-dbg listed in files list but not in control info
dpkg-genchanges: warning: package linux-firmware-image-4.3.0-rc1-eudyptula listed in files list but not in control info
dpkg-genchanges: error: package linux-image-4.2.0-rc3-custom-dbg has section kernel in control file but debug in files list
scripts/package/Makefile:91: recipe for target 'deb-pkg' failed
make[1]: *** [deb-pkg] Error 255
Makefile:1226: recipe for target 'deb-pkg' failed
make: *** [deb-pkg] Error 2 

.deb 패키지를 생성하는 동안 오류가 발생한 것 같습니다. 오류 메시지가 정말 이해가 안 돼요.

 linux-image-4.2.0-rc3-custom-dbg has section kernel in control file but debug in files list  

무슨 뜻이에요? 도와주세요!

답변1

첫째, yes '' | make oldconfig이 단계는 를 통해 더 쉽게 수행할 수 있습니다 make olddefconfig.

그래도,

무슨 일이 일어나는지는 커널이 디렉토리에 정확히 따르지 않는 Makefile많은 파일을 생성한다는 것입니다.debian/사양. 이는 수년에 걸쳐 빌드 도구에서 이 사양이 점진적으로 더 엄격하게 적용되는 것과 결합되어 과거에 작동했던 해킹( .deb에 나열되지 않은 패키지 debian/control또는 나열되었지만 다른 세부 정보가 있는 패키지 생성)이 요즘 더 이상 작동하지 않음을 의미합니다. .

make deb-pkg개인적으로 나는 일반 커널용 데비안 패키지를 빌드하는 접근 방식을 반대하는 것을 권장합니다 . 이렇게 하려면 kernel-package데비안 자체 패키지를 사용하는 것이 더 효율적인 IME 접근 방식입니다.

apt install kernel-package fakeroot
cd /path/to/git/checkout
make defconfig
make-kpkg --rootcmd fakeroot kernel_image

.config그러면 데비안 시스템에 설치할 수 있는 패키지(생성한 파일 포함)가 제공됩니다.

답변2

저도 같은 문제가 있었는데 체리피킹으로 해결했어요이번 패치내 나무를 입력하세요:

을 함으로써 해결될 수도 있을 것 같습니다.

rm -f debian/files

관련 정보