Prepare a bootable MicroSD Card

From IGEP - ISEE Wiki

Jump to: navigation, search

Introduction

This page explain how to create a microSD card to boot IGEP boards with  software distributions ( yocto, Ubuntu, Debian ...).


How to SD.PNG


Inside General processors we can find Texas Instruments

Texas Instruments Processors

  • The microsd card must be content at latest 2 partitions.
  • The first one must be primary partition with the boot flag mark and formated using FAT(16 or 32) file system.
  • All names used in this partition must be msdos names (applies to OLD OMAP35xx processor).
  • The processor must load a first program called MLO, this program must reside in the first partition, this program it's also called x-loader or uboot-spl.

The processor when boot ONLY load and execute the MLO program and ignore all the rest it's the X-loader(MLO) the program responsible to load the next programs such kernel or uboot if you use this last one approach.


Freescale-NXP Processors

  • The microsd card must be content at latest 1 partitions.
  • The primary partition can be formatted with any filesystem that u-boot can mount.
  • The Processor will load the u-boot.imx it include the SPL and u-boot.

After load this u-boot.imx, u-boot will be ready for boot the kernel.

Therefore, we are going to setup a microSD card with these requirements and install a custom software distribution into it.


Boot from Flash

  • Exist other ways of boot and in this link we can see how to do it with the Flash Memory-> LINK


Prerequisites

  • PC with Linux (We use for this how to Ubuntu 16.04 LTS)
  • MicroSD Card (4 Gbytes - class 4) or bigger ...
  • Tools such, fdisk, mkfs.ext3, mkfs.vfat, gparted ...
  • Cross Toolchain included in Ubuntu 16.04 LTS gcc version 4.9.3 (Ubuntu/Linaro 4.9.3-13ubuntu2).


ToolChain

  • Read: [index.php/Ubuntu_16.04_LTS_Toolchain Ubuntu 16.04 LTS Toolchain]


Preparing the microSD card

Open a terminal window and clear your dmesg using:

sudo dmesg -c

Now insert a new microsd card in your PC and then check your dmesg:

dmesg

You should see something like this:

mmc0: new high speed SDHC card at address 0001
mmcblk0: mmc0:0001 00000 3.79 GiB
mmcblk0: unknown partition table

Ensure all in your microsd card it's erased:

$ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1024 count=1024
[sudo] password for jdoe:

Prepare a SD to boot

Information.jpg We are using this version of Ubuntu .........


Downloading GParted

In order to prepare a micro SD with your already generated u-boot you need to flash the u-boot.imx using the command dd.

It is important to prepare your micro SD card first creating a partition that leave some free space for the u-boot.imx. It can be used GPARTED as it is shown in the image. This method is much more graphic than sfdisk method. 


GPARTED.png


And it can be installed with this command.

sudo apt-get install gparted

Now we will see all the steps for this partition with GPARTED after another brief  explanation of  other method.


  • Another method is using fdisk and creating directly two partitions

Using sfdisk partition method

sudo sfdisk /dev/ <<EOF


label: dos
16065,128520,0x0C,*
144585,,,-
EOF
Define partitions
sudo mkfs.vfat -F 32 /dev/ -n boot


sudo mkfs.ext3 /dev/ -L rootfs

Then you only have to use dd command in order to copy the u-boot.imx to the SD card.

Please, be sure you have write correctly the following command because in if not, it can corrupt your computer.

u-boot.imx copy
sudo dd if=//u-boot.imx of=/dev/ bs=512 seek=2


sync

For example

u-boot.imx copy
sudo dd if=/home/user/Project/u-boot/u-boot.imx of=/dev/sdd bs=512 seek=2


sync


Using GParted and Creation of Partitions

When the install procedure ends you can call the program from your system tools menu or directly using a terminal console.

Create the MSDOS Partition Table

The next step it's create the msdos table partition for it you should click in the "Device" menu and then in the "Create Partition Table" option.

Check the default option it's create a msdos partition table.

After that you can Apply.


Create the BOOT Partition - IGEP Texas Instruments Processor based

This Step it's only for OMAP35xx, DM37xx, AM335x, OMAP5432 processor based IGEP boards.

The Next step it's create the partitions for it you should go to the partition menu and select the "New" option then the application show a window like this:

We will configure the partition as:

  • Primary Partition
  • Format: FAT32
  • Size: 100 MegaBytes
  • Free Space Preceding: 0 MiB
  • Label: Boot
  • Align to: cylinder

It is recommended to apply changes now or you might get an error later.

Create the BOOT Partition - IGEP NXP-Freescale Processor based

This Step it's only for iMX6 processor based IGEP boards.

The Next step it's create the partitions for it you should go to the partition menu and select the "New" option then the application show a window like this:

We will configure the partition as:

  • Primary Partition
  • Format: FAT32
  • Free Space Preceding: 8 MiB
  • Size: 100 MegaBytes
  • Label: Boot
  • Align to: cylinder


It is recommended to apply changes now or you might get an error later.

Create the ROOTFS Partition

The Next step it's create the root file system partition.

First you should select the unallocated partition area and then  you should go to the partition menu and select the "New" option then the application show a window like this:

We will configure the rootfs partition as:

  • Primary Partition
  • Format: EXT4
  • Size: All the Rest
  • Label: Rootfs

At end we will click on "Add" button.

or

After all apply all changes

Select "Boot flag" for the boot partition

Now we must select the boot flag for the first partition for it we use the right mouse button over the boot partition and select "Manage Flags" option

Now we have the microsd prepared for copy the boot files


How to boot each part

Now we will see where to put each part and how to.

U-Boot

Texas

After build or download the MLO and u-boot you should follow the next steps:

  • Copy MLO and u-boot.img to primary boot partition
$ cp MLO u-boot.img /media/user/boot

You can follow this [index.php/U-Boot_Texas_Instruments_Series HowTo] if you want build the MLO and u-boot


iMX6

  • Copy u-boot.imx using dd before primary partition in raw mode as
sudo dd if=/home/user/u-boot-imx/u-boot.imx of=/dev/sde bs=512 seek=2

Where /dev/sde is your microsd card

You can follow this [index.php/U-boot_Freescale-NXP_iMX6_Series HowTo if] you want build the u-boot.imx


Root file System

Bla bla bal

Kernel & Modules

You can follow this other howto about [index.php/The_Linux_kernel how compile and install the Linux Kernel].


Test your new MicroSD

You can test your new microSD card with a Serial client such as PuTTy. [index.php/Using_serial_debug_port_to_communicate Here] is an explanation about how to configure it.

(Note that speed should be configured to 115200 bauds).

If you already have configured it or you are using another Serial client and you have connected the Serial cable to the IGEPv2 board, then you are ready to test your microSD.

Insert the microSD in your IGEPv2 board and power up the board.