I have just installed QEMU and compiled linux kernel with ARM support but when I run below command
qemu-system-arm -M versatilepb -m 128M -kernel /home/arit/QEMU/linux-3.8.4/arch/arm/boot/uImage -append "console=tty1"
I could only see Black screen ,I also tried what is being suggested in below thread
Qemu shows a black screen
But still it didn't work.
Following is the output of make command which I run to compile kernel Source
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage -s
Image Name: Linux-3.8.4
Created: Tue Dec 24 12:49:07 2013
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4406472 Bytes = 4303.20 kB = 4.20 MB
Load Address: fffffff2
Entry Point: fffffff2
Are Load and Entry points OK here?
As you asking Is this config file is responsible for setting up entry and load address of uImage
Yes make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
this command is responsible for loading entry point.
How ?
--->In kernel source code open vi scripts/mkuboot.sh
here check MKIMAGE=$(type -path "${CROSS_COMPILE}mkimage")
the script will take care to call scripts/Makefile.lib.
here in code
MKIMAGE := $(srctree)/scripts/mkuboot.sh
UIMAGE_ARCH ?= $(SRCARCH)
UIMAGE_COMPRESSION ?= $(if $(2),$(2),none)
UIMAGE_OPTS-y ?=
UIMAGE_TYPE ?= kernel
UIMAGE_LOADADDR ?= arch_must_set_this
UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR)
UIMAGE_NAME ?= 'Linux-$(KERNELRELEASE)'
UIMAGE_IN ?= $<
UIMAGE_OUT ?= $@
-->
if the user doesnt mention LOADADDR in command line the address is took from below
UIMAGE_LOADADDR ?= arch_must_set_this
ifneq ($(LOADADDR),)
UIMAGE_LOADADDR=$(LOADADDR)
else
ifeq ($(CONFIG_ZBOOT_ROM),y)
UIMAGE_LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
else
UIMAGE_LOADADDR=$(ZRELADDR)
endif
endif
UIMAGE_LOADADDR=$(ZRELADDR)
--> this variable responsible for loading entry address
the valve $(ZRELADDR) is took from board specific for in our case versatile so
arch/arm/mach-versatile/Makefile.boot
here
zreladdr-y += 0x00008000
params_phys-y := 0x00000100
initrd_phys-y := 0x00800000
This is how in kernel scripts are automated when make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
executed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With