AnsweredAssumed Answered

Cannot Boot from SD Card with Linux and i.MX6 SABRE

Question asked by Kris Zawada on Jul 24, 2015
Latest reply on Sep 15, 2015 by Kris Zawada

I cannot figure out why the SABRE board does not boot from the SD Card when I put Linux on it.


I have been following the document named i.MX_6Dual6Quad_Sabre-AI_Linux_User's_Guide.pdf.  I've attached it at well.  The instructions are actually listed under "Chapter 8 Using a Linux Host to Set Up an SD/MMC Card".


The steps I followed are the following:


1) Got a new 8 GB Micro SD with SD Adapter

2) Plugged card into a Ubuntu desktop machine (Ubuntu 12.04.3 LTS) and plugged the card into the slot.  The card is recognized as  '/dev/sdb'.

3) Next, I called umount '/dev/sdb' to ensure that I could modify the partitions (NOTE: '/dev/sdb1' or '/dev/sdb2', etc.. were not mounted).

4) Executed command to write the bootloader binary image to disk (SD Card):

    sudo dd if=/home/user/Downloads/L3.0.35_4.1.0_130816_images_MX6/u-boot-mx6dl-sabreauto.bin of=/dev/sdb bs=512 seek=2 skip=2 conv=fsync


5) Executed command to copy the Linux OS image to disk (SD card):

    sudo dd if=/home/user/Downloads/L3.0.35_4.1.0_130816_images_MX6/uImage of=/dev/sdb bs=512 conv=fsync


6) Setup partitioning on the SD card by calling

    sudo fdisk /dev/sdb


6-a) Enter the 'u' key until terminal shows it has switched to sectors instead of cylinders ("Changing display/entry units to cylinders (DEPRECATED!)" -> "Changing display/entry units to sectors").

6-b) Enter the 'd' key until the terminal shows there are no more partitions ("No partition is defined yet!").

6-c) Enter the 'n' key to create a partition.

6-d) Enter the 'p' key to create a primary partition.

        Partition type:

            p   primary (0 primary, 0 extended, 4 free)

            e   extended

       Select (default p):


6-e) Enter the  '1' key to specify that it is the first partition.

        Partition number (1-4, default 1):


6-f) Specify 16384 for the first sector offset.

        First sector (2048-15564799, default 2048):


6-g) Nest, press the enter key to take the default value.

        Last sector, +sector or +size{K,M,G} (16384-15564799, default 15564799):


6-h) Press the 'w' key to write the partition table to SD card and exit the fdisk application.


7) Format the newly created partition using the following command:

    sudo mkfs.ext4 /dev/sdb1


8) Create a new directory.

    mkdir /home/user/mountpoint


9) Mount the new partition to that directory:

    sudo mount /dev/sdb1 /home/user/mountpoint


10) Unzip the root file system compressed file

    gunzip /home/user/Downloads/L3.0.35_4.1.0_130816_images_MX6/rootfs.ext2.gz


11) Create a new directory:

    mkdir /home/user/rootfs


12) Mount the uncompressed root file system to the directory

    sudo mount -o loop -t ext2 /home/user/Downloads/L3.0.35_4.1.0_130816_images_MX6/rootfs.ext2 /home/user/rootfs


13) Enter the newly created directory and with new mount point.

    cd /home/user/rootfs


14) Copy the file system contents to the new partition.

    sudo cp -a * /home/kzawada/mountpoint


15) Dismount the SD card partition and give it a little bit of time to finish writing all the data.

    sudo umount /home/kzawada/mountpoint


16) Unplug the SD Card once writing is finished and plug in to Freescale SABRE i.MX6 Series board.

17) Plug-in the USB Cable for debug and setup a terminal.

18) Plug in the power cord.

19) Press the reset button.


At this point there is no response at all on the debug board or indication the LCD screen that something is happening. 


I am able to boot from an SD card that contains Android and Windows Embedded Compact 7 on the same board.  This leads me to believe that the way the the SD card is written (MBR, partitions, etc...) is incorrect and the board cannot boot from this SD card.


What could be wrong with the procedure of programming the SD card?