Atom z8350 + emmc

Hi there,

I’m trying to integrate my board, an Atom z8350 with 2GB ram and 32GB eMMC. Almost the same as a wyse3040 but cheaper.
I followed the NUC integration example and adapted a config accordingly to the eMMC.
Everything is okay until I reboot for the first time after “flashing” my new .img file.

Board is rebooting, grub screen shows up with the two “LOCK” text and then freezes about 10-15 seconds later, there is a carriage return happening on screen then keyboard is going down and only way to power cycle is removing the power supply cable or long press on the power button. Booting directly the UEFI entry in the bios does the same thing.

EFI boot entry is named “Android-IA” (??!!!) that’s weird too.

I tried:

  • booting without USB devices at all
  • disabling quiet boot in the BIOS
  • keeping boot gap or not

I managed to do this once on a wyse 5070 thinclient (Intel silver) with no special issue, this z8350 has stumped me.

Thanks for any help !

mender convert board config: MENDER_COMPRESS_DISK_IMAGE=gzipMENDER_ARTIFACT_COMPRESSION="gzip"MENDER_ENAB - Pastebin.com
mender-convert logs: MENDER_ARTIFACT_NAME=release-z8350-4.0.0 ./docker-mender-convert --disk-image i - Pastebin.com

deploy img fdisk:
fdisk -l rawdump_-mender.img
The primary GPT table is corrupt, but the backup appears OK, so that will be used.
Disk rawdump_
-mender.img: 28.44 GiB, 30534533120 bytes, 59637760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 06E62B76-7C80-472F-B334-B0CDE273290B

Device Start End Sectors Size Type
rawdump_-mender.img1 16384 1064959 1048576 512M EFI System
rawdump_
-mender.img2 1064960 30195711 29130752 13.9G Linux filesystem
rawdump_-mender.img3 30195712 59326463 29130752 13.9G Linux filesystem
rawdump_
-mender.img4 59326464 59588607 262144 128M Linux filesystem

To follow up and update:

I’ve waited around 20mn (real) in front of that screen and suddenly it began to boot.
But the boot process speed was so slow, like if I was running a 5.x kernel on my venerable TRS80 with 16k ram.
After this lengthy boot process, it dropped me on the initramfs rescue shell telling me it cannot find mmcblk0.
When I’m listing /dev content it’s there, if I try to mount it manually it’s telling me “No such file or directory”.

The golden device, prior to flashing the mender-ified image wasn’t presenting these symptoms.

Which integration? Debian or Yocto? I did NUC + Giada which is emmc x86 device so maybe can help.

Debian integration, as it’s an x86 board it looked to me it was less work to do than setup a yocto environment.

After scraping search engines and forums a lot I found the root cause for the 20-25mn waiting till the kernel starts loading.

I removed the whole console_bootargs content in /boot/EFI/efi/BOOT/grub.cfg as I don’t need any serial console on it anyway.
Boot time did go from 20-25mn to 20-25sec …

So my question is now how can I apply this in a debian integration so I wouldn’t have to edit directly on each device ?
By the way none of my kernel boot param were imported during conversion where can I add these too ? (sorry if it’s in the doc, I didn’t figured where).

You’ll probably need to create a custom hook in your mender-convert config to modify this file. You can see in mender-convert-modify where changes are being made by adding a file called 11_bootargs_grub.cfg. I suspect something similar will work in your case. Please let us know if you are successful with this.

Drew

Of course I’ll report asap. Good nudge in the right direction, thanks !

About the non imported bootargs , it was as easy as setting MENDER_GRUB_KERNEL_BOOT_ARGS into my custom board config.

About the console settings impacting the boot , I followed your advice and made a hook like that:

remove_console_bootargs() {
    log_info "Remove problematic serial console settings from bootargs"
    run_and_log_cmd "sed -i 's/set console_bootargs=\"console=tty0,115200n8 console=ttyS0,115200n8 console=ttyO0,115200n8 console=ttyAMA0,115200n8\"/set console_bootargs=\"\"/g' work/boot/EFI/BOOT/grub.cfg"
}
PLATFORM_MODIFY_HOOKS+=(remove_console_bootargs)

And yes I know my sed is just awful :slight_smile:

I still got a few issue like mmcblk changing name randomly at each boot and I have to do my homework on partuuid usage (will make another post) but I’ll post this device integration when I’ll be ok with it.

Thanks for the support.