dtb+uImage,dtb+zImage

1406 ワード

toc

  • build.sh
  • ubootカーネルuImageを一時的にロードし、nfsで
  • を起動する.

    build.sh

    #!/bin/sh
    export ARCH=arm
    export CROSS_COMPILE=arm-linux-gnueabihf-
    export LOADADDR=0X8000
    make -j4 zImage
    test $? || exit 1
    make dtbs
    test $? || exit 1
    #     dtb     ,   cat *.dtb >> zImage,   zImage     bootz  
    #    ,uImage+dtb   ,       dtb zImage->make uImage->uImage   
    #uImage+dtb  FIT-uImage
    cat arch/arm/boot/dts/socfpga_arria5_socdk.dtb >> arch/arm/boot/zImage
    make uImage
    cp -v arch/arm/boot/uImage ~/ftp/
    

    ubootカーネルuImageを一時的にロードしnfsで起動


    必要条件:tftpサーバ、nfsサーバを先に開く
    setenv serverip 192.168.200.52
    setenv nfsroot "/dev/nfs"
    setenv nfsip  "192.168.200.52"
    setenv nfsdir  "/mnt/nfsroot,nfsvers=3"
    setenv loadaddr 0x01000000
    setenv fdtaddr 0x02000000
    setenv bootimage uImage
    setenv fdtimage socfpga_arria5_socdk.dtb
    setenv nfsipopt "192.168.200.166::::::off"
    setenv nfsload "tftp ${loadaddr} ${bootimage};tftp ${fdtaddr} ${fdtimage}"
    setenv nfsboot "setenv bootargs console=ttyS0,115200 noinitrd rdinit=/linuxrc root=${nfsroot} rw nfsroot=${nfsip}:${nfsdir} ip=${nfsipopt};bootm ${loadaddr} - ${fdtaddr}"
    setenv bootcmd "run nfsload; run nfsboot"
    boot
    
    

    fdtaddrが不要な場合はbootmコマンドを変更し、Image形式のカーネルを起動するにはbooti ${loadaddr} - ${fdtaddr}を使用します.