ARM64 – HiKey – Change to UEFI Boot..
After some more testing, including trying (unsuccessfully) the HiKey version of Kernel 4.1-rc4 # git clone -b hikey-mainline-rebase –single-branch https://github.com/96boards/linux/ I was frustrated by the complete lack of kernel boot info on screen, after the proprietary bootloader had finished.. More research found that this bootloader was described as somewhat deficient in the ‘fit for purpose’ department, and I really ought to update to a more effective one…
There is a pre-release version of U-Boot available, but UEFI/grub is also now an option, which made more sense.. The only drawback to the current version of UEFI is that it can only boot from Emmc, not an SD Card, but as long as the kernel image (Image) and dtb (hi6220-hikey.dtb) and initrd are resident on the Emmc boot partition, then the rootfs can still be on the SD Card.. I also created a SWAP file on the Emmc root partition..
[root@rghikey ~]# cat /etc/fstab /dev/mmcblk1p2 / ext4 defaults 1 1 /dev/mmcblk1p1 /boot vfat defaults 1 2 /dev/mmcblk0p6 /boot-emmc vfat defaults 1 2 /dev/mmcblk0p9 /root-emmc ext4 defaults 1 2 /root-emmc/SWAP none swap defaults 0 0
So.. I have the root filesystem on the SD Card, and mount the Emmc boot and root partitions as /boot-emmc and /root-emmc respectively, and then copy the Image and .dtb files to the /boot-emmc partition after compilation.. This is far more useful, as by editing the grub configuration file in the Emmc boot directory (/boot-emmc/grub/grub.cfg) I can arrange for multiple Kernel versions to be available for booting, to fall-back to a known/good version if the boot fails..
$ cat /boot-emmc/grub/grub.cfg set default="0" set timeout=10 menuentry 'Fedora Linux' { linux /Image console=ttyAMA0,115200n8 earlycon=pl011,0xf8015000 root=/dev/mmcblk1p2 rw roo twait initrd=initrd.img efi=noruntime initrd /initrd.img devicetree /hi6220-hikey.dtb } menuentry 'Fedora Linux OLD' { linux /Image.old console=ttyAMA0,115200n8 earlycon=pl011,0xf8015000 root=/dev/mmcblk1p2 rw rootwait initrd=initrd.img efi=noruntime initrd /initrd.img devicetree /hi6220-hikey.dtb.old } menuentry 'Fedora Linux 4.1-rc4' { linux /Image-41rc4 console=ttyAMA0,115200n8 earlycon=pl011,0xf8015000 root=/dev/mmcblk1p2 rw rootwait initrd=initrd.img efi=noruntime initrd /initrd.img devicetree /hi6220-hikey.dtb-41rc4 }
Comments
ARM64 – HiKey – Change to UEFI Boot.. — No Comments