I am currently trying to integrate mender for an intel based Industrial PC (x64). Before integrating mender my image boots normally, but after integrating mender and installing via the .hddimg the firmware displays “Default Boot Device Missing or Boot Failed”. But the firmware also supports “Boot From File” where I can choose an EFI file to boot from. After I choose the file “EFI/BOOT/bootx64.efi” the image starts up normally. This is why I suspect that there is nothing wrong with the image in general, but just with the GRUP setup created by mender. The “vanilla” (poky - thud 2.6 with meta-intel) yocto image did boot up just fine (without booting from file).
Is there any way to debug this issue further?
Additional Information:
The relevant part of the local.conf
MENDER_ARTIFACT_NAME = “release-1”
INHERIT += “mender-full”
ARTIFACTIMG_FSTYPE = “ext4”
MENDER_SERVER_URL = “https://hosted.mender.io”
MENDER_TENANT_TOKEN = “”
It probably relates to usage of “.hddimg”, which is not supposed to be used with Mender.
You should have gotten a “uefiimg” as output, which you should write to the storage medium. This should include all the parts necessary to boot and update
Thanks for your help! The Giada VM23 Guide looks promising - I will try that as soon as I can.
My device has an internal storage medium (M2 SSD) which is hard to access. Does mender not support an install USB Stick? Is the method outlined in the Giada VM23 the only supported way to do the initial device provisioning?
To clarify, this is the HDDIMG which has the initramfs based installer. The installer script has been replaced with a Mender-specific one. Basically, the Mender version of the HDDIMG includes the UEFIIMG and then just uses “dd” to write it. If MENDER_STORAGE_DEVICE is set, it will attempt to use that. Otherwise, if mender-partuuid is set, it will scan for appropriate devices.
That said, prior to the PR mentioned, the HDDIMG file would not work. Now “install” is the only boot option and it does work.
Thanks for your responses and your help. I really appreciate it!
I tried following the Giada VM23 Guide - but had to make some adjustments because the network adapter doesn’t work yet. I went through the following steps:
Booted Ubuntu Server 18.04 from a USB thumb drive
Inserted a USB thumb drive which contains the .uefiimg
used dd to copy it to the SSD (/dev/sda)
Removed all USB drives and rebooted
But unfortunately, the result was the same as before.
Then I disassembled the entire IPC to flash the SSD directly with the image - but go the same result.
Some other thing I suspect could cause Issues:
When I run “sudo fdisk -l” I get the following result for the SSD:
GPT PMBR size mismatch (8388607 != 125045423) will be corrected by w(rite).
Disk /dev/sdc: 59.6 GiB, 64023257088 bytes, 125045424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: 2A5D1CDF-FFEA-4F38-82F5-8F70826E7B8B
Is the GPT PMBR size mismatch caused by me setting the STORAGE_TOTAL_SIZE_MB to 4096 and not to ~60GB? If yes, is it really a best practice to handle 60GB+ image files?
BTW: The new Live Installer seams really nice. I will definitely give it a try after I get the image working.
When I run “sudo fdisk -l” I get the following result for the SSD:
Can you print the full output of this command?
Is the GPT PMBR size mismatch caused by me setting the STORAGE_TOTAL_SIZE_MB to 4096 and not to ~60GB? If yes, is it really a best practice to handle 60GB+ image files?
Do not think this relates to STORAGE_TOTAL_SIZE_MB, and I recall seeing this printout before but it has never caused any harm.
But going back to your original report and the error message,
“Default Boot Device Missing or Boot Failed”
and a couple follow up questions,
Is your boot priority configured correctly?
Does the boot firmware support GPT?
Is the boot firmware BIOS or UEFI?
I am trying to figure out if you should use this configuration or not,
What parts are you interested in? There are about 16 ramdisks listed which hide the top of the output.
Is your boot priority configured correctly?
I have not found this setting yet. Maybe the manufacturer didn’t integrate it because there is only one internal drive and you usually don’t boot this device from an external drive.
Does the boot firmware support GPT?
I am not sure - how can I find out?
Is the boot firmware BIOS or UEFI?
I am quite sure it is UEFI because I can boot from the .efi file if I select it manually.
Some more information: The Setup Utility is InsydeH2O.
Here you can find the BIOS documentation: BIOS Docs
Here you can find the full documentation: Full Docs
I am currently building the BIOS image and will test if that works.
Pls try to use exact steps as for Giada and try this image with some ubuntu live distro then dd it to eMMC and it should boot (at least it boots on Giada). Which yocto branch do you use? Thanks.
I think I followed the Giada steps as close as possible, but I have an internal SSD instead of an eMMC so I am using “/dev/sda” instead of “/dev/mmcblk0”. Other than that there aren’t a lot of features/configurations to make in the Giada Guide. Does your Giada image have the correct EFI partition?
I am building Yocto on: Ubuntu 18.04.1 LTS - 64-bit - Virtualization KVM
VM ran by -> Parallels Desktop 14 for Mac Business Edition - Version 14.1.3 (45485)
Physical Machine:
MacBookPro15,1
Intel Core i9-9880H CPU @ 2.30GHz - 16 GB RAM
Mac OS Mojave 10.14.6 (18G87)
Could be odd but I’m sure I have enable UEFI boot on Giada, but maybe there is something wrong (and it was reason why I cannot boot it with live usb stick from mender build)
You can also try to run the wks file manually with wic, in case it has some special behavior in your setup. The command should be in the same log.do_image_uefiimg file.