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
- If the HSE (High Speed Expansion) is covered by a plate, you need to remove the plate.
- 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 - Put the SD card in the board
- 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
- Plug in the power supply and wait for it to boot
- On the first boot, the EFI shell might appear: type
bootx64
to get it to boot into grub2 (see 5) - 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: typeexit
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:
As in the diagram:
|
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.
Apertis is currently being tested using the MNW2MAX1.X64.0101.R01.1908091048
.
It is recommended that Minnowboards are updated to at least this version.
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.