
$ mkdir kernel
$ cd kernel$ wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.11.tar.xz
$ tar xvf linux-6.6.11.tar.xz
$ cd linux-6.6.11export PATH=$PATH:$HOME/x-tools/arm-hello-linux-uclibcgnueabihf/bin$ arm-linux- <-- 여기서 탭치면
arm-linux-addr2line     arm-linux-gcc    arm-linux-gcov          ... 생략
툴체인 바로 실행할 수 있는 환경이어야한다.$ make ARCH=arm CROSS_COMPILE=arm-linux- vexpress_defconfig
arch/arm/configs/에 있는 vexpress_defconfig가 기본적인 .config를 생성한다.
$ make ARCH=arm CROSS_COMPILE=arm-linux-
arch/arm/boot/dts/arm에 vexpress-v2p-ca9.dtb가 존재한다.
$ qemu-system-arm -M vexpress-a9 -kernel arch/arm/boot/zImage -dtb arch/arm/boot/dts/arm/vexpress-v2p-ca9.dtb -nographic

rootfs가 없기 때문에 실패한다.$ mkdir initramfs
$ cd initramfsinit.c#include <stdio.h>
int main(){
        printf("hello world\n");
        while(1);
        return 0;
}
export PATH=$PATH:$HOME/x-tools/arm-hello-linux-uclibcgnueabihf/bin$ arm-linux- <-- 여기서 탭치면
arm-linux-addr2line     arm-linux-gcc    arm-linux-gcov          ... 생략
툴체인 바로 실행할 수 있는 환경이어야한다.$ arm-linux-gcc --static init.c -o init$ file init
cpio$ echo init|cpio -o --format=newc > initramfs

$ qemu-system-arm -M vexpress-a9 -kernel <kernel> \
-dtb <dtb> \
-append "console=ttyAMA0,115200" -nographic \
-initrd <initramfs>-append: 커널 커맨드 추가
