Reference Hardware/Minnowboard setup

From Apertis
Jump to: navigation, search
(thumbnail)
Base Minnowboard setup with a Lilliput screen

Contents

Minnowboard setup

You should have at least:

  • 1 Minnowboard
  • 1 Power adaptor
  • 1 USB to serial cable

You need to provide your own:

  • 1 microSD card (at least 8GB)

You may also have a:

  • Lilliput touchscreen
  • HDMI type A female to type D male adaptor

Setup instructions

  1. If the HSE (High Speed Expansion) is covered by a plate, you need to remove the plate — see this blogpost from MinnowBoard for instructions and photos
  2. Download the amd64 UEFI target image (for example, [1]), plus the .md5 and .bmap files (you can find them here, [2] or You might want a daily updated image. You can find it here as well [3]), and flash the image to a microSD card using command:
    sudo bmaptool copy path/to/image.img.gz /dev/mmcblk0
  3. Put the SD card in the board
  4. Plug in the serial cable (see [4], pin 1 gets the black wire on common serial cables); connect to its kernel serial console using:
    screen /dev/ttyUSB0 115200
  5. Plug in the power supply and wait for it to boot
  6. On the first boot, the EFI shell might appear: type bootx64 to get it to boot into grub2 (see [5])
  7. If the board continues to boot into the EFI shell, the boot device order might be wrong (see [6]). In the EFI shell, type exit, select the “Boot Maintenance Manager”, then “Boot Options”, then “Change Boot Order” and move “EFI Misc Device” (the microSD card) to the top of the list. Save and reboot. Also make sure that the EFI is 64-bit: type exit from the EFI shell and check that ‘X64’ is present in the version string (something like ‘MNW2MAX1.X64.0077.R01.1501291247’) at the top of the screen.

Touchscreen

If you have a Lilliput touchscreen, note that because it combines HDMI video and USB for the touchscreen into one connector, it needs to be used with the special cable provided:

  1. Connect the two-tailed HDMI connector to the Minnowboard (through the type A to type D adaptor)
  2. Connect the USB lead to the Minnowboard
  3. Connect the one-tailed HDMI connector to the Lilliput
  4. Power up the Lilliput

As in the diagram:

             | HD ---------------- "HDMI" |
MINNOWBOARD  | MI --\                     | SCREEN
             |      |                     |
             | USB -/                     |
(thumbnail)
Detail of the cable setup

Firmware updates

Occasionally, updated firmware is released for the Minnowboard. This can fix issues with the hardware, such as no HDMI output or both LEDs on. Download it and apply it from the Intel website.

Setting up a Minnowboard device for LAVA

Overview

These instructions are to set up a PXE boot server with x86_64 stand-alone GRUB to boot a Minnowboard Max (E3825) or Turbot (E3826) in LAVA. It will first boot with a kernel over TFTP and an NFS root file system, then deploy a full OS image on an SD card and boot it with GRUB.

Note: Any EFI bootloader included in the OS image will not be used in this scenario. A future improvement would be to make LAVA control the EFI firmware directly rather than GRUB in order to boot from an arbitrary EFI bootloader instead.

PXE boot with GRUB

The first step is to set up the LAVA dispatcher to enable PXE boot with a GRUB binary. There should already be a TFTP server installed as part of the LAVA dispatcher set-up. The same server can be used to prodive the PXE boot binary (GRUB).

Create a directory on the dispatcher:

   mkdir -p /srv/tftp/lava-grub2/x86_64-efi/

Install the GRUB binary with all the required modules built-in in this directory:

   cd /srv/tftp/lava-grub2/x86_64-efi/
   wget https://images.collabora.co.uk/lava/boot/lava-grub2/x86_64-efi/core.efi

Note: To build GRUB (core.efi mentioned above) from source:

   git clone https://github.com/coreos/grub.git
   cd grub/
   ./autogen.sh
   ./configure --with-platform=efi --target=x86_64 --disable-werror
   make -j1
   make install
   grub-mkstandalone -O x86_64-efi -o core.efi --modules "tftp net efinet linux efifwsetup part_msdos part_gpt btrfs ext2 fat"

The supplied binary in the link above was built using git revision 93fb3dac4ae7a97c080d51d951d0e5a3109aaac7.

Install dns-masq on the dispatcher:

   apt install dnsmasq

Make it provide the GRUB binary for Minnowboards, in /etc/dnsmasq.d/dhcp.conf:

   # Minnowboard (x86_64)
   dhcp-vendorclass=pxe-efi-x86_64,PXEClient:Arch:00007
   dhcp-boot=tag:pxe-efi-x86_64,lava-grub2/x86_64-efi/core.efi

Linux kernel requirements

In order to run Apertis tests, it's necessary to enable MMC drivers in the Linux kernel which are by default disabled in x86_64_defconfig. A suitable binary image is provided on the Apertis server: bzImage-4.18-mmc-igb

Note: To build this kernel image from source on x86:

   git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
   cd linux
   git checkout v4.18
   make defconfig
   for c in \
     MMC \
     MMC_SDHCI \
     MMC_SDHCI_PCI \
     MMC_SDHCI_ACPI \
     MMC_WBSD \
     IGB; \
   do
     ./scripts/config --enable CONFIG_${c}
   done
   make olddefconfig
   make -j3

Device set-up

Use the standard UEFI firmware provided with the Minnowboards, with settings reset to the factory defaults. The boot order needs to be set to try PXE IPv4 and PXE IPv6 first, to make LAVA take the priority over previously installed images on the device.

To change the boot order, on a serial console:

  • Turn the power on
  • Press F2 to stop the boot process and enter the firmware menu
  • Enter the Boot Maintenance Manager menu
  • Enter the Boot Options menu
  • Choose Change Boot Order
  • Move the EFI IPv4 and EFI IPv6 boot options to the top
  • Press F10 to save and Y to confirm
  • Exit the menu and restart the system

This should then automatically try PXE boot and launch GRUB.

References

Personal tools
Namespaces

Variants
Actions
Navigation
Tools