sc :: elementary

mar'15

10

MinnowBoard Max quick setup guide

Intro

Single board computers with the most popular among them being Raspberry Pi are usually based on ARM processors. Only few single-boards computer have x86 family processors on board. The MinnowBoard project is among the second group with its second generation i.e. MinnowBoard Max based on 64bit Intel Atom processor. Since the ARM based systems bring the unfamiliar new architecture for most users, Minnowboard Max can be truly seen as a single-board "old-fashion PC".

The x86 architecture allows for installation of most of the available operating systems and more importantly installation of commercial software available only in binary form. Since the board works on x86 processor the list of supported operating systems include Linux, Windows and Android.

MinnowBoard Max comes in two versions which have different processor and the amount of memory. The first one based on Intel Atom E3815 (single core, 1.46 GHz) with 1GB of RAM and the second based on Intel Atom E3825 (dual core, 1.33 GHz) with 2GB of memory on board. The rest of the specification is the same for both boards and features Intel HD graphics, micro HDMI connection, Micro SD card reader, SATA connection, one USB 2.0 and one USB 3.0 connections, 1Gbps Ethernet card, GPIO pins. The board includes also number of expansion ports like SPI, I2C, PCIe and JTAG.

In the box

In the box you will find the single-board computer (with dimensions 99mm x 74mm) and a power supply. There are various ways to install the operating system and have a small desktop replacement. We will choose to install the SSD drive and have the Linux operating system boot from the drive. The UEFI allows you to boot from all interfaces including SATA, SD and USB.

Hardware preparation

Although the MinnowBoard Max comes with numerous interfaces you will most likely need some additional converters and wires to make configuration like our work.

HDMI Monitor

The only video output in the MinnowBoard Max is the micro HDMI. To be able to use the connection you will need micro male to full female HDMI converter. HDMI also includes audio as the only output from the board (no mini jack for speakers or headphones is installed).

USB Hub

The board comes with two full size USB ports. One of them is dedicated as USB 2.0 and the other one as USB 3.0 (the blue one). To make the MinnowBoard Max fully usable computer you will need a keyboard, mouse and probably a USB WiFi card. Only 2 USB ports will not support the configuration and the USB hub is a requirement (either USB 2.0 or USB 3.0 will work fine).

SSD Drive

MinnowBoard Max includes the SATA data connection but unfortunately there is not a traditional Molex power connection. Most of the SSD drives are shipped with the 4 pin Molex to SATA power converter. We will use that type of cable to power the drive directly from the MinnowBoard Max extension pins.

SSD drive operates on 5V power (check if the same is true for yours). The board includes 2 pins in positions 1 and 2 marked as Ground and 5V. We will only need two of the four Molex power cables. Black wire is for ground and the red one is for 5V. Remaining two can be removed. Use female pins and housing for the wires on the Molex connection side. Connect to the long string of pins close to the power input. Counting from the corner in the outer row, the 2 first pins are ground and 5V. Make sure you use the right pins.

Arch Linux installation

For the installation of Arch Linux we will use a bootable USB stick which is capable of booting both EFI and legacy BIOS systems. Since the MinnowBoard Max uses UEFI firmware we will take advantage of the first one.

Bootable USB

Prepare a bootable USB stick with Arch Linux. The instruction for all common operating systems can be found on the Arch Linux project page here.

Network

We will use an Ethernet connection to the Internet which will be discovered during the booting from the USB stick (our connection will support DHCP provisioning of IP numbers and network configuration).

Booting

Boot the MinnowBoard from the USB stick. Set the keyboard layout and font.

# loadkeys us
# setfont lat9w-16

Edit the /etc/locale.gen file

# nano /etc/locale.gen

and uncomment en_US.UTF-8 UTF-8

# locale-gen
# export LANG=en_US.UTF-8

Check the connection to the Internet

# ping -c 3 www.google.com

Partions

Prepare partitions

# cfdisk /dev/sda

Create partitions for /boot, / and swap. After leaving the cfdisk your new devices are present. This will create /dev/sda1, /dev/sda2 and /dev/sda3 in order which you picked.

# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkswap /dev/sda3
# swapon /dev/sda3

Confirm that you created partition scheme correctly

# lsblk -f

Installing the system

Mount the partitions that you have created

# mount /dev/sda2 /mnt
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot

We are ready to install Arch Linux or our MinnowBoard Max. To do so we need to pick the closest mirror. Edit /etc/pacman.d/mirrorlist using nano

# nano /etc/pacman.d/mirrorlist

and move mirror in a location closest to you to the top of the list. After that you are ready to install the basic system with the command

# pacstrap -i /mnt base base-devel

Now we will generate the new /etc/fstab file which will contain information about all filesystems (partitions) that we have created earlier

# genfstab -U -p /mnt >> /mnt/etc/fstab
# nano /mnt/etc/fstab

Verify that the /etc/fstab file includes all partitions that you created. We are ready to switch the environment from the one provided by bootable USB stick to the one that we have just installed

# arch-chroot /mnt /bin/bash

Repeat the configuration of locales, fonts and language settings. Edit the /etc/locale.gen file

# nano /etc/locale.gen

and uncomment the line en_US.UTF-8 UTF-8. After that generate local settings with the following command

# locale-gen
# echo LANG=en_US.UTF-8 > /etc/locale.conf

Open file /etc/vconsole.conf

# nano /etc/vconsole.conf

and add lines

KEYMAP=us
FONT=lat9w-16

Set the timezone. The list of all available time zones may be found in the directory /usr/share/zoneinfo

# ls /usr/share/zoneinfo/

Pick the appropriate time zone and make a link to set it

# ln -s /usr/share/zoneinfo/US/Eastern /etc/localtime

Set a hostname. In our case 'babylon'

# echo babylon > /etc/hostname

Set the network

# dmesg | grep eth
# systemctl enable dhcpcd@enp0s3.service
# ping -c 3 www.google.com

Make the initial ramdisk environment and set the password for the root account

# mkinitcpio -p linux
# passwd

The installation of the minimal version of Arch Linux is complete. Now we nee to install the bootloader.

Installing bootloader

You have two choices of the bootloader. You may pick GRUB or Syslinux. We will use the Syslinux bootloader since it works just fine and is extremely easy in configuration. To install it follow the commands

# pacman -S gptfdisk
# pacman -S syslinux
# syslinux-install_update -iam

We need to configure the bootloader. Open file /boot/syslinux/syslinux.cfg

# nano /boot/EFI/syslinux/syslinux.cfg

and make sure that the entry for booting Arch Linux looks like this

LABEL arch
    MENU LABEL Arch Linux
    LINUX ../../vmlinuz-linux
    APPEND root=/dev/sda2 rw
    INITRD ../../initramfs-linux.img 

The Syslinux should work just fine now. We are left with few last things.

Several extra touches

  1. Add a regular user account

     # useradd martin
     # passwd martin
     # mkdir /home/martin
     # chown -R martin: /home/martin
    

    Configure sudo command by editing the file /etc/sudoers and setting wheel group as the group that can execute command using sudo without giving a password.

     # vim /etc/sudoers
    

    and uncomment line

     %wheel ALL=(ALL) NOPASSWD: ALL
    

    Add user martin to wheel group.

     # vim /etc/group
    

    Log out from the root account and log in as the user that you have just created.

  2. Install video driver and desktop environment

     $ sudo pacman -S xf86-video-intel
     $ sudo pacman -S mate-desktop
    

    Make the MATE desktop the default one

     $ echo "exec mate-session" > ~/.xinitrc
     $ startx
    
  3. Install extra packages

     $ sudo pacman -S htop
     $ sudo pacman -S chromium
     $ sudo pacman -S mate-themes-extras
     $ sudo pacman -S rxvt-unicode
     $ sudo pacman -S gvim
    

We are done with the installation. You have complete and usable Linux desktop environment.

Case assembly

With the lack of case that would support installation of SSD drive we have designed our own laser-cut case. Our case has three components. MinnowBoard Max and SSD drive are mounted on the opposite sides of the middle panel. The whole setup is enclosed from the top and the bottom by two panels.

Summary

If you are looking for a low power development board that is based on Intel processor instead of ARM processor the MinnowBoard Max is worth consideration. It is easy in configuration and fast enough to serve as a low-power desktop replacement. MinnowBoard Max comes with wide variety of interfaces installed on board. It is flexible with storage options and ships with USB 3.0 port as well as 1Gbps network interface.