0

I am learning building Linux system with buildroot. The configure for qemu+arm is very convenient for me to have a environment to boot Linux system. I can get whole system from the script bellow. And it works fine, Linux system run.

git clone https://git.buildroot.net/buildroot
cd buildroot
git checkout 014ec19dfe
make qemu_arm_versatile_defconfig
make
cd output/images/
./start-qemu.sh

I find there is an zImage for linux kernel. As I know zImage is composed by decompress boot code and compressed linux binary. And I think Image at ../build/linux-5.15.18/arch/arm/boot/Image is the original linux binary. So I try to use Image to replace zImage(I copy the Image to the same folder. Then I change the zImage in start-qemu.sh to Image). But I failed, I run it and only see

VNC server running on ::1:5900

And there are no other log. I try other system like riscv, there is only Image, but it can be run. Is there something I misunderstand for arm linux Image? (By the way, I am curious about why only arm32 has compress code to build zImage, but aarch64 or riscv do not support this function.)

ctc8631
  • 171
  • 1
  • 1
  • 6
  • A **zImage** file can be loaded and started at almost any upper memory location; the decompress code is position independent. But an Arm **Image** file needs to be loaded and started at its proper start address established at build time. (The **zImage** decompressor will place the **Image** at the proper memory start location for you.) Check the kernel's **System.map** file. – sawdust Nov 03 '22 at 07:34

0 Answers0