사용자 정의 컴파일된 커널에서 라이브 이미지를 빌드하는 방법은 무엇입니까? (현장에서 제작)

사용자 정의 컴파일된 커널에서 라이브 이미지를 빌드하는 방법은 무엇입니까? (현장에서 제작)

PXE 사용자 정의 커널 이미지를 부팅하기 위한 최종 인프라를 생성하고 싶지만 프로세스 전체에서 live-build이전에 도구로 컴파일된 사용자 정의 커널 이미지를 사용하여 중간 "라이브" CD ISO를 생성할 수 없었습니다.

lb기본 버전 대신 자체 커널 deb 패키지를 사용하기 위해 구성/라이브 빌드 도구를 지정하는 방법/위치를 모르겠습니다 amd64-kernel.

해당 매개변수를 사용해야 한다고 생각하는데 --linux-packages어떻게 하는지 잘 모르겠습니다. 어떤 종류의 정보나 예도 찾을 수 없습니다. 맨 페이지 등을 모두 읽었지만 막혔습니다.

내 현재 auto/lb구성:

*lb config no auto \  
    --architectures amd64 \  
    --distribution stretch \    
    --system live \  
    --chroot-filesystem squashfs \  
    --apt-recommends false \  
    --apt-indices none \  
    --memtest none \  
    --debian-installer false \  
    --interactive shell \  
    --bootloaders syslinux \ 
    --bootappend-live "boot=live components hostname=test username=test sudo" \  
    "${@}"*

사용자 정의 컴파일된 커널을 사용하여 라이브 이미지를 만드는 방법은 무엇입니까?

답변1

늦어서 미안하지만 이 작업을 원하는 다른 분들을 위해... 음, 사용자 정의 컴파일된 커널 deb를 config/packages.chroot 폴더에 넣으면... lb build가 자동으로 설치합니다.

답변2

Sounak Kar가 말했듯이 사용자 정의 커널을 config/packages.chroot 폴더에 넣어야 합니다.

커널 이름은 "-arch"로 끝나야 하며 "arch"를 아키텍처로 바꿔야 합니다. amd64의 경우 4스레드 CPU의 경우 다음 명령을 사용하여 컴파일할 수 있습니다.

make bindeb-pkg -j4 LOCALVERSION="-custom-amd64" KDEB_PKGVERSION="1"

chroot 빌드 끝에 후크를 추가하여 내장 커널을 제거하고 사용자 정의 커널에 대한 initramfs를 생성할 수 있습니다.

예를 들어 실행 파일 이름은 다음과 같습니다.config/hooks/normal/0600-kernel.hook.chroot

#!/bin/sh

set +e

# delete built-in kernel of bookworm:
apt -y remove linux-image-amd64
apt -y remove linux-image-6.0.0-*
apt -y autoremove
apt -y clean

# make initramfs for all installed kernels:
update-initramfs -c -k all

set -e

Bookworm Live DVD를 만들기 위한 이 스크립트에서는 apt -y remove뒤에 오는 내장 커널 이름을 빌드 중인 배포판에 의해 설치된 커널 이름으로 바꿔야 합니다.

관련 정보