커널을 컴파일하는 것은 이번이 처음입니다. 나는 신선한 미니멀리스트 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
커널 파일이 있는 폴더 구조의 공백에 문제가 있는 것 같습니다. 해당 공간을 제거한 후 모든 것이 잘 작동합니다!