다른 컴퓨터에서 데비안용 커널 빌드: GRUB: 메모리 부족

다른 컴퓨터에서 데비안용 커널 빌드: GRUB: 메모리 부족

Intel Elkhartlake 평가판을 방문했습니다. 문제는 이 플랫폼이 실제로 효율적인 플랫폼이 아니라는 점이다. 쉽게 뜨거워지며 16GB CFast 메모리 카드와 1GB RAM만 있습니다. 커널 버전 5.10-23으로 데비안 불스아이를 설치했고, 소스 패키지를 설치하고 커널을 다시 빌드해 보았습니다. 시스템이 안정적으로 작동하지 않았기 때문에 다음을 수행했습니다.

#create workspace folder
mkdir kernel
cd kernel

#Copy Kernel Sources from target system to a more powerful Ubuntu Machine:
scp user@evb-elkhartlake:/usr/src/linux-source-5.10.tar.xz .

#extract Kernel Sources
tar -xf linux-source-5.10.tar.xz
cd linux-source-5.10

#copy running kernel config
scp user@evb-elkhartlake:/boot/config-5.10.0-23-amd64 ./.config

#changed CONFIG_SYSTEM_TRUSTED_KEYS="debian/certs/debian-uefi-certs.pem" to CONFIG_SYSTEM_TRUSTED_KEYS=""
#changed CONFIG_BUILD_SALT="5.10.0-23-amd64" to CONFIG_BUILD_SALT="5.10.0-23-amd64-bae-mx"

make -j$(nproc)

이는 문제 없이 빌드되지만 커널을 업로드하고 시작하면 다음과 같습니다.

NEW_KERNEL_PATH="/boot/vmlinuz-dev"
GRUB_CONFIG="/etc/default/grub"
KERNEL_PARAMETERS="quiet splash"  # Add any additional parameters you need
KERNEL_ENTRY="GRUB_DEFAULT=$NEW_KERNEL_PATH"

# Append kernel entry and parameters to GRUB config
sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT=\"$KERNEL_PARAMETERS\"/" $GRUB_CONFIG
sed -i "s|^GRUB_DEFAULT=.*|$KERNEL_ENTRY|" $GRUB_CONFIG

update-grub

재부팅 후 GRUB가 다음 오류 메시지와 함께 중지됩니다. 메모리 부족

그런 다음 커널 크기를 확인했습니다. 엄청납니다. (vmlinuz-5.10.0-23-amd64와 비교한 vmlinuz-dev)

ls -alh
total 670M
drwxr-xr-x  4 root root 4.0K Aug  9 18:03 .
drwxr-xr-x 19 root root 4.0K Aug  8 17:03 ..
...
-rw-r--r--  1 root root 6.8M Jul 28 00:17 vmlinuz-5.10.0-23-amd64
-rw-r--r--  1 root root 6.8M Aug  8 18:19 vmlinuz-5.10.0-23-amd64-official
-rw-r--r--  1 root root 6.6M Sep 23  2021 vmlinuz-5.10.0-8-amd64
-rw-r--r--  1 root root 533M Aug  9 18:03 vmlinuz-dev

커널 구성을 다음 위치에 업로드했습니다.https://pastebin.com/p4CtiS4N

커널 크기가 기본적으로 재구축되는 원인이 무엇인지 말해 줄 수 있는 사람이 있습니까? 나는 이전에 데비안이 아닌 시스템에서 데비안을 구축한 적이 없습니다. (IT 승인 이미지를 사용해야 하기 때문에 운영체제를 변경할 수 없습니다.)

답변1

배치된 파일은 어디서 가져오나요 /boot/vmlinuz-dev? 와 같은 파일인가요 (kernel source dir)/arch/x86/boot/bzImage?

뭐라고 file /boot/vmlinuz-dev?

실수로 모든 디버깅 기호가 포함된 버전을 얻을 수도 있습니다. 크래시 덤프를 분석하고 다른 디버깅을 수행할 때 유용할 수 있지만 기본 커널 이미지 파일은 그다지 크지 않아야 합니다.

관련 정보