Debian Linux에서 커널 4.2를 컴파일할 때 발생하는 문제(Jessie)

Debian Linux에서 커널 4.2를 컴파일할 때 발생하는 문제(Jessie)

커널을 컴파일하는 것은 이번이 처음입니다. 나는 신선한 미니멀리스트 Debian Jessie를 설치했는데...

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils
sudo apt-get install kernel-package

커널 가져오기

cd /mnt/local/btrfs_a/Kernel\ Downloads/
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.2.tar.xz

정제

tar xvf linux-4.2.tar.xz
cd linux-4.2

기존 커널 구성 파일 복사

cp /boot/config-$(uname -r) .config

다음 줄은 변경되지 않았습니다.

make menuconfig
make-kpkg clean

엮다

fakeroot make-kpkg --initrd --revision=1.0.NAS kernel_image kernel_headers

그러나 결과는 다음과 같습니다.

IHEX    firmware/yam/1200.bin
IHEX    firmware/yam/9600.bin
make[1]: Leaving directory '/mnt/local/btrfs_a/Kernel Downloads/linux-4.2'
COLUMNS=150 dpkg -l 'gcc*' perl dpkg 'libc6*' binutils make dpkg-dev |\
awk '$1 ~ /[hi]i/ { printf("%s-%s\n", $2, $3) }'> debian/stamp/build/info
uname -a >> debian/stamp/build/info
echo using the compiler: >> debian/stamp/build/info
if [ -f include/generated/compile.h ]; then                      \
   grep LINUX_COMPILER include/generated/compile.h |             \
     sed -e 's/.*LINUX_COMPILER "//' -e 's/"$//' >>             \
               debian/stamp/build/info;                                  \
        elif [ -f include/linux/compile.h  ]; then                       \
    grep LINUX_COMPILER include/linux/compile.h |                \
      sed -e 's/.*LINUX_COMPILER "//' -e 's/"$//' >>            \
                debian/stamp/build/info;                                 \
         fi
echo done > debian/stamp/build/kernel
/usr/bin/make -f ./debian/rules         debian/stamp/binary/pre-linux-image-4.2.0
make[1]: Entering directory '/mnt/local/btrfs_a/Kernel Downloads/linux-4.2'
====== making target debian/stamp/install/linux-image-4.2.0 [new prereqs: ]======
This is kernel package version 13.014+nmu1.
rm -f -r .//mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0 .//mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0.deb
install -p -d -o root -g root  -m  755 /mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0/etc/kernel/postinst.d /mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0/etc/kernel/preinst.d \
              /mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0/etc/kernel/postrm.d /mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0/etc/kernel/prerm.d
install -p -d -o root -g root  -m  755 /mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0//boot
install -p -d -o root -g root  -m  755 /mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0/usr/share/doc/linux-image-4.2.0/examples
install -p    -o root -g root  -m  644 debian/changelog /mnt/local/btrfs_a/Kernel Downloads/linux-4.2/debian/linux-image-4.2.0/usr/share/doc/linux-image-4.2.0/changelog.Debian
install: target ‘Downloads/linux-4.2/debian/linux-image-4.2.0/usr/share/doc/linux-image-4.2.0/changelog.Debian’ is not a directory
debian/ruleset/targets/image.mk:34: recipe for target 'debian/stamp/install/linux-image-4.2.0' failed
make[1]: *** [debian/stamp/install/linux-image-4.2.0] Error 1
make[1]: Leaving directory '/mnt/local/btrfs_a/Kernel Downloads/linux-4.2'
debian/ruleset/local.mk:105: recipe for target 'kernel_image' failed
make: *** [kernel_image] Error 2

좋아, 내 초기 폴더는 ../Kernel Downloads/..였습니다. 변덕스럽게 "KernelDownloads"(공백 없이)로 변경하고 (맨 위에서) 다시 컴파일해 보았습니다. 이제 나에게 많은 질문을하고 있습니다. 이것이 정상입니까? 방금 Enter 키를 눌러 기본값을 가져왔습니다. 이것이 옳은 일입니까?

답변1

많은 질문을 받는 것도 커널을 만드는 한 가지 방법입니다. 제가 아는 것은 조금 오래되었지만 "make xconfig"로 시작한 다음 구성을 탐색하는 경향이 있습니다. 같은 문제인데 덜 잔인하게 느껴집니다.

모든 기본값을 사용하는 것이 좋습니다.

답변2

커널 파일이 있는 폴더 구조의 공백에 문제가 있는 것 같습니다. 해당 공간을 제거한 후 모든 것이 잘 작동합니다!

관련 정보