MinnowMax

From Tizen Wiki
Jump to: navigation, search

MinnowMax is a Tizen Common reference Device

The board is Open Source Hardware ( OSHW ) and shipping Intel E38xx CPU .

MinnowMax is also called MinnowBoard Max but this name is better to avoid confusion between previous MinnowBoard (which is a 32bits CPU).


You may contact me if you need some support --Pcoval (talk) 12:57, 20 December 2014 (UTC)


Firmware

It is advised to upgrade the firmware to latest before using it.

If for some reason it does not boot, a full reflash is needed using SPI port

Ask to mailing list for help if needed

The latest version of the fw can be found here

Latest tested one was :

https://uefidk.com/sites/default/files/2014-WW42.4-MinnowBoardMax.73-64-bit.bin_.zip md5=2cd8805b3016ceba60acde11877ac0c9

You also need "FirmwareUpdateX64.efi" flasher tool from :

https://uefidk.com/sites/default/files/MinnowBoard_Max.71-x64-Release.zip md5=6b4b75458f5e6dc035df046d5f315b5d

In the end you must have those files on fat formatted disk (or you can put them on 1st part of tizen efi image it will work IICR too) :

 sudo parted /dev/sdX -s "mklabel msdos mkpart p fat16 1 64MB" # adapt sdX with your device
 sudo mkfs.vfat -F 16 /dev/sdX1 

Then copy unpacked files onto it :

 870cd7d554dd52deb07a1b6316d41551  FirmwareUpdateX64.efi
 493fc29e6de4d7645b0462ca6ca528b4  MNW2MAX1.X64.0073.R02.1409160934.bin

Plug disk on board, power on, then from UEFI Shell type :

 fs0:\FirmwareUpdateX64.efi  MNW2MAX1.X64.0073.R02.1409160934.bin

If this does not load, maybe device has a 32bit Firmware loaded so you must launch FirmwareUpdateX32.efi instead.

On other problems try to hit the Esc,F2 or Tab keys and go figure what is going on...

Tizen

Just dump EFI 64 image to sdcard :

Or you also install it from USB using the installer (EFI image) check this page for details :

Tizen on Yocto

Tested images

You can see the illustration video here : https://vimeo.com/115178795

The following table show which yocto tizen image has been built with the MMAX's cpu layers and if boot is validated on the board.

Image Build Tested Pre-configured image Checksum
tizen-common-core-image-minimal-dev Yes Yes yocto_tizen-common-core-image-minimal-dev_mmax_22122014_grub.img (7.9Gb) 3b7e8aa165a1738fcd93ca9d22ea3916
tizen-common-core-image-minimal No No
tizen-core-image-minimal No No
tizen-common-core-image-crosswalk No No
tizen-common-core-image-crosswalk-dev No No
tizen-ivi-core-image No No
tizen-ivi-core-image-dev No No
tizen-ivi-ico-image No No
tizen-ivi-ico-image-dev No No
tizen-ivi-ico-Modello-image No No
tizen-ivi-Modello-image-dev No No

Use the pre-configured image

The tested image is the tizen-common-core-image-minimal-dev, built with meta-intel for valleyisland-64 and a Grub EFI bootloader. The image is built by following the old procedure with Poky but it may also work with Tizen standalone distribution.

You can find the image on the previous section tested images.

Once downloaded, just dump the img on the SD card with dd :

dd if=yocto_tizen-common-core-image-minimal-dev_mmax_22122014_grub.img of=/dev/mmcblk0 && sync

The bootloader is already configured, put the SD card in the MMAX.

Then, on the EFI Shell enter this :

Shell> fs0:\EFI\tizen\grubx64.efi

How to configure and boot Yocto Tizen on MMAX

Building Tizen with Yocto

See the howto procedure here until section Create your build directory : Build_Tizen_with_Yocto

It is recommended to add meta-intel layer with intel-corei7-64. Alternatively you can also set machine to haswell-wc or valleyisland-64. Images built for generic x86-64 will also work on MinnowBoard MAX.

This is the way to add them :

  • Clone the git repository on distro-tizen directory
git clone -b dizzy git://git.yoctoproject.org/meta-intel meta-intel

After initializing your building directory with oe-init-build, in the build dir :

  • Modify MACHINE value in the file conf/local.conf (or leave it to genericx86-64)
MACHINE = "intel-corei7-64"
  • Remove Intel specific hardware codes for machines intel-corei7-64 and haswell-wc because they lead to errors during the build related to gst-ffmpeg, for details please check BTY-105:
MACHINE_HWCODECS = "va-intel gstreamer-vaapi-1.0"
  • Add the following lines in the file conf/bblayers.conf
${TIZEN_DISTRO_DIR}/meta-intel

Launch the build and get a coffee :-)

If you are building Tizen with Yocto from scratch the processed may take several hours depending on the hardware of your computer and the Internet connection. The generated image can be found in tmp-glibc/deploy/images/${MACHINE}

Booting Yocto Tizen image

This tutorial explains how to prepare bootable microSD card or USB stick from the Tizen image built with Yocto for MinnowBoard MAX. The described procedure has been tested on a personal computer with Ubuntu 14.10 therefore sudo is used for more of the commands.

Prepare partitions

Execute the following steps to format and prepare partitions:

  • Plug an empty microSD card (or a USB stick) to your computer. It is recommended to use class 10 microSD card with 4GB (or more).
  • Create gpt partition table on the microSD card using GParted Partition Editor (or another tool).
    msdos partition table should be also working (along grub-efi at least)
  • Create a small partition (for example 128MB) with format fat32. Add flag boot for it. This will be the EFI partition.
  • Create another partition with ext3 format. Tizen rootfs will be stored on it.

Screenshot of the partitions of microSD card with Tizen IVI image built using Yocto.

Copy data

This section of the article is based on: Build_Tizen_with_Yocto#Bootable_USB. Perform the following steps to copy the images built with Yocto on the microSD card:

  • Select your USB or hard drive device. Replace X with the corresponding letter of the drive (you use fdisk -l or another tool to retrieve it):
USB_DISK="sdX"
USB_DISKID1="${USB_DISK}1"
USB_DISKID2="${USB_DISK}2"
  • Mount the ext3 partition
sudo mkdir -p /mnt/data
sudo mount /dev/"${USB_DISKID2}" /mnt/data
  • Mount Tizen rootfs built from source with Yocto:
    Please note that the name of the file depends on the Tizen profile and build configuration. For example for Tizen IVI with Modello the name will be something like: tizen-ivi-Modello-image-valleyisland-64.ext3.
sudo mkdir -p /mnt/YoctoTizen_EXT3
sudo mount tizen-common-core-image-minimal-dev.ext3 /mnt/YoctoTizen_EXT3
  • Copy Tizen rootfs built from source with Yocto on the microSD card:
sudo cp -a /mnt/YoctoTizen_EXT3/* /mnt/data
  • Copy the Linux kernel which has been built with Yocto:
sudo unlink /mnt/data/boot/bzImage
sudo cp -a bzImage* /mnt/data/boot

Install and configure boot loader

This section explain how to install a EFI grub to boot on the board.

Note : On installing an EFI grub on non-efi system, this may do not work. Solution is to doing the procedure on a EFI system.

  • Create a efi directory in tizen boot directory. Then, mount the EFI partition in :
cd /mnt/data/boot/
sudo mkdir efi
sudo mount /dev/"${USB_DISKID1}" efi/
  • Create grub files
    Remark 1: On Debian, OpenSUSE and Ubuntu the grub v2 install command is called just grub-install. If you are working on another Linux distribution use grub2-install.
    Remark 2: grub is unable to boot Tizen automatically if the parameter --bootloader-id=tizen (or with another id) is used on Ubuntu.
sudo grub-install --boot-directory=/mnt/data/boot --efi-directory=/mnt/data/boot/efi --recheck /dev/"${USB_DISKID2}"
  • Create file /mnt/data/boot/grub/grub.cfg and save the following configuration in it:
    Remark: On Debian and Ubuntu the path is /boot/grub. If you are using another Linux distribution please set the path to /boot/grub2. Otherwise grub will presents a command prompt only.
set default="0"
set timeout="5"
menuentry 'Yocto Tizen' {
  insmod ext2
  insmod part_gpt
  set root=(hd0,gpt2)
  linux /boot/bzImage root=/dev/mmcblk0p2 init=/lib/systemd/systemd rw rootwait
}
  • Create file /mnt/data//boot/efi/startup.nsh. Replace bootloader-id with the corresponding id of the boot loader in the line below, for instance on Ubuntu 14.10 it will be ubuntu. Save the configuration in it the file:
fs0:\EFI\bootloader-id\grubx64.efi
  • Sync and eject the microSD card (or the USB memory stick):
sync
cd ~
sudo umount /dev/"${USB_DISK}"*
sudo rmdir /mnt/data/
sudo umount /mnt/YoctoTizen_EXT3/
sudo rmdir /mnt/YoctoTizen_EXT3/
  • Plug the microSD card in MinnowBoard MAX and turn on the board. The grub menu should appear on the screen. Select the entry for booting or just wait 5 seconds and it will be automatically selected.

Troubleshooting

Some of the following errors may occur during the process for preparing and booting microSD card:

  • If the grub loader is not automatically launched type in the following command in the EFI Shell. After that the grub menu should appear, select the entry for booting. If the boot loader id is different from tizen please update the command.
Shell> fs0:\EFI\tizen\grubx64.efi
  • If grub is loaded in command line then you either have an issue with the configuration at grub.cfg or the boot loader id at startup.nsh is not correct.

What's next

  • Validating the boot of build Tizen standalone distribution on the board.
  • Philippe Coval booted a Yocto Tizen image built with the meta-intel layers i7, so next step is to redo it, but with tizen-distro.
  • Yocto Tizen build provides a bootx64.efi but on first tries use it did'nt work. It could be more simplier than configuring a Grub or any bootloader, just had to copy it in the EFI partition as described here http://www.elinux.org/Minnowboard:MinnowMaxYoctoProject


Resources