Just black screen after running Qemu

前端 未结 3 923
失恋的感觉
失恋的感觉 2020-11-29 13:29

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/         


        
3条回答
  •  没有蜡笔的小新
    2020-11-29 14:22

    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.

提交回复
热议问题